Exemple #1
0
    public async Task <MessageResponseDto> Execute(string payload)
    {
        var response = new MessageResponseDto();
        var chatId   = payload.ToInt64().FixChatId();
        var rules    = await _rulesService.GetRulesAsync(chatId);

        var latestRule = rules.LastOrDefault();
        var ruleText   = latestRule?.RuleText;

        if (latestRule == null)
        {
            return(response);
        }

        var chat = await _chatService.GetChatAsync(chatId);

        var chatNameLink = chat.GetChatNameLink();
        var lastUpdate   = latestRule.UpdatedAt;

        var ruleTextWithTitle = $"📜 Rules di <b>{chatNameLink}</b>\n" +
                                $"\n{ruleText}" +
                                $"\n\n<b>Diperbarui: </b> {lastUpdate.ToDetailDateTimeString()}";

        response.MessageText       = ruleTextWithTitle;
        response.DisableWebPreview = true;
        response.ReplyToMessageId  = 0;

        return(response);
    }
Exemple #2
0
    public override async Task HandleAsync(
        IUpdateContext context,
        UpdateDelegate next,
        string[] args
        )
    {
        await _telegramService.AddUpdateContext(context);

        var deleteAt      = DateTime.UtcNow.AddMinutes(5);
        var chatId        = _telegramService.ChatId;
        var reducedChatId = _telegramService.ReducedChatId;

        if (_telegramService.IsPrivateChat)
        {
            Log.Debug("Rules only for Group");
            return;
        }
        var rules = await _rulesService.GetRulesAsync(chatId);

        var rulesText = rules.LastOrDefault()?.RuleText;

        var startUrl = await _telegramService.GetUrlStart($"start=rules_{reducedChatId}");

        var keyboard = new InlineKeyboardMarkup(InlineKeyboardButton.WithUrl("Klik disini", startUrl));

        var sendText = rulesText ?? "Sepertinya rules belum di tentukan untuk grup ini, namun bukan berarti Grup tanpa aturan!";

        _telegramService.SaveSenderMessageToHistory(MessageFlag.Rules, deleteAt);

        await _telegramService.SendTextMessageAsync(
            "Klik tombol dibawah ini untuk menadapatkan Rules",
            replyMarkup : keyboard,
            replyToMsgId : 0,
            disableWebPreview : true
            );

        _telegramService.SaveSentMessageToHistory(MessageFlag.Rules, deleteAt);
    }