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); }
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(); }
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); }