!7 !include once #1017511 // Telegram Bots static TelegramLongPollingBot bot; static BotSession botSession; p { fS apiToken = telegramBotToken_mandatory(); ApiContextInitializer.init(); bot = new TelegramLongPollingBot { public S getBotUsername() { ret "HelloComputer_bot"; } public S getBotToken() { ret apiToken; } public void onUpdateReceived(Update update) { pcall { print("Got update! " + update); Message msg = update.getMessage(); //update.getChannelPost(); logQuotedWithDate(telegramFullUpdatesLogFile(), str(update)); if (msg != null && msg.hasText()) { S text = msg.getText(); print("Incoming text: " + text); Chat chat = msg.getChat(); User from = msg.getFrom(); Map map = litorderedmap( where := chat == null ? null : chat.getId(), type := 'heard, date := localDateWithMilliseconds(), originalDate := msg.getDate(), +text); if (from != null) putAll(map, litorderedmap( userID := from.getId(), userFirstName := from.getFirstName(), userLastName := from.getLastName())); logStructure(telegramLogFile(), map); } } } }; botSession = new TelegramBotsApi().registerBot(bot); watchStructureLog_future(telegramBotToSendLog(), 100, voidfunc(Map map) { if (eq(map.get('action), 'send)) telegram_sendWithLogging(bot, telegram_chatID(), getString(map, 'text)); }); print("Telegram Bot running."); } svoid cleanMeUp { if (botSession != null) botSession.close(); }