示例#1
0
    public override async Task HandleAsync(
        IUpdateContext context,
        UpdateDelegate next,
        string[] args
        )
    {
        await _telegramService.AddUpdateContext(context);

        var isSudoer = _telegramService.IsFromSudo;

        await _telegramService.DeleteSenderMessageAsync();

        if (!isSudoer)
        {
            Log.Debug("Only sudo can do Sync Kata!");
            return;
        }

        await _telegramService.AppendTextAsync("Sedang mengsinkronkan Word Filter");

        await _wordFilterService.UpdateWordListsCache();

        await _telegramService.AppendTextAsync("Selesai mengsinkronkan.");

        await _telegramService.DeleteAsync(delay : 3000);
    }
示例#2
0
    public override async Task HandleAsync(
        IUpdateContext context,
        UpdateDelegate next,
        string[] args
        )
    {
        await _telegramService.AddUpdateContext(context);

        var chatId       = _telegramService.ChatId;
        var messageTexts = _telegramService.MessageTextParts;
        var word         = messageTexts.ElementAtOrDefault(1);
        var isSudo       = _telegramService.IsFromSudo;

        if (!isSudo)
        {
            _logger.Warning("Delete Kata currently only for Sudo!");
            await _telegramService.DeleteAsync();

            return;
        }

        if (word.IsNullOrEmpty())
        {
            await _telegramService.SendTextMessageAsync("Kata apa yang mau di hapus?");
        }

        await _telegramService.SendTextMessageAsync("Sedang menghapus Kata..");

        var wordFilter = new WordFilter()
        {
            Word = word
        };

        var delete = await _wordFilterService.DeleteKata(wordFilter);

        var deleteResult = delete > 0 ? "Kata berhasil di hapus" : "Kata sudah dihapus";
        await _telegramService.EditMessageTextAsync(deleteResult);

        await _wordFilterService.UpdateWordListsCache();
    }
示例#3
0
    public override async Task HandleAsync(
        IUpdateContext context,
        UpdateDelegate next,
        string[] args
        )
    {
        await _telegramService.AddUpdateContext(context);

        var chatId = _telegramService.ChatId;
        var fromId = _telegramService.FromId;

        var messageTextParts = _telegramService.MessageTextParts;
        var word             = messageTextParts.ElementAtOrDefault(1) ?? string.Empty;
        var paramOption      = messageTextParts.ElementAtOrDefault(2) ?? string.Empty;

        var isGlobalBlock = false;

        var isSudoer = _telegramService.IsFromSudo;

        if (!isSudoer)
        {
            await _telegramService.DeleteSenderMessageAsync();

            Log.Information("Currently add Kata is limited only Sudo");
            return;
        }

        if (word.IsValidUrl())
        {
            word = word.ParseUrl().Path;
        }

        var where = new Dictionary <string, object>()
        {
            { "word", word }
        };

        if (paramOption.IsContains("-"))
        {
            if (paramOption.IsContains("g"))// Global
            {
                isGlobalBlock = true;
                await _telegramService.AppendTextAsync("Kata ini akan di blokir Global!");
            }
        }

        if (!paramOption.IsContains("g"))
        {
            @where.Add("chat_id", chatId);
        }

        if (!word.IsNotNullOrEmpty())
        {
            await _telegramService.SendTextMessageAsync("Apa kata yg mau di blok?");
        }
        else
        {
            var isExist = await _wordFilterService.IsExistAsync(@where);

            if (isExist)
            {
                await _telegramService.AppendTextAsync("Kata sudah di tambahkan");
            }
            else
            {
                await _telegramService.AppendTextAsync("Sedang menambahkan kata");

                await _wordFilterService.SaveWordAsync(new WordFilter()
                {
                    Word      = word,
                    ChatId    = chatId,
                    IsGlobal  = isGlobalBlock,
                    FromId    = fromId,
                    CreatedAt = DateTime.Now
                });

                await _telegramService.AppendTextAsync("Kata berhasil di tambahkan");

                await _wordFilterService.UpdateWordListsCache();
            }
        }

        await _telegramService.DeleteAsync(delay : 3000);
    }