public static async Task <bool> OnCallbackPinMessageAsync(this TelegramService telegramService) { var chatId = telegramService.ChatId; if (!await telegramService.CheckFromAdminOrAnonymous()) { await telegramService.AnswerCallbackQueryAsync("Kamu tidak memiliki izin untuk melakukan tidakan!", true); return(true); } var messageId = telegramService.GetCallbackDataAt <int>(1); var pinMode = telegramService.GetCallbackDataAt <string>(2); var disableNotification = pinMode == "silent"; var client = telegramService.Client; await client.UnpinChatMessageAsync(chatId, messageId); await client.PinChatMessageAsync( chatId : chatId, messageId : messageId, disableNotification : disableNotification ); await telegramService.DeleteCurrentCallbackMessageAsync(); return(true); }
public static async Task <bool> OnCallbackDeleteAsync(this TelegramService telegramService) { var chatId = telegramService.ChatId; var fromId = telegramService.FromId; var messageTarget = telegramService.GetCallbackDataAt <string>(1); Log.Information( "Callback delete message at ChatId: {ChatId}. Target: {MessageTarget}", chatId, messageTarget ); if (!await telegramService.CheckUserPermission()) { Log.Information( "UserId: '{UserId}' at ChatId: '{ChatId}' has no permission to delete message", fromId, chatId ); await telegramService.AnswerCallbackQueryAsync("Kamu tidak mempunyai akses melakukan tindakan ini!", true); return(true); } if (messageTarget == "current-message") { await telegramService.DeleteCurrentCallbackMessageAsync(); } else { var messageId = telegramService.GetCallbackDataAt <int>(1); await telegramService.DeleteAsync(messageId); } return(true); }
public static async Task <bool> OnCallbackGlobalBanAsync(this TelegramService telegramService) { var chatId = telegramService.ChatId; var fromId = telegramService.FromId; var chatUsername = telegramService.Chat.Username; var message = telegramService.CallbackMessage; var callbackDatas = telegramService.CallbackQueryDatas; if (!await telegramService.CheckFromAdminOrAnonymous()) { Log.Debug( "UserId: {UserId} is not admin at ChatId: {ChatId}", fromId, chatId ); return(false); } var globalBanService = telegramService.GetRequiredService <GlobalBanService>(); var eventLogService = telegramService.GetRequiredService <EventLogService>(); var action = telegramService.GetCallbackDataAt <string>(1); var userId = telegramService.GetCallbackDataAt <long>(2); var replyToMessageId = telegramService.ReplyToMessage?.MessageId ?? -1; var answerCallback = string.Empty; var messageLog = HtmlMessage.Empty .TextBr("Global Ban di tambahkan baru") .Bold("Ban By: ").CodeBr(fromId.ToString()) .Bold("UserId: ").CodeBr(userId.ToString()); switch (action) { case "add": await globalBanService.SaveBanAsync( new GlobalBanItem { UserId = userId, ReasonBan = "@" + chatUsername, BannedBy = fromId, BannedFrom = chatId, CreatedAt = DateTime.UtcNow } ); await globalBanService.UpdateCache(userId); await telegramService.KickMemberAsync(userId, untilDate : DateTime.Now.AddSeconds(30)); await eventLogService.SendEventLogAsync( chatId : chatId, message : message, text : messageLog.ToString(), forwardMessageId : replyToMessageId, deleteForwardedMessage : true, messageFlag : MessageFlag.GBan ); telegramService.DeleteMessageManyAsync(customUserId: userId).InBackground(); answerCallback = "Berhasil Memblokir Pengguna!"; break; case "del": await globalBanService.DeleteBanAsync(userId); await globalBanService.UpdateCache(userId); answerCallback = "Terima kasih atas konfirmasinya!"; break; } await telegramService.AnswerCallbackQueryAsync(answerCallback, true); await telegramService.DeleteCurrentCallbackMessageAsync(); return(true); }