def teachers_schelude(call): file_name = 'Розклад викладачів' file_path = os.path.dirname( os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/' doc = open(f'{file_path}{file_name}.xls', 'rb') bot.send_document(chat_id=call.from_user.id, data=doc)
def send_message_or_file(message, subject_id): if message.text == '/cancel': bot.send_message(chat_id=message.from_user.id, text=f'Дія була скасована {emojize(":white_check_mark:", use_aliases=True)}') bot.clear_step_handler_by_chat_id(chat_id=message.from_user.id) elif message.content_type not in ['text', 'photo', 'document']: bot.send_message(chat_id=message.from_user.id, text=f'Файл/повідомлення не відправлено {emojize(":x:", use_aliases=True)}\n' 'Некорректний формат\n\n' 'Відправте файл/повідомлення боту і він його передасть всім студентам цього предмету\n\n' 'Щоб скасувати дію можна скористатися командою /cancel') bot.register_next_step_handler(message, send_message_or_file, subject_id) else: subject = Subject.get_subject_fullname_by_id(subject_id) students = [] for group in Group.get_groups(): for student in Student.get_students_by_group(group.id): students.append(student) caption = '' if message.caption is None else message.caption if message.content_type == 'text': for student in students: try: bot.send_message(chat_id=student.id, text=f'Повідомлення по предмету {subject}:\n\n{message.text}') except ApiException: continue bot.send_message(chat_id=message.from_user.id, text=f'Повідомлення було відправлено ' f'{emojize(":white_check_mark:", use_aliases=True)}') elif message.content_type == 'document': for student in students: try: bot.send_document(chat_id=student.id, data=message.document.file_id, caption=f'Методичний матеріал з предмету {subject} ' f'\n\n{caption}') except ApiException: continue bot.send_message(chat_id=message.from_user.id, text=f'Файл було відправлено {emojize(":white_check_mark:", use_aliases=True)}') save_file_to_local(message.document.file_id, subject) elif message.content_type == 'photo': for student in students: try: bot.send_photo(chat_id=student.id, photo=message.photo[-1].file_id, caption=f'Методичний матеріал з предмету {subject} ' f'\n\n{caption}') except ApiException: continue bot.send_message(chat_id=message.from_user.id, text=f'Фото було відправлено {emojize(":white_check_mark:", use_aliases=True)}') save_file_to_local(message.photo[-1].file_id, subject)
def send_props(call): file_name = 'Платіжні реквізити' file_path = os.path.dirname( os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/' doc = open(f'{file_path}{file_name}.docx', 'rb') bot.delete_message(chat_id=call.from_user.id, message_id=call.message.message_id) bot.send_document(chat_id=call.from_user.id, data=doc)
def send_student_events_file(call): file_name = 'Відвідування заходів' file_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/' group_dict = prepare_student_events_table() make_student_events_table(group_dict=group_dict, file_name=file_name, file_path=file_path) doc = open(f'{file_path}{file_name}.xlsx', 'rb') bot.edit_message_text(chat_id=call.from_user.id, message_id=call.message.message_id, text='Документ з відвідуваннями заходів:') bot.send_document(chat_id=call.from_user.id, data=doc)
def send_event_visitors_file(call): event_id = call.data.split('_')[1] event_name = Event.get_event(event_id).name file_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/' stud_dict, otherfac_list = prepare_event_visitors_table(event_id) make_event_visitors_table(visitors_dict=stud_dict, otherfac_list=otherfac_list, event_name=event_name, file_path=file_path) doc = open(f'{file_path}{event_name}.xlsx', 'rb') bot.edit_message_text(chat_id=call.from_user.id, message_id=call.message.message_id, text='Документ з учасниками:') bot.send_document(chat_id=call.from_user.id, data=doc)
def send_rating_file(message): file_name = 'Рейтинг' file_path = os.path.dirname( os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + '/tmp/' stud_dict = prepare_student_grades_table() make_student_grades_table(students_dict=stud_dict, file_name=file_name, file_path=file_path) doc = open(f'{file_path}{file_name}.xlsx', 'rb') bot.send_message(chat_id=message.from_user.id, text='Документ з рейтингом студентів') bot.send_document(chat_id=message.from_user.id, data=doc)
def get_study_methods(call): subject_id = call.data.split('_')[1] subject_name = Subject.get_subject_name_by_id(subject_id) subject_path = os.path.dirname( os.path.dirname(os.path.dirname( os.path.abspath(__file__)))) + f'/tmp/{subject_name}' if os.path.exists(subject_path) and os.listdir(subject_path): bot.edit_message_text( chat_id=call.from_user.id, message_id=call.message.message_id, text=f'Методичні матеріали по предмету {subject_name}') for file_name in next(os.walk(subject_path))[2]: doc = open(f'{subject_path}/{file_name}', 'rb') bot.send_document(chat_id=call.from_user.id, data=doc) else: bot.edit_message_text(chat_id=call.from_user.id, message_id=call.message.message_id, text='Методичних матеріалів немає')