Пример #1
0
 def set_user_name(self, message):
     # Todo: check existing
     if message.text.isdigit():
         self.data[str(message.from_user.id)]['name'] = str(message.text)
         self.register_user_finish(message)
     else:
         my_bot.send_message(message.from_user.id,
                             '⚠️ Ошибка, нужно указать номер')
Пример #2
0
 def register_user_finish(self, message):
     self.data[str(message.from_user.id)]['settings'] = UserSettings()
     self.save()
     my_bot.reply_to(message,
                     '✅ Данные сохранены',
                     parse_mode='HTML',
                     disable_web_page_preview=True)
     with open(config.FileLocation.cmd_help, 'r', encoding='utf-8') as file:
         my_bot.send_message(message.from_user.id,
                             file.read(),
                             parse_mode='HTML',
                             disable_web_page_preview=True)
     quit(0)
Пример #3
0
    def register_user(self, message):
        if not self.is_registered(message):
            sent = my_bot.send_message(message.from_user.id,
                                       bold('❗️ Авторизация') +
                                       '\n\nВведи пароль:',
                                       parse_mode='HTML')
            my_bot.register_next_step_handler(sent, self.check_password)
            return

        sent = my_bot.send_message(
            message.from_user.id,
            '❓ Твой номер в {}?\nНапример: 5059, 5060 и т.д.'.format(
                self.asc_link),
            parse_mode='HTML')
        my_bot.register_next_step_handler(sent, self.set_user_name)
Пример #4
0
def command_reply(message):
    user_action_log(message, 'called ' + message.text)
    if hasattr(message, 'reply_to_message'):
        split = message.text.split(' ', 1)
        if len(split) > 1:
            replying_msg = message.reply_to_message
            if hasattr(replying_msg, 'entities'):
                user_ids = [
                    x.user.id for x in replying_msg.entities
                    if x.type == 'text_mention'
                ]
                if len(user_ids) == 1:
                    my_bot.send_message(user_ids[0],
                                        '{}: {}'.format(
                                            bold('Разработчик'), split[1]),
                                        parse_mode='HTML')
                    my_bot.reply_to(message, 'Сообщение отправлено!')
                    return
    my_bot.reply_to(message,
                    'Использовать с ответом на фидбек: /reply [ваш ответ]')
Пример #5
0
    def in_office_alert(self):
        def need_alert():
            if my_data.get_user_settings(user_id)['alert_about_users'] == 'on':
                return True
            if my_data.get_user_settings(user_id)['alert_about_users'] == 'when_in_office':
                return self.is_user_in_office(user_id)

        self.in_office = set(self._make_in_office_request().split('\n'))
        if len(self.in_office) == 1:
            return
        if len(self.in_office_old) == 0:
            self.in_office_old = self.in_office
            return
        come = self.in_office - self.in_office_old
        gone = self.in_office_old - self.in_office

        for user_id, user in my_data.data.items():
            if need_alert():
                for alert_user in user.get('alert_users', []):
                    if alert_user in come:
                        my_bot.send_message(user_id, '👨🏻‍💻️ {} сейчас в офисе!'.format(alert_user))
                    if alert_user in gone:
                        my_bot.send_message(user_id, '🙇🏻 {} теперь не в офисе!'.format(alert_user))
        self.in_office_old = self.in_office