Пример #1
0
        protected override async Task Handle(SearchTextCommand request, CancellationToken cancellationToken)
        {
            var chatId     = request.ChatId;
            var searchText = request.SearchText;
            var skip       = request.Skip;

            var count    = 50;
            var messages = await messageRepository.SearchMessages(searchText.ToLower(), skip, count);

            var replyMessages = messages.GenerateReplyMessages();

            if (!replyMessages.Any())
            {
                await telegramBotClient.SendTextMessageAsync(
                    chatId,
                    "No messages were found.",
                    cancellationToken : cancellationToken
                    );
            }
            for (var i = 0; i < replyMessages.Count; i++)
            {
                var replyMessage = replyMessages[i];
                await telegramBotClient.SendTextMessageAsync(
                    chatId,
                    replyMessage,
                    parseMode : ParseMode.Html,
                    disableWebPagePreview : true,
                    replyMarkup : i == replyMessages.Count - 1
                    ?InlineUtils.GenerateNavigationMarkup(BotCommands.SearchText, searchText, count, skip, messages.Count)
                    : null,
                    cancellationToken : cancellationToken
                    );
            }
        }
        protected override async Task Handle(DailyNewSubscribersCountCommand request, CancellationToken cancellationToken)
        {
            var chatId = request.ChatId;
            var skip   = request.Skip;
            var count  = 10;

            var dateFormat = "MMMM dd";
            var from       = DateTime.UtcNow.AddDays(-1);
            var to         = DateTime.UtcNow;

            var channelSubs = await subscriptionRepository.GetSubscribersCount(skip, count, from);

            var fromString = from.ConvertToMyTimezone().ToString(dateFormat);
            var toString   = to.ConvertToMyTimezone().ToString(dateFormat);

            var messageHeader = $"Daily New Subscriptions count {fromString} - {toString}";
            var messageBody   = string.Join("\r\n", channelSubs.Select(_ => $"{_.SubsCount} subs on <b>{_.Channel}</b>"));

            await telegramBotClient.SendTextMessageAsync(
                chatId : chatId,
                text : $"{messageHeader}\r\n{messageBody}",
                parseMode : ParseMode.Html,
                replyMarkup : InlineUtils.GenerateNavigationMarkup(BotCommands.DailyNewSubs, string.Empty, count, skip, channelSubs.Count()),
                cancellationToken : cancellationToken
                );
        }
Пример #3
0
        protected override async Task Handle(UserMessagesCommand request, CancellationToken cancellationToken)
        {
            var chatId   = request.ChatId;
            var userName = request.Username;
            var skip     = request.Skip;
            var userIds  = await userRepository.GetUserIds(userName);

            if (!userIds.Any())
            {
                await telegramBotClient.SendTextMessageAsync(
                    chatId : chatId,
                    text : $"User '{userName}' not found.",
                    parseMode : ParseMode.Html,
                    cancellationToken : cancellationToken
                    );

                return;
            }

            var count    = 50;
            var messages = await messageRepository.GetMessages(userIds.First().Value, skip, count);

            var replyMessages = messages.GenerateReplyMessages();

            if (!replyMessages.Any())
            {
                await telegramBotClient.SendTextMessageAsync(
                    chatId,
                    "No messages were found.",
                    cancellationToken : cancellationToken
                    );
            }
            for (var i = 0; i < replyMessages.Count; i++)
            {
                var replyMessage = replyMessages[i];
                await telegramBotClient.SendTextMessageAsync(
                    chatId,
                    replyMessage,
                    parseMode : ParseMode.Html,
                    disableWebPagePreview : true,
                    replyMarkup : i == replyMessages.Count - 1
                    ?InlineUtils.GenerateNavigationMarkup(BotCommands.UserMessages, userName, count, skip, messages.Count)
                    : null,
                    cancellationToken : cancellationToken
                    );
            }
        }
Пример #4
0
        protected override async Task Handle(UserMessagesDigestCommand request, CancellationToken cancellationToken)
        {
            var userId = request.TwitchUserId ?? (await userRepository.GetUserIds(request.UserName)).First().Value;

            var count    = 50;
            var messages = await messageRepository.GetMessages(userId, DateTime.UtcNow.AddHours(-12), count);

            var replyMessages = messages.GenerateReplyMessages();

            for (var i = 0; i < replyMessages.Count; i++)
            {
                var replyMessage = replyMessages[i];
                await telegramBotClient.SendTextMessageAsync(
                    request.ChatId,
                    replyMessage,
                    parseMode : ParseMode.Html,
                    disableWebPagePreview : true,
                    replyMarkup : i == replyMessages.Count - 1
                    ?InlineUtils.GenerateNavigationMarkup(BotCommands.UserMessages, request.UserName, count, 0, messages.Count)
                    : null,
                    cancellationToken : cancellationToken
                    );
            }
        }