private static async Task AskForMessageToReplyTo2(TelegramBotAbstract telegramBotAbstract, MessageEventArgs e, int identity) { //ask link var question = new Language(new Dictionary <string, string> { { "it", "Inserisci il link del messaggio a cui vuoi rispondere" } }); var r = await AskUser.AskAsync(e.Message.From.Id, question, telegramBotAbstract, e.Message.From.LanguageCode, e.Message.From.Username); var tuple = GetMessageReply(r); if (r == null) { var l2 = new Language(new Dictionary <string, string> { { "it", "Errore, non siamo riusciti a comprendere il link che hai inviato\n" + "Operazione annullata." } }); } await PlaceMessageInQueue(telegramBotAbstract, new MessaggeAnonToSendInQueue(e), identity, tuple); }
private static async Task <Tuple <DateTime, DateTime> > GetStartAndStopHoursAsync(TelegramBotAbstract sender, MessageEventArgs e) { var question = new Language(new Dictionary <string, string> { { "it", "Ora di inizio? (esempio 8:15)" }, { "en", "Start time? (example 8:15)" } }); var start = await AskUser.AskAsync(e.Message.From.Id, question, sender, e.Message.From.LanguageCode, e.Message.From.Username); var question2 = new Language(new Dictionary <string, string> { { "it", "Ora di fine? (esempio 11:15)" }, { "en", "End time? (example 11:15)" } }); var end = await AskUser.AskAsync(e.Message.From.Id, question2, sender, e.Message.From.LanguageCode, e.Message.From.Username); if (start.Contains(":") && end.Contains(":")) { var start2 = start.Split(":"); var end2 = end.Split(":"); try { var dt1 = new DateTime(2000, 1, 1, Convert.ToInt32(start2[0]), Convert.ToInt32(start2[1]), 0); var dt2 = new DateTime(2000, 1, 1, Convert.ToInt32(end2[0]), Convert.ToInt32(end2[1]), 0); return(new Tuple <DateTime, DateTime>(dt1, dt2)); } catch { return(null); } } return(null); }
private static async Task OccupanciesOfTheDayAsync(TelegramBotAbstract sender, MessageEventArgs e) { var t3 = await GetDailySituationAsync(sender, e); if (t3 == null) { var text2 = new Language(new Dictionary <string, string> { { "it", "Errore nella consultazione del sito del polimi!" }, { "en", "Error while getting polimi website!" } }); await SendMessage.SendMessageInPrivate(sender, e.Message.From.Id, e.Message.From.LanguageCode, e.Message.From.Username, text2, ParseMode.Default, null); return; } var question = new Language(new Dictionary <string, string> { { "en", "Which room? (example: 3.0.1)" }, { "it", "Quale aula? (esempio 3.0.1)" } }); var roomName = await AskUser.AskAsync(e.Message.From.Id, question, sender, e.Message.From.LanguageCode, e.Message.From.Username, true); var t4 = GetRoomTitleAndHours(t3[0], roomName); ; if (t4 == null || t4.Count == 0) { var text2 = new Language(new Dictionary <string, string> { { "it", "Aula non trovata!" }, { "en", "Room not found!" } }); await SendMessage.SendMessageInPrivate(sender, e.Message.From.Id, e.Message.From.LanguageCode, e.Message.From.Username, text2, ParseMode.Default, null); return; } var htmlresult = "<html><head><style>td {border: 1px solid;}</style></head><body><table>"; foreach (var t5 in t4) { htmlresult += t5.OuterHtml; } htmlresult += "</table></body></html>"; ; var peer2 = UserbotPeer.GetPeerFromIdAndType(e.Message.From.Id, ChatType.Private); var peer = new Tuple <TLAbsInputPeer, long>(peer2, e.Message.From.Id); var text = new Language(new Dictionary <string, string> { { "en", roomName } }); var document = UtilsFileText.GenerateFileFromString(htmlresult, roomName + ".html", roomName, "text/html"); await sender.SendFileAsync(document, peer, text, TextAsCaption.AS_CAPTION, e.Message.From.Username, e.Message.From.LanguageCode, null, true); }
private static async Task SearchClassroomAsync(TelegramBotAbstract sender, MessageEventArgs e) { var question = new Language(new Dictionary <string, string> { { "it", "Nome dell'aula?" }, { "en", "Name of the room?" } }); var sigla = await AskUser.AskAsync(e.Message.From.Id, question, sender, e.Message.From.LanguageCode, e.Message.From.Username); var url = "https://www7.ceda.polimi.it/spazi/spazi/controller/RicercaAula.do?spazi___model" + "___formbean___RicercaAvanzataAuleVO___postBack=true&spazi___model___formbean___" + "RicercaAvanzataAuleVO___formMode=FILTER&evn_ricerca_avanzata=&spazi___model___formbean___" + "RicercaAvanzataAuleVO___sede=tutte&spazi___model___formbean___RicercaAvanzataAuleVO___sigla=" + sigla + "&spazi___model___formbean___RicercaAvanzataAuleVO___categoriaScelta=tutte&spazi" + "___model___formbean___RicercaAvanzataAuleVO___tipologiaScelta=tutte&spazi___model" + "___formbean___RicercaAvanzataAuleVO___iddipScelto=tutti&spazi___model___formbean___" + "RicercaAvanzataAuleVO___soloPreseElettriche_default=N&spazi___model___formbean___" + "RicercaAvanzataAuleVO___soloPreseDiRete_default=N"; var webReply = await Web.DownloadHtmlAsync(url, RequestCacheLevel.NoCacheNoStore); if (webReply == null || !webReply.IsValid()) { return; //todo: notify user that download failed } ; var doc = new HtmlDocument(); doc.LoadHtml(webReply.GetData()); var t1 = HtmlUtil.GetElementsByTagAndClassName(doc?.DocumentNode, "", "TableDati-tbody"); ; var t2 = t1?[0]; ; var t3 = HtmlUtil.GetElementsByTagAndClassName(t2, "tr"); ; var roomIndex = FindRoomIndex(t3, sigla); if (roomIndex == null) { return; //todo: send to the user "room not found" } ; var t4 = t3[roomIndex.Value]; ; var t5 = HtmlUtil.GetElementsByTagAndClassName(t4, "td"); ; if (t5.Count < 3) { return; //todo: send to the user "room not found" } var t6 = t5[2]; ; var t7 = HtmlUtil.GetElementsByTagAndClassName(t6, "a"); if (t7.Count < 1) { return; //todo: send to the user "room not found" } ; var t8 = t7[0]; ; var t9 = t8.Attributes; if (t9 == null) { return; //todo: send to the user "room not found" } var t10 = t9["href"]; if (t10 == null) { return; //todo: send to the user "room not found" } if (string.IsNullOrEmpty(t10.Value)) { return; //todo: send to the user "room not found" } var result = "https://www7.ceda.polimi.it/spazi/spazi/controller/" + t10.Value; var text2 = new Language(new Dictionary <string, string> { { "en", result } }); await SendMessage.SendMessageInPrivate(sender, e.Message.From.Id, e.Message.From.LanguageCode, e.Message.From.Username, text2, ParseMode.Html, null); }