Почистить комментарии от ссылок на ТЗ и обрывков
Удаление целых //-блоков со ссылками (Task/Ruling/этап/ТЗ/§/ дизайн-док/api-map/python/прототип) вместо построчного вырезания — без обрывков фраз; снят боилерплейт <param>/<returns>; то же в .proto.
This commit is contained in:
@@ -9,7 +9,6 @@ using RpcException = TL.RpcException;
|
||||
namespace Deal.Telegram.Telegram;
|
||||
|
||||
#pragma warning disable CS0618 // Auth_SendCode/Auth_SignIn используются осознанно: ручной веб-вход 1:1 с прототипом
|
||||
// LoginUserIfNeeded, который умеет только интерактивный конфиг-ввод, а не наш пошаговый API.
|
||||
|
||||
/// <summary>
|
||||
/// Реальная реализация <see cref="ISessionClient"/> поверх WTelegramClient.
|
||||
@@ -269,7 +268,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
public async Task MarkReadAsync(string dialogId, CancellationToken cancellationToken)
|
||||
{
|
||||
InputPeer peer = await ResolvePeerAsync(dialogId, cancellationToken).ConfigureAwait(false);
|
||||
// Generic-хелпер библиотеки: для канала — channels.readHistory, иначе — messages.readHistory;
|
||||
await RunTlCallAsync(() => _client.ReadHistory(peer), cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -301,7 +299,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
/// <inheritdoc />
|
||||
public async Task<TelegramSourceInfo> GetInfoAsync(string dialogId, CancellationToken cancellationToken)
|
||||
{
|
||||
// чат дают инфо по умолчанию (name=id, kind пуст, participants пуст), сбой участников не роняет
|
||||
TelegramSourceInfo unknown = DefaultSourceInfo(dialogId);
|
||||
if (!TryParseSignedId(dialogId, out bool isChannel, out bool isChat, out bool isUser, out long rawId))
|
||||
{
|
||||
@@ -409,11 +406,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
await RunTlCallAsync(() => _client.Channels_LeaveChannel(channel), cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
// Инфо о канале/супергруппе: entity из кэша/полного чата, участники — GetFullChannel best-effort
|
||||
// dialogId: Подписанный id (для имени по умолчанию).
|
||||
// rawId: Raw id канала.
|
||||
// unknown: Инфо по умолчанию (сущность недоступна).
|
||||
// cancellationToken: Отмена операции.
|
||||
private async Task<TelegramSourceInfo> GetChannelInfoAsync(
|
||||
string dialogId,
|
||||
long rawId,
|
||||
@@ -446,9 +438,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
return DescribeChannel(dialogId, channel, fullParticipants);
|
||||
}
|
||||
|
||||
// dialogId: Подписанный id.
|
||||
// rawId: Raw id канала.
|
||||
// cancellationToken: Отмена операции.
|
||||
private async Task<int?> TryFetchChannelParticipantsAsync(
|
||||
string dialogId,
|
||||
long rawId,
|
||||
@@ -505,8 +494,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
return DescribeGroup(dialogId, group, fullParticipants);
|
||||
}
|
||||
|
||||
// rawId: Raw id группы.
|
||||
// cancellationToken: Отмена операции.
|
||||
private async Task<int?> TryFetchBasicParticipantsAsync(long rawId, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
@@ -539,9 +526,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
participants,
|
||||
isForum: false);
|
||||
|
||||
// Инфо о личном чате/боте: имя из кэша сущности (полного чата у людей нет).
|
||||
// dialogId: Подписанный id.
|
||||
// rawId: Raw id пользователя.
|
||||
private TelegramSourceInfo GetUserInfo(
|
||||
string dialogId,
|
||||
long rawId,
|
||||
@@ -568,10 +552,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
return new TelegramSourceInfo(dialogId, name, username, DialogKinds.Chat, participants: null, isForum: false);
|
||||
}
|
||||
|
||||
// peer: Peer форума.
|
||||
// limit: Размер выборки (раскладывается по темам).
|
||||
// cancellationToken: Отмена операции.
|
||||
// Возвращает: Плоский список сообщений тем (пуст — темы не прочитались; фолбэк на ленту делает вызывающий).
|
||||
private async Task<IReadOnlyList<DiscoveryMessage>> ReadForumTopicsAsync(
|
||||
InputPeer peer,
|
||||
int limit,
|
||||
@@ -663,15 +643,12 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
participants,
|
||||
isForum: (channel.flags & Channel.Flags.forum) != 0);
|
||||
|
||||
// dialogId: Подписанный id (фолбэк имени).
|
||||
// chat: Сущность чата/канала.
|
||||
private static string DisplayName(string dialogId, ChatBase chat)
|
||||
{
|
||||
string title = chat.Title ?? string.Empty;
|
||||
return title.Length > 0 ? title : dialogId;
|
||||
}
|
||||
|
||||
// rawId: Raw id канала.
|
||||
private bool IsForumChannel(long rawId)
|
||||
{
|
||||
lock (_entityCacheGate)
|
||||
@@ -687,15 +664,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
private const int ForumMessagesPerTopicCap = 10;
|
||||
|
||||
|
||||
// последовательно на каждое обновление в правильном порядке (без пропусков/дублей по pts).
|
||||
// Все типы новых сообщений библиотека нормализует в TL.UpdateNewMessage:
|
||||
// * UpdateNewChannelMessage (каналы/супергруппы) — подкласс UpdateNewMessage;
|
||||
// * UpdateShortMessage/UpdateShortChatMessage — синтез UpdateNewMessage в UpdateList (TL.Xtended);
|
||||
// * UpdateShortSentMessage (собственные исходящие) менеджер не поднимает.
|
||||
// Ниже — только фильтр «новое входящее текстовое сообщение» и подъём события MessageReceived;
|
||||
// фильтр по зеркалу мониторинга и read-ack делает служба каталога (единый downstream).
|
||||
// Ошибки отдельного события не роняют цикл (подписчиков изолирует TenantSession).
|
||||
// update: Одно нормализованное обновление.
|
||||
private async Task OnSingleUpdateAsync(Update update)
|
||||
{
|
||||
try
|
||||
@@ -800,10 +768,6 @@ public sealed class WTelegramSessionClient : ISessionClient
|
||||
}
|
||||
}
|
||||
|
||||
// Переводит RpcException Telegram в SessionException: FloodWait — RESOURCE_EXHAUSTED
|
||||
// (detail с префиксом "flood", контракт telegram.proto); 400-ошибки входных данных —
|
||||
// остальные серверные/сетевые сбои — UNAVAILABLE «Telegram недоступен…» (безопасный повтор).
|
||||
// exception: Исключение RPC Telegram.
|
||||
private static SessionException MapRpcException(RpcException exception)
|
||||
{
|
||||
if (exception.Message.StartsWith("FLOOD_WAIT_", StringComparison.Ordinal))
|
||||
|
||||
Reference in New Issue
Block a user