diff --git a/active_bots/telegrambot.py b/active_bots/telegrambot.py index 64c5849..4534047 100644 --- a/active_bots/telegrambot.py +++ b/active_bots/telegrambot.py @@ -1,7 +1,7 @@ from bot import Bot import logging from report import Report -from twx.botapi import TelegramBot +from twx.botapi import TelegramBot as Telegram logger = logging.getLogger(__name__) @@ -9,16 +9,27 @@ logger = logging.getLogger(__name__) class TelegramBot(Bot): def crawl(self, user): - tb = TelegramBot(user.get_telegram_credentials()) + tb = Telegram(user.get_telegram_credentials()) updates = tb.get_updates().wait() reports = [] for update in updates: - reports.append(Report(update.message.from.username,self, - update.message.text,None,update.message.date)) + if update.message.text.lower() == "/start": + user.add_telegram_subscribers(update.message.from.id) + tb.send_message(update.message.from.id, "You are now subscribed to report notifications.") #TODO: /start message should be set in frontend + elif update.message.text.lower() == "/stop": + user.remove_telegram_subscribers(update.message.from.id) + tb.send_message(update.message.from.id, "You are now unsubscribed from report notifications.") #TODO: /stop message should be set in frontend + elif update.message.text.lower() == "/help": + tb.send_message(update.message.from.id, "Send reports here to share them with other users. Use /start and /stop to be included/excluded.") #TODO: /help message should be set in frontend + else: + for row in user.get_telegram_subscribers(): + if update.message.from.id == row[0]: + reports.append(Report(update.message.from.username, self, update.message.text, None, update.message.date)) + break return reports def post(self, user, report): - tb = TelegramBot(user.get_telegram_credentials()) + tb = Telegram(user.get_telegram_credentials()) text = report.text if len(text) > 4096: text = text[:4096 - 4] + u' ...'