コード例 #1
0
 def handle_state(self, bot_user: BotUser, message: Message):
     state = bot_user.state
     handlers_map = {
         'switch_mode': self.switch_mode,  # self.switch_mode()
         'switch_notebook': self.switch_notebook,  # self.switch_notebook()
     }
     state_handler = handlers_map[state]
     state_handler(bot_user, message.text)
     bot_user.state = None
     self.users.save(bot_user.asdict())
コード例 #2
0
ファイル: core.py プロジェクト: eg15/evernote-telegram-bot
 def handle_state(self, bot_user: BotUser, message: Message):
     state = bot_user.state
     handlers_map = {
         "switch_mode": self.switch_mode,  # self.switch_mode()
         "switch_notebook": self.switch_notebook,  # self.switch_notebook()
     }
     state_handler = handlers_map.get(state)
     if not state_handler:
         raise EvernoteBotException(f"Invalid state: {state}")
     state_handler(bot_user, message.text)
     bot_user.state = None
     self.users.save(bot_user.asdict())
コード例 #3
0
def switch_mode_command(bot, message: dict):
    user_id = message['from']['id']
    user_data = bot.users.get(user_id)
    if not user_data:
        raise TelegramBotError("Unregistered user {0}. You've to send /start to register.")
    user = BotUser(**user_data)
    buttons = []
    for mode in ('one_note', 'multiple_notes'):
        title = mode.capitalize().replace('_', ' ')
        if user.bot_mode == mode:
            title = f'> {title} <'
        buttons.append({'text': title})
    keyboard = {
        'keyboard': [[b] for b in buttons],
        'resize_keyboard': True,
        'one_time_keyboard': True,
    }
    bot.api.sendMessage(user.telegram.chat_id, 'Please, select mode', json.dumps(keyboard))
    user.state = 'switch_mode'
    bot.users.save(user.asdict())
コード例 #4
0
def switch_notebook_command(bot, message: Message):
    user_id = message.from_user.id
    user_data = bot.users.get(user_id)
    user = BotUser(**user_data)
    all_notebooks = bot.evernote.get_all_notebooks(user.evernote.access.token)
    buttons = []
    for notebook in all_notebooks:
        name = notebook["name"]
        if name == user.evernote.notebook.name:
            name = f"> {name} <"
        buttons.append({"text": name})
    keyboard = {
        "keyboard": [[b] for b in buttons],
        "resize_keyboard": True,
        "one_time_keyboard": True,
    }
    bot.api.sendMessage(user.telegram.chat_id, "Please, select notebook",
                        json.dumps(keyboard))
    user.state = "switch_notebook"
    bot.users.save(user.asdict())
コード例 #5
0
def switch_mode_command(bot, message: Message):
    mode = message.text
    user_id = message.from_user.id
    user_data = bot.users.get(user_id)
    user = BotUser(**user_data)
    buttons = []
    for mode in ('one_note', 'multiple_notes'):
        title = mode.capitalize().replace('_', ' ')
        if user.bot_mode == mode:
            title = f'> {title} <'
        buttons.append({'text': title})
    keyboard = {
        'keyboard': [[b] for b in buttons],
        'resize_keyboard': True,
        'one_time_keyboard': True,
    }
    bot.api.sendMessage(user.telegram.chat_id, 'Please, select mode',
                        json.dumps(keyboard))
    user.state = 'switch_mode'
    bot.users.save(user.asdict())
コード例 #6
0
def switch_notebook_command(bot, message: dict):
    user_id = message['from']['id']
    user_data = bot.users.get(user_id)
    if not user_data:
        raise TelegramBotError("Unregistered user {0}. You've to send /start to register.")
    user = BotUser(**user_data)
    evernote_api = bot.get_evernote_api(user_id)
    all_notebooks = evernote_api.get_all_notebooks()
    buttons = []
    for notebook in all_notebooks:
        name = notebook['name']
        if name == user.evernote.notebook.name:
            name = f'> {name} <'
        buttons.append({'text': name})
    keyboard = {
        'keyboard': [[b] for b in buttons],
        'resize_keyboard': True,
        'one_time_keyboard': True,
    }
    bot.api.sendMessage(user.telegram.chat_id, 'Please, select notebook', json.dumps(keyboard))
    user.state = 'switch_notebook'
    bot.users.save(user.asdict())