public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; ConsoleHelper.WriteLine("Media received... "); var isBan = await _mediaFilterService.IsExistInCache("file_id", msg.GetReducedFileId()); // var isBan = await _mediaFilterService.IsExist("file_id", msg.GetReducedFileId()); if (isBan) { await _chatProcessor.DeleteAsync(msg.MessageId); } ConsoleHelper.WriteLine($"Media isBan: {isBan}"); if (Bot.HostingEnvironment.IsProduction()) { await _mediaFilterService.UpdateCacheAsync(); } else { ConsoleHelper.WriteLine($"Update cache skipped because local Env"); } ConsoleHelper.WriteLine("Media Filter complete."); await next(context); }
public void EndLoad(ClientConnection connection) { lock (_lOnline) { if (connection.ActivePlayer != null) { var player = connection.ActivePlayer; if (!_onlineCharacters.ContainsKey(player.GameSessionId)) { _onlineCharacters.Add(player.GameSessionId, player); } connection.ActivePlayer.PlayerActions += (action, parameters) => { switch (action) { case Player.PlayerAction.Logout: if (_onlineCharacters.ContainsKey(player.GameSessionId)) { _onlineCharacters.Remove(player.GameSessionId); Log.Debug($"Player:{player.DatabaseCharacterData.CharacterName} has left the world"); } break; case Player.PlayerAction.Chat: ChatProcessor.HandleChatMessage(connection, parameters); break; } }; } } }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var botName = Bot.GlobalConfiguration["Engines:ProductName"]; var botVer = Bot.GlobalConfiguration["Engines:Version"]; var botCompany = Bot.GlobalConfiguration["Engines:Company"]; string sendText = $"🤖 {botName} {botVer}" + $"\nby {botCompany}." + $"\nAdalah bot debugging, manajemen grup yang di lengkapi dengan alat keamanan. " + $"Agar fungsi saya bekerja dengan fitur penuh, jadikan saya admin dengan level standard. " + $"\nSaran dan fitur bisa di ajukan di @WinTenGroup atau @TgBotID."; var urlStart = await "help".GetUrlStart(); var keyboard = new InlineKeyboardMarkup( InlineKeyboardButton.WithUrl("Dapatkan bantuan", urlStart) ); if (_chatProcessor.IsPrivateChat()) { keyboard = new InlineKeyboardMarkup(new[] { new[] { InlineKeyboardButton.WithCallbackData("Bantuan", "help home"), InlineKeyboardButton.WithUrl("Pasang Username", "https://t.me/WinTenDev/29") } }); } await _chatProcessor.SendAsync(sendText, keyboard); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { var msg = context.Update.Message; _chatProcessor = new ChatProcessor(context); _settingsService = new SettingsService(msg); var sendText = "Under maintenance"; if (msg.Chat.Type != ChatType.Private) { if (msg.From.Id.IsSudoer()) { var settings = await _settingsService.GetSettingByGroup(); await _settingsService.UpdateCache(); ConsoleHelper.WriteLine(settings.ToJson()); // var rules = settings.Rows[0]["rules_text"].ToString(); var rules = settings.RulesText; ConsoleHelper.WriteLine(rules); sendText = rules; } } else { sendText = "Rules hanya untuk grup"; } await _chatProcessor.SendAsync(sendText); }
public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { Message msg = context.Update.Message; _elasticSecurityService = new ElasticSecurityService(msg); _chatProcessor = new ChatProcessor(context); var leftMember = msg.LeftChatMember; var isBan = await _elasticSecurityService.IsExistInCache(leftMember.Id); if (!isBan) { ConsoleHelper.WriteLine("Left Chat Members..."); var chatTitle = msg.Chat.Title; var newMembers = msg.LeftChatMember; var leftFullName = newMembers.FirstName; // var fromName = msg.From.FirstName; var sendText = $"Sampai jumpa lagi {leftFullName} " + $"\nKami di <b>{chatTitle}</b> menunggumu kembali.. :("; await _chatProcessor.SendAsync(sendText); } else { ConsoleHelper.WriteLine($"Left Message ignored because {leftMember} is Global Banned"); } }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var partsMsg = msg.Text.GetTextWithoutCmd().Split("|").ToArray(); var isSudoer = _chatProcessor.IsSudoer(); if (isSudoer) { var sendText = "Maaf, saya harus keluar"; if (partsMsg[1] != null) { sendText += $"\n{partsMsg[1]}"; } var chatId = partsMsg[0].ToInt64(); ConsoleHelper.WriteLine($"Target out: {chatId}"); await _chatProcessor.SendAsync(sendText, customChatId : chatId); await _chatProcessor.LeaveChat(chatId); } else { await _chatProcessor.SendAsync("Kamu tidak punya hak akses."); } }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var data = new Dictionary <string, object>() { { "user_id", msg.From.Id }, { "chat_id", msg.Chat.Id }, { "is_afk", 1 } }; var sendText = $"{msg.GetFromNameLink()} Sedang afk."; if (msg.Text.GetTextWithoutCmd() != "") { var afkReason = msg.Text.GetTextWithoutCmd(); data.Add("afk_reason", afkReason); sendText += $"\n<i>{afkReason}</i>"; } await _chatProcessor.SendAsync(sendText); await _afkService.SaveAsync(data); await _afkService.UpdateCacheAsync(); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var notesData = await _notesService.GetNotesByChatId(_chatProcessor.Message.Chat.Id); var sendText = "Filters di Obrolan ini."; if (notesData.Rows.Count > 0) { foreach (DataRow note in notesData.Rows) { sendText += $"\nID: {note["id_note"]} - "; sendText += $"{note["slug"]}"; } } else { sendText = "Tidak ada Filters di Grup ini." + "\nUntuk menambahkannya ketik /addfilter"; } await _notesService.UpdateCache(_chatProcessor.Message.Chat.Id); await _chatProcessor.SendAsync(sendText); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; if (msg.ReplyToMessage != null) { msg = msg.ReplyToMessage; } var userId = msg.From.Id; var nameLink = msg.GetFromNameLink(); var sendText = $"{nameLink} diturunkan dari admin"; var promote = await _chatProcessor.DemoteChatMemberAsync(userId); if (!promote.IsSuccess) { var errorCode = promote.ErrorCode; var errorMessage = promote.ErrorMessage; sendText = $"Demote {nameLink} gagal" + $"\nPesan: {errorMessage}"; } await _chatProcessor.SendAsync(sendText); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { var msg = context.Update.Message; var chatId = msg.Chat.Id; var fromId = msg.From.Id; _chatProcessor = new ChatProcessor(context); _elasticSecurityService = new ElasticSecurityService(msg); if (fromId.IsSudoer()) { if (msg.ReplyToMessage != null) { var repMsg = msg.ReplyToMessage; var userId = repMsg.From.Id; ConsoleHelper.WriteLine("Execute Global DelBan"); await _chatProcessor.SendAsync("Mempersiapkan.."); await _chatProcessor.DeleteAsync(msg.MessageId); var isBan = await _elasticSecurityService.IsExist(userId); ConsoleHelper.WriteLine($"IsBan: {isBan}"); if (isBan) { await _chatProcessor.EditAsync("Memperbarui informasi.."); var save = await _elasticSecurityService.DeleteBanAsync(userId); ConsoleHelper.WriteLine($"SaveBan: {save}"); await _chatProcessor.EditAsync("Menulis ke Cache.."); await _elasticSecurityService.UpdateCacheAsync(); await _chatProcessor.EditAsync("Misi berhasil."); } else { await _chatProcessor.EditAsync("Pengguna tidak di ban"); } } else { await _chatProcessor.SendAsync("Balas seseorang yang mau di ban"); } } else { await _chatProcessor.SendAsync("Unauthorized"); } await _chatProcessor.DeleteAsync(delay : 3000); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { chatProcessor = new ChatProcessor(context); await chatProcessor.SendAsync("Migrate starting.."); Thread.Sleep(3000); await chatProcessor.EditAsync("Migrate finish.."); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; _settingsService = new SettingsService(msg); ConsoleHelper.WriteLine($"Args: {string.Join(" ", args)}"); var sendText = "Perintah /welcome hanya untuk grup saja"; if (msg.Chat.Type != ChatType.Private) { var chatTitle = msg.Chat.Title; var settings = await _settingsService.GetSettingByGroup(); var welcomeMessage = settings.WelcomeMessage; var welcomeButton = settings.WelcomeButton; var welcomeMedia = settings.WelcomeMedia; var welcomeMediaType = settings.WelcomeMediaType; var splitWelcomeButton = welcomeButton.Split(',').ToList <string>(); var keyboard = welcomeButton.ToReplyMarkup(2); sendText = $"👥 <b>{chatTitle}</b>\n"; if (welcomeMessage == "") { sendText += "Tidak ada konfigurasi pesan welcome, pesan default akan di terapkan"; } else { sendText += welcomeMessage; } // if (args[0] == "anu") // { // sendText += " anu"; // } // sendText += " " + string.Join(", ",args); if (welcomeMediaType != "") { await _chatProcessor.SendMediaAsync(welcomeMedia, welcomeMediaType, welcomeMessage, keyboard); } else { await _chatProcessor.SendAsync(sendText, keyboard); } } else { await _chatProcessor.SendAsync(sendText); } }
public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var pinnedMsg = msg.PinnedMessage; var sendText = $"📌 Pesan di sematkan baru!" + $"\nPengirim: {pinnedMsg.GetFromNameLink()}" + $"\nPengepin: {msg.GetFromNameLink()}"; await _chatProcessor.SendAsync(sendText); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var json = msg.ToJson(true); ConsoleHelper.WriteLine(json.Length); var sendText = $"Debug:\n {json}"; await _chatProcessor.SendAsync(sendText); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { Message msg = context.Update.Message; _chatProcessor = new ChatProcessor(context); _settingsService = new SettingsService(msg); var id = msg.From.Id; var sendText = "Under maintenance"; ConsoleHelper.WriteLine(id.IsSudoer()); await _chatProcessor.DeleteAsync(msg.MessageId); await _chatProcessor.SendAsync("🔄 Loading tags.."); var tagsData = await _tagsService.GetTagsByGroupAsync("*", msg.Chat.Id); var tagsStr = string.Empty; foreach (var tag in tagsData) { tagsStr += $"#{tag.Tag} "; } sendText = $"#️⃣<b> {tagsData.Count} Tags</b>\n" + $"\n{tagsStr}"; await _chatProcessor.EditAsync(sendText); // var jsonSettings = TextHelper.ToJson(currentSetting); // ConsoleHelper.WriteLine($"CurrentSettings: {jsonSettings}"); // var lastTagsMsgId = int.Parse(currentSetting.Rows[0]["last_tags_message_id"].ToString()); var currentSetting = await _settingsService.GetSettingByGroup(); var lastTagsMsgId = currentSetting.LastTagsMessageId; ConsoleHelper.WriteLine($"LastTagsMsgId: {lastTagsMsgId}"); await _chatProcessor.DeleteAsync(lastTagsMsgId.ToInt()); await _tagsService.UpdateCacheAsync(msg); ConsoleHelper.WriteLine(_chatProcessor.SentMessageId); await _settingsService.UpdateCell("last_tags_message_id", _chatProcessor.SentMessageId); // var json = TextHelper.ToJson(tagsData); // Console.WriteLine(json); }
public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); CallbackQuery cq = context.Update.CallbackQuery; _chatProcessor.CallBackMessageId = cq.Message.MessageId; ConsoleHelper.WriteLine(cq.ToJson()); ConsoleHelper.WriteLine($"CallBackData: {cq.Data}"); var partsCallback = cq.Data.SplitText(" "); ConsoleHelper.WriteLine($"Callbacks: {partsCallback.ToJson()}"); switch (partsCallback[0]) // Level 0 { case "help": var sendText = await partsCallback[1].LoadInBotDocs(); ConsoleHelper.WriteLine($"Docs: {sendText}"); var subPartsCallback = partsCallback[1].SplitText("/"); ConsoleHelper.WriteLine($"SubParts: {subPartsCallback.ToJson()}"); var jsonButton = partsCallback[1]; if (subPartsCallback.Count > 1) { jsonButton = subPartsCallback[0]; switch (subPartsCallback[1]) { case "info": jsonButton = subPartsCallback[1]; break; } } var keyboard = await $"Storage/Buttons/{jsonButton}.json".JsonToButton(); await _chatProcessor.EditMessageCallback(sendText, keyboard); // var a = new HelpCallbackQuery(cq); break; case "verification": break; } // await context.Bot.Client.AnswerCallbackQueryAsync(cq.Id, "PONG", true); await next(context); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var sendText = "Balas pesan yg mau di report"; if (msg.Chat.Type == ChatType.Private) { await _chatProcessor.SendAsync("Report hanya untuk grup saja"); return; } if (msg.ReplyToMessage != null) { var repMsg = msg.ReplyToMessage; if (msg.From.Id != repMsg.From.Id) { var mentionAdmins = await _chatProcessor.GetMentionAdminsStr(); sendText = $"Ada laporan nich." + $"\n{msg.GetFromNameLink()} melaporkan {repMsg.GetFromNameLink()}" + $"{mentionAdmins}"; var keyboard = new InlineKeyboardMarkup(new[] { new[] { InlineKeyboardButton.WithCallbackData("Hapus", "PONG"), InlineKeyboardButton.WithCallbackData("Tendang", "PONG"), }, new[] { InlineKeyboardButton.WithCallbackData("Ban", "PONG"), InlineKeyboardButton.WithCallbackData("Ke Pesan", "PONG"), } }); await _chatProcessor.SendAsync(sendText); return; } sendText = "Melaporkan diri sendiri? 🤔"; } await _chatProcessor.SendAsync(sendText); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var sendText = "Saat ini hanya untuk Sudoer saja."; if (msg.From.Id.IsSudoer()) { sendText = "Reply pesan untuk menyaring.."; if (msg.ReplyToMessage != null) { var repMsg = msg.ReplyToMessage; ConsoleHelper.WriteLine(msg.Type); var fileId = repMsg.GetReducedFileId(); var isExist = await _mediaFilterService.IsExist("file_id", fileId); if (!isExist) { var data = new Dictionary <string, object>() { { "file_id", fileId }, { "type_data", repMsg.Type.ToString().ToLower() }, { "blocked_by", msg.From.Id }, { "blocked_from", msg.Chat.Id } }; await _mediaFilterService.SaveAsync(data); sendText = "File ini berhasil di simpan"; } else { sendText = "File ini sudah di simpan"; } } } else { sendText = "Fitur ini membutuhkan akses Sudoer, namun file yang Anda laporkan sudah di teruskan ke Team, " + "terima kasih atas laporan nya."; } await _chatProcessor.SendAsync(sendText); }
private void InternalProcess(GameClient Client, byte[] Packet) { fixed(byte *pPacket = Packet) { ushort *Size = (ushort *)(pPacket + 0); ushort *Type = (ushort *)(pPacket + 2); if (*Size != Packet.Length) { SizeMismatch(Client, *Size, Packet); return; } Kernel.HexDump(Packet, "Client -> Server"); IPacketProcessor processor = null; switch (*Type) { case 0x3E9: processor = new CreateCharacterProcessor(Database); break; case 0x3EC: processor = new ChatProcessor(Database, CommandProcessor, NpcScriptEngine); break; case 0x3ED: processor = new MovementProcessor(Database); break; case 0x3F1: processor = new ItemUsageProcessor(Database); break; case 0x3F2: processor = new GeneralDataProcessor(Database); break; case 0x3FE: processor = new AttackProcessor(Database); break; case 0x41C: processor = new LoginTransferProcessor(Database); break; case 0x7EF: case 0x7F0: processor = new NpcProcessor(Database, NpcScriptEngine); break; default: Client.Send(Packet); break; } if (processor != null) { processor.Execute(Client, pPacket); } } }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var sendText = "Untuk mendapatkan bantuan klik tombol dibawah ini"; var urlStart = await "help".GetUrlStart(); var keyboard = new InlineKeyboardMarkup( InlineKeyboardButton.WithUrl("Dapatkan bantuan", urlStart) ); if (_chatProcessor.IsPrivateChat()) { sendText = await "home".LoadInBotDocs(); keyboard = await "Storage/Buttons/home.json".JsonToButton(); } await _chatProcessor.SendAsync(sendText, keyboard); }
public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { chatProcessor = new ChatProcessor(context); Message msg = context.Update.Message; ConsoleHelper.WriteLine("Tags Received.."); var partsText = msg.Text.Split(new char[] { ' ', '\n', ',' }) .Where(x => x.Contains("#")); var limitedTags = partsText.Take(5); // int count = 1; foreach (var split in limitedTags) { ConsoleHelper.WriteLine("Processing : " + split.TrimStart('#')); // await chatProcessor.SendAsync($"This is tag of {split}"); var tagData = await tagsService.GetTagByTag(msg.Chat.Id, split.TrimStart('#')); var json = tagData.ToJson(); Console.WriteLine(json); // var content = tagData.Result.Rows[0]["content"].ToString(); // var buttonStr = tagData.Result.Rows[0]["btn_data"].ToString(); var content = tagData[0].Content; var buttonStr = tagData[0].BtnData; IReplyMarkup buttonMarkup = null; if (buttonStr != "") { buttonMarkup = buttonStr.ToReplyMarkup(2); } await chatProcessor.SendAsync(content, buttonMarkup); } if (partsText.Count() > limitedTags.Count()) { await chatProcessor.SendAsync("Due performance reason, we limit 5 batch call tags"); } }
public Loader() { // License Check //_LicenseChecker = new LicenseChecker(); // CSV Files and Logger _Logger = new Logger(); _DirectoryChecker = new DirectoryChecker(); _CSVManager = new CSVManager(); // Network and Packets _ChatProcessor = new ChatProcessor(); _ConnectionBlocker = new ConnectionBlocker(); if (Utils.ParseConfigBoolean("UseWebAPI")) { _API = new API(); } // Core _ResourcesManager = new ResourcesManager(); _ObjectManager = new ObjectManager(); _CommandFactory = new CommandFactory(); _MessageFactory = new MessageFactory(); // Optimazions _MemThread = new MemoryThread(); // User _Parser = new ParserThread(); // Creates a new Socket _Gateway = new Gateway(); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var client = context.Bot.Client; var sendText = "Balas pesan yang akan di pin"; if (msg.ReplyToMessage != null) { var pin = client.PinChatMessageAsync( msg.Chat.Id, msg.ReplyToMessage.MessageId); // ConsoleHelper.WriteLine(pin.); } await _chatProcessor.SendAsync(sendText); // throw new System.NotImplementedException(); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { var msg = context.Update.Message; chatProcessor = new ChatProcessor(context); await chatProcessor.SendAsync("🍽 Loading.."); // var admins = context.Update.Message.Chat.AllMembersAreAdministrators; var admins = await context.Bot.Client.GetChatAdministratorsAsync(msg.Chat.Id, cancellationToken); var creatorStr = string.Empty; var adminStr = string.Empty; int number = 1; foreach (var admin in admins) { var user = admin.User; var nameLink = MemberHelper.GetNameLink(user.Id, (user.FirstName + " " + user.LastName).Trim()); if (admin.Status == ChatMemberStatus.Creator) { creatorStr = nameLink; } else { adminStr += $"{number++}. {nameLink}\n"; } // Console.WriteLine(TextHelper.ToJson(admin)); // await chatProcessor.EditAsync(TextHelper.ToJson(admin)); } var sendText = $"👤 <b>Creator</b>" + $"\n└ {creatorStr}" + $"\n" + $"\n👥️ <b>Administrators</b>" + $"\n{adminStr}"; await chatProcessor.EditAsync(sendText); }
private void InternalProcess(GameClient Client, byte[] Packet) { fixed (byte* pPacket = Packet) { ushort *Size = (ushort*)(pPacket + 0); ushort* Type = (ushort*)(pPacket + 2); if (*Size != Packet.Length) { SizeMismatch(Client, *Size, Packet); return; } Kernel.HexDump(Packet, "Client -> Server"); IPacketProcessor processor = null; switch (*Type) { case 0x3E9: processor = new CreateCharacterProcessor(Database); break; case 0x3EC: processor = new ChatProcessor(Database, CommandProcessor, NpcScriptEngine); break; case 0x3ED: processor = new MovementProcessor(Database); break; case 0x3F1: processor = new ItemUsageProcessor(Database); break; case 0x3F2: processor = new GeneralDataProcessor(Database); break; case 0x3FE: processor = new AttackProcessor(Database); break; case 0x41C: processor = new LoginTransferProcessor(Database); break; case 0x7EF: case 0x7F0: processor = new NpcProcessor(Database, NpcScriptEngine); break; default: Client.Send(Packet); break; } if (processor != null) { processor.Execute(Client, pPacket); } } }
// Run: Simply connect and login to the Twitch server public void Run() { IsRunning = true; irc.Connect(ConnectionInformations.Twitch); // Connect to Twitch /* * Ask for Twitch IRC permissions * */ irc.SendData(new string[] { "CAP REQ :twitch.tv/tags", "CAP REQ :twitch.tv/membership", "CAP REQ :twitch.tv/commands" }); irc.Login(new AuthentificationInformations() // Login with the details in the Settings { Nick = Properties.Settings.Default.BotNickname, Password = Properties.Settings.Default.BotOAuth }); ChatProcessor = new ChatProcessor(this, Core.TwitchAPI.I); // Initialize the Chat Processor object }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; if (msg.ReplyToMessage != null) { var repMsg = msg.ReplyToMessage; await _chatProcessor.SendAsync("Mengumpulkan informasi"); var partsContent = repMsg.Text.Split(new[] { "\n\n" }, StringSplitOptions.None); var partsMsgText = msg.Text.GetTextWithoutCmd().Split("\n\n"); ConsoleHelper.WriteLine(msg.Text); ConsoleHelper.WriteLine(repMsg.Text); ConsoleHelper.WriteLine(partsContent.ToJson()); ConsoleHelper.WriteLine(partsMsgText.ToJson()); var data = new Dictionary <string, object>() { { "slug", partsMsgText[0] }, { "content", partsContent[0] }, { "chat_id", msg.Chat.Id }, { "user_id", msg.From.Id } }; if (partsMsgText[1] != "") { data.Add("btn_data", partsMsgText[1]); } await _chatProcessor.EditAsync("Menyimpan.."); await _notesService.SaveNote(data); await _chatProcessor.EditAsync("Berhasil"); } }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; Message repMsg = null; var data = msg.Text.GetTextWithoutCmd(); if (msg.ReplyToMessage != null) { repMsg = msg.ReplyToMessage; data = repMsg.Text ?? repMsg.Caption; } if (data == "") { var sendText = "<b>Generate QR from text or caption media</b>" + "\n<b>Usage : </b><code>/qr</code> (In-Reply)" + "\n <code>/qr your text here</code> (In-Message)"; await _chatProcessor.SendAsync(sendText); return; } InlineKeyboardMarkup keyboard = null; if (repMsg != null) { keyboard = new InlineKeyboardMarkup( InlineKeyboardButton.WithUrl("Sumber", repMsg.GetMessageLink()) ); } var urlQr = data.GenerateUrlQrApi(); var fileName = $"{msg.Chat.Id}_{msg.MessageId}.jpg"; // urlQr.SaveUrlTo(fileName); await _chatProcessor.SendMediaAsync(urlQr, "photo", replyMarkup : keyboard); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; var isAdmin = await _chatProcessor.IsAdminGroup(); var tagVal = args[0]; var sendText = "Perintah Untag hanya untuk ngadmin."; if (isAdmin) { await _chatProcessor.SendAsync("Memeriksa.."); var isExist = await _tagsService.IsExist(_chatProcessor.Message.Chat.Id, tagVal); if (isExist) { ConsoleHelper.WriteLine($"Sedang menghapus tag {tagVal}"); var unTag = await _tagsService.DeleteTag(_chatProcessor.Message.Chat.Id, tagVal); if (unTag) { sendText = $"Hapus tag {tagVal} berhasil"; } await _chatProcessor.EditAsync(sendText); return; } else { sendText = $"Tag {tagVal} tidak di temukan"; } } await _chatProcessor.SendAsync(sendText); }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _chatProcessor = new ChatProcessor(context); var msg = context.Update.Message; if (msg.ReplyToMessage != null) { msg = msg.ReplyToMessage; } var chatTitle = msg.Chat.Title; var chatId = msg.Chat.Id; var chatType = msg.Chat.Type; var userId = msg.From.Id; var username = msg.From.Username; var name = (msg.From.FirstName + " " + msg.From.LastName).Trim(); var userLang = msg.From.LanguageCode; var text = $"👥 <b>{chatTitle}</b>\n" + $"ID: <code>{chatId}</code>\n" + $"Type: <code>{chatType}</code>\n\n" + $"👤 <b>{name}</b>\n" + $"ID: <code>{userId}</code>\n" + $"Username: @{username}\n" + $"Language: {userLang.ToUpper()}"; await _chatProcessor.SendAsync(text); // await context.Bot.Client.SendTextMessageAsync( // msg.Chat, // text, // ParseMode.Html, // replyToMessageId: msg.MessageId // ); }
public ChatHub(ChatProcessor chatService, IHttpContextAccessor httpContextAccessor, AuthorService authorService) { this.chatService = chatService; this.httpContextAccessor = httpContextAccessor; this.authorService = authorService; }