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, '⚠️ Ошибка, нужно указать номер')
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)
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)
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 [ваш ответ]')
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