def upload_homework(message): chat_id = message.chat.id homework = session.query(Homework).get(message.text) bot.send_document(message.chat.id, homework.file_telegram_id) send_main_menu(message)
def rejected(message): chat_id = message.chat.id bot.send_message( chat_id, "Вы не можете поменять себе роль, так как Вы -- администратор.") send_main_menu(message)
def option_select(message): chat_id = message.chat.id user = session.query(User).filter_by(name=username).one() # FIXME: # if role == Role.ADMIN: ask_again_to_be_sure # if my_role == Role.ADMIN: reject changing (!) <- check global is_checked if message.current_group.user_has_role(user, Role.ADMIN): bot.send_message( chat_id, "Вы не можете поменять себе роль, так как Вы -- администратор.") else: role = Role(message.text) if role == Role.ADMIN and not is_checked: bot.send_message( chat_id, "Вы уверены, что хотите дать этому пользователю права администратора?" ) is_checked = True bot.register_next_step_handler(message, option_select) else: message.current_group.add_role_to_user(user, role) bot.send_message( chat_id, "Роль пользователя'" + user.name + "' успешно изменена!") bot.send_message(chat_id, "Новая роль пользователя: " + str(role)) if is_checked: is_checked = False send_main_menu(message)
def remove_success(message): chat_id = message.chat.id group_name = message.current_group.name user = User.from_telegram_nickname(message.text) message.current_group.delete_user(user) bot.send_message(chat_id, "Пользователь удалён") send_main_menu(message)
def check_inbox(message): chat_id = message.chat.id user = User.from_telegram_id(chat_id) if user.is_inbox_empty(): bot.send_message(chat_id, 'У вас нет новых сообщений :(') else: bot.send_message(chat_id, user.inbox) user.inbox = '' send_main_menu(message)
def check_end(message): chat_id = message.chat.id completed_homework = states[chat_id] if any_messages[chat_id]: completed_homework.comment = message.text else: completed_homework.comment = None session.commit() bot.send_message(chat_id, "Проверено") send_main_menu(message)
def got_group(message): if message.text == "Создать группу": return create.create_group(message) user = User.from_telegram_id(message.chat.id) groups = {group.name: group for group in user.groups} if message.text in groups.keys(): current_groups[message.chat.id] = groups[message.text] message.current_group = groups[message.text] send_main_menu(message) else: return select_group(message)
def push_next2(message): user = User.from_telegram_id(message.chat.id) chat_id = message.chat.id homework = session.query(Homework).get(states[message.chat.id]) completed = CompletedHomework(homework=homework, file_telegram_id=message.document.file_id, student=user) session.add(completed) session.commit() bot.send_message(chat_id, "Файл загружен!") send_main_menu(message)
def ask_teacher(message): chat_id = message.chat.id answer = message.text if answer == 'Отмена': send_main_menu(message) else: global username usernames[chat_id] = answer bot.send_message( chat_id, 'Что бы Вы хотели спросить у своего любимого преподавателя? :)') bot.register_next_step_handler(message, the_question)
def the_question(message): chat_id = message.chat.id msg = message.text # user = User.from_telegram_nickname(usernames[chat_id]) user = session.query(User).filter_by(name=usernames[chat_id]).one() me = User.from_telegram_id(chat_id) # user.inbox = str(user.inbox) + '\n' + 'новое сообщение от \'' + me.name + '\': ' + msg # session.commit() bot.send_message(user.telegram_id, f"Сообщение от пользователя {me.name}:\n{msg}") bot.send_message(chat_id, "Сообщение отправлено!") send_main_menu(message)
def get_marks(message): chat_id = message.chat.id user = User.from_telegram_id(chat_id) completed_homeworks = user.completed_homeworks s = '' for hw in completed_homeworks: if hw.is_checked(): s += f'Дз {hw.id}, оценка: {hw.marks}' if hw.has_comment(): s += f', комментарий: {hw.comment}' s += '\n' else: s += f'Дз {hw.id}, не проверено\n' bot.send_message(chat_id, s) send_main_menu(message)