public async Task <Response <Message> > SendVideoAsync(ChatId chatId, TelegramFile video, int duration = 0, int width = 0, int height = 0, string caption = "", bool disableNotification = false, int replyToMessageId = 0, InlineKeyboard replyMarkup = null) { var markup = ""; if (replyMarkup != null) { markup = replyMarkup.GetJson(); } var url = Address + Token + "/sendVideo"; return(await SendRequest <Response <Message> >(new Dictionary <string, object> { { "chat_id", chatId.Id }, { "video", video }, { "duration", duration }, { "width", width }, { "height", height }, { "caption", caption }, { "disable_notification", disableNotification }, { "reply_to_message_id", replyToMessageId }, { "reply_markup", markup }, }, url)); }
internal static async Task <bool> SendFileAsync(TelegramFile file, Tuple <TLAbsInputPeer, long> peer, Language text, TextAsCaption textAsCaption, TelegramBotAbstract telegramBotAbstract, string username, string lang, long?replyToMessageId, bool disablePreviewLink) { return(await telegramBotAbstract.SendFileAsync(file, peer, text, textAsCaption, username, lang, replyToMessageId, disablePreviewLink)); }
public async Task <Response <Message> > SendAudioAsync(ChatId chatId, TelegramFile audio, string caption = "", int duration = 0, string performer = "", string title = "", bool disableNotification = false, int replyToMessageId = 0, InlineKeyboard replyMarkup = null) { var markup = ""; if (replyMarkup != null) { markup = replyMarkup.GetJson(); } var url = Address + Token + "/sendAudio"; return(await SendRequest <Response <Message> >(new Dictionary <string, object> { { "chat_id", chatId.Id }, { "voice", audio }, { "caption", caption }, { "performer", performer }, { "title", title }, { "duration", duration }, { "disable_notification", disableNotification }, { "reply_to_message_id", replyToMessageId }, { "reply_markup", markup }, }, url)); }
internal static TelegramFile GenerateFileFromString(string data, string fileName, string caption, string mimeType) { var stream = GenerateStreamFromString(data); var telegramFile = new TelegramFile(stream, fileName, caption, mimeType); return(telegramFile); }
private static async Task SendReportOfSuccessAndFailures2(Stream stream, string filename, TelegramBotAbstract sender, MessageEventArgs e) { var file = new TelegramFile(stream, filename, "", "application/octet-stream"); var peer = new Tuple <TLAbsInputPeer, long>(null, e.Message.From.Id); var text = new Language(new Dictionary <string, string> { { "en", "" } }); await SendMessage.SendFileAsync(file, peer, text, TextAsCaption.AS_CAPTION, sender, e.Message.From.Username, e.Message.From.LanguageCode, null, true); }
public async Task <Response <bool> > SetChatPhotoAsync(ChatId chatId, TelegramFile photo) { var url = Address + Token + "/setChatPhoto"; if (photo.Type == TelegramFileType.Raw) { return(await SendRequest <Response <bool> >(new Dictionary <string, object> { { "chat_id", chatId.Id }, { "photo", photo }, }, url)); } throw new ArgumentException("Photo must be new chat photo, uploaded using multipart/form-data"); }
private static async Task <int?> QueryBot2(bool execute_true_select_false, MessageEventArgs e, TelegramBotAbstract sender) { if (e.Message.ReplyToMessage == null || string.IsNullOrEmpty(e.Message.ReplyToMessage.Text)) { var text = new Language(new Dictionary <string, string> { { "en", "You have to reply to a message containing the query" } }); await sender.SendTextMessageAsync(e.Message.From.Id, text, ChatType.Private, e.Message.From.LanguageCode, ParseMode.Html, null, e.Message.From.Username, e.Message.MessageId); return(null); } var query = e.Message.ReplyToMessage.Text; if (execute_true_select_false) { var i = SqLite.Execute(query); var text = new Language(new Dictionary <string, string> { { "en", "Query execution. Result: " + i } }); await sender.SendTextMessageAsync(e.Message.From.Id, text, ChatType.Private, e.Message.From.LanguageCode, ParseMode.Html, null, e.Message.From.Username, e.Message.MessageId); return(i); } var x = SqLite.ExecuteSelect(query); var x2 = StreamSerialization.SerializeToStream(x); var documentInput = new TelegramFile(x2, "table.bin", "Query result", "application/octet-stream"); TLAbsInputPeer peer2 = new TLInputPeerUser { UserId = e.Message.From.Id }; var peer = new Tuple <TLAbsInputPeer, long>(peer2, e.Message.From.Id); var text2 = new Language(new Dictionary <string, string> { { "en", "Query result" } }); var v = await sender.SendFileAsync(documentInput, peer, text2, TextAsCaption.AS_CAPTION, e.Message.From.Username, e.Message.From.LanguageCode, e.Message.MessageId, false); return(v ? 1 : 0); }
public async Task <Response <Message> > SendStickerAsync(ChatId chatId, TelegramFile sticker, bool disableNotification = false, int replyToMessageId = 0, InlineKeyboard replyMarkup = null) { var markup = ""; if (replyMarkup != null) { markup = replyMarkup.GetJson(); } var methodUrl = Address + Token + "/sendSticker"; return(await SendRequest <Response <Message> >(new Dictionary <string, object> { { "chat_id", chatId.Id }, { "sticker", sticker }, { "disable_notification", disableNotification }, { "reply_to_message_id", replyToMessageId }, { "reply_markup", markup } }, methodUrl)); }
internal static async Task UpdateLinksFromJsonAsync(TelegramBotAbstract sender, MessageEventArgs e) { try { if (e.Message.Chat.Type != ChatType.Private) { return; } if (!Owners.CheckIfOwner(e.Message.From.Id)) { return; } if (e.Message.ReplyToMessage == null) { return; } if (e.Message.ReplyToMessage.Document == null) { return; } var d = e.Message.ReplyToMessage.Document; var f = await sender.DownloadFileAsync(d); Console.WriteLine(f.Item2.Length); f.Item2.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(f.Item2); var text = reader.ReadToEnd(); var obj = JsonConvert.DeserializeObject(text); Console.WriteLine(obj.GetType()); var jArray = (JArray)obj; var L = new ListaGruppiTG_Update(); var gruppoTGs = new List <GruppoTG>(); foreach (var x in jArray) { try { var jObject = (JObject)x; var gruppoTG = new GruppoTG(jObject["id_link"], jObject["class"], jObject["permanentId"], jObject["LastUpdateInviteLinkTime"]); gruppoTGs.Add(gruppoTG); } catch { ; } } gruppoTGs = RimuoviDuplicati(gruppoTGs); foreach (var gruppoTG in gruppoTGs) { try { await Task.Delay(100); } catch { ; } try { await UpdateLinksFromJson2Async(gruppoTG, sender, e, L); } catch (Exception ex) { Console.WriteLine(ex); var ex4m = "4" + "\n\n" + ex.Message; await sender.SendTextMessageAsync(e.Message.From.Id, new Language( new Dictionary <string, string> { { "it", ex4m } }), ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username); return; } } var s2 = "Link generati\n\n" + "Totale: " + L.Count() + "\n" + "Nuovi: " + L.GetCount_Filtered(SuccessoGenerazioneLink.NUOVO_LINK) + "\n" + "Riciclati: " + L.GetCount_Filtered(SuccessoGenerazioneLink.RICICLATO) + "\n" + "Errori: " + L.GetCount_Filtered(SuccessoGenerazioneLink.ERRORE) + "\n"; await sender.SendTextMessageAsync(e.Message.From.Id, new Language( new Dictionary <string, string> { { "it", s2 } }), ChatType.Private, "it", ParseMode.Default, null, e.Message.From.Username); var st = L.GetStringList(); var dict = new Dictionary <string, string> { { "it", "Gruppi con link rigenerati" } }; var stream = GenerateStreamFromString(st); var tf = new TelegramFile(stream, "groups.txt", "Gruuppi con link rigenerati", "text/plain"); await sender.SendFileAsync(tf, new Tuple <TLAbsInputPeer, long>(null, e.Message.From.Id), new Language(dict), TextAsCaption.AFTER_FILE, e.Message.From.Username, e.Message.From.LanguageCode, null, false); } catch (Exception ex) { Console.WriteLine(ex); } }
internal static async Task <bool> SendFileAsync(TelegramFile file, Tuple <TLAbsInputPeer, long> peer, Language text, TextAsCaption textAsCaption, TelegramBotAbstract telegramBotAbstract, string username, string lang) { return(await telegramBotAbstract.SendFileAsync(file, peer, text, textAsCaption, username, lang)); }