def sure(message): if message.text == '🔥 Да': opendb().del_usr(message) bot.send_message(message.chat.id, 'Данные удалены') else: handle_help(message)
def regestration(message): all_groups = get_grp_list() if not (message.text in all_groups): opendb().ins_id(message) gr_failture = bot.send_message(message.chat.id, config.completef) bot.register_next_step_handler(gr_failture, change_gr) else: opendb().ins_all(message) bot.send_message(message.chat.id, config.completet) current_func = '' handle_help(message)
def change_gr(message): print('\nПоменяй группу ', message.chat.id, datetime.now()) all_groups = get_grp_list() if not (message.text in all_groups): bot.send_message(message.chat.id, config.completef) return opendb().upd_gr(message) bot.send_message(message.chat.id, config.completet) handle_help(message)
def week_table(call): group_name = opendb().find_gr(call.message) print(group_name) dates, schedule = get_scheldue(group_name) sended_message = '' print(dates) for i in range(len(dates)): sended_message += '===={}====\n'.format(dates[i]) for j in range(len(schedule[i]['title'])): print() sended_message += '⌚' + schedule[i]['time'][j] + '\n📝' + schedule[ i]['title'][j] + ( ('\n👤' + schedule[i]['lecturer'][j]['name']) if (schedule[i]['lecturer'][j]['name'] != 'None') else '') + ('\n📍' + schedule[i]['location'][j] + '\n' if schedule[i]['location'][j] != 'None' else '\n') + schedule[i]['type'][j] + '\n' sended_message += '\n' sended_message += '\n' if sended_message == '': sended_message = 'Пар нет или расписание не закончено' bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=sended_message) print('\nОтправляемое сообщение (Неделя):\n\n', group_name, '\n', sended_message, '\n')
def tomorrow_table(call): group_name = opendb().find_gr(call.message) print(group_name) dates, schedule = get_scheldue(group_name) sended_message = '' search_date = today_date try: i = dates.index(search_date) sended_message += '===={}====\n'.format(dates[i]) for j in range(len(schedule[i]['title'])): print() sended_message += '⌚' + schedule[i]['time'][j] + '\n📝' + schedule[ i]['title'][j] + ( ('\n👤' + schedule[i]['lecturer'][j]['name']) if (schedule[i]['lecturer'][j]['name'] != 'None') else '') + ('\n📍' + schedule[i]['location'][j] + '\n' if schedule[i]['location'][j] != 'None' else '\n') + schedule[i]['type'][j] + '\n' sended_message += ''' ''' except ValueError: sended_message = 'Пар нет, отдыхай :)' print('\nОтправляемое сообщение (Сегодня/завтра):\n\n', group_name, '\n', sended_message, '\n') bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=sended_message)
def next_schedule(call): group_name = opendb().find_gr(call.message) print(group_name) dates, schedule = get_scheldue(group_name) sended_message = '' nowtime = (datetime.now() + timedelta(hours=3)).strftime('%H:%M') next_date = 0 if not today_date in dates or nowtime < schedule[dates.index( today_date)]['time'][0].split()[0]: search_date = 0 elif tomorrow_date in dates and nowtime > schedule[dates.index( today_date)]['time'][0].split()[0]: search_date = dates.index(tomorrow_date) else: search_date = 1 try: day = schedule[search_date] sended_message += '===={}====\n'.format(dates[search_date]) for j in range(len(schedule[search_date]['title'])): sended_message += '⌚' + day['time'][j] + '\n📝' + day['title'][j] + ( ('\n👤' + day['lecturer'][j]['name']) if (day['lecturer'][j]['name'] != 'None') else '') + ('\n📍' + day['location'][j] + '\n' if day['location'][j] != 'None' else '\n') + day['type'][j] + '\n' sended_message += ''' ''' except ValueError: sended_message = 'Пар нет, отдыхай :)' bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=sended_message)
def repeat_all_messages(message): all_groups = get_grp_list() user_row = opendb().find_usr(message) print('User_row:', user_row) print(datetime.now(), 'Обработка всех сообщений. Сообщение - ', message.text, user_row) if user_row == None or user_row[2] == None: msg = bot.send_message( message.chat.id, 'А у тебя тут группа не записана, напиши мне шифр своей группы в формате М**-****-** (Если не ранее 2016 года поступления) или **-****-** (В иных случаях) (Третья звездочка - буква О, а не нолик! [Это для очников, в вечерке там В]), например: М4О-211Б-16 или 4О-404Б-14, если ваш факультет прикрепили к кому-то, то *-***-****-**' ) if user_row == None: opendb().ins_id(message) bot.register_next_step_handler(msg, change_gr)
def handle_start(message): print('\nStart ', message.chat.id, datetime.now()) if opendb().find_usr(message) != None: bot.send_message(message.chat.id, config.startagain) handle_help(message) return msg = bot.send_message(message.chat.id, config.start) bot.register_next_step_handler(msg, regestration)
def next_lesson(call): group_name = opendb().find_gr(call.message) dates, schedule = get_scheldue(group_name) #Выбираем группу sended_message = '' search_date = today_date try: i = dates.index(search_date) day = schedule[i] #Берем расписание на сегодня j = 0 nowtime = (datetime.now() + timedelta(hours=3)).strftime( '%H:%M') #Поправка на отличие времени сервера while sended_message == '' and j < len(day['time']): tdy_time = day['time'][j] if nowtime < tdy_time.split()[0]: lctr = '👤{}\n'.format(day['lecturer'][j]['name']) if ( day['lecturer'][j]['name'] != 'None') else '' lctn = '📍{}\n'.format( day['location'] [j]) if day['location'][j] != 'None' else '\n' sended_message = 'Следующая пара: \n\n===== {} =====\n⌚ {}\n📝{}\n{}{}{}'.format( dates[i], day['time'][j], day['title'][j], lctr, lctn, day['type'][j]) j += 1 if sended_message == '': day = schedule[dates.index(tomorrow_date)] lctr = '👤{}\n'.format(day['lecturer'][0]['name']) if ( day['lecturer'][0]['name'] != 'None') else '' lctn = '📍{}\n'.format( day['location'][0]) if day['location'][0] != 'None' else '\n' sended_message = 'Следующая пара: \n\n===== {} =====\n⌚ {}\n📝{}\n{}{}{}'.format( dates[i], day['time'][0], day['title'][0], lctr, lctn, day['type'][0]) # sended_message = 'Сегодня больше нет пар, отдыхай :)' bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=sended_message) except Exception as e: sended_message = 'Тут ошибка' bot.send_message(call.message.chat.id, sended_message) bot.send_message( 64634999, 'Следующую пару не нашел у ' + group_name + 'по причине ' + e)
def session_timetable(message): print('\nРасписание экзаменов', message.chat.id, datetime.now()) group_name = opendb().find_gr(message) sess = parser.get_session(group_name) sended_message = '' for day in sess: sended_message += 4 * '=' + day[0][0:5] + ' ' + day[0][ 5::] + 4 * '=' + '\n👤 ' + day[4] + '\n📝 ' + day[ 3] + '\n⌚ Начало в ' + day[1].split(' – ')[0] + '\n📍 ' + ( ('В аудитории' + day[-1]) if not ('Кафедра' in day[-1]) else 'На кафедре') + '\n\n' bot.send_message(message.chat.id, sended_message) print(sended_message)
def closest_exam(message): print('\nБлижайший экзамен ', message.chat.id, datetime.now()) group_name = opendb().find_gr(message) sess = parser.get_session(group_name) sended_message = '' i = 0 day = sess[i] if date.today().month != 1 and date.today().month != 6: sended_message = 4 * '=' + day[0][0:5] + ' ' + day[0][ 5::] + 4 * '=' + '\n👤 ' + day[4] + '\n📝 ' + day[ 3] + '\n⌚ Начало в ' + day[1].split(' – ')[0] + '\n📍 ' + ( ('В аудитории' + day[-1]) if not ('Кафедра' in day[-1]) else 'На кафедре') + '\n\n' bot.send_message(message.chat.id, sended_message) return print('session: ', sess[i][0].split()[0]) while i < len(sess) and int( sess[i][0].split()[0].split('.')[0]) <= date.today().day: i += 1 try: day = sess[i] except IndexError: sended_message = 'Сессия кончилась!' else: sended_message = 4 * '=' + day[0][0:5] + ' ' + day[0][ 5::] + 4 * '=' + '\n👤 ' + day[4] + '\n📝 ' + day[ 3] + '\n⌚ Начало в ' + day[1].split(' – ')[0] + '\n📍 ' + ( ('В аудитории' + day[-1]) if not ('Кафедра' in day[-1]) else 'На кафедре') + '\n\n' bot.send_message(message.chat.id, sended_message)
def next_laba(call): group_name = opendb().find_gr(call.message) print(group_name) dates, schedule = get_scheldue(group_name) done = False i = 0 while not done: try: day = schedule[i] except IndexError: sended_message = 'Лабы не скоро :)' try: done = True lsn_indx = day['type'].index('ЛР') lctr = ('👤{}\n'.format(day['lecturer'][lsn_indx]['name']) if (day['lecturer'][lsn_indx]['name'] != 'None') else '') lctn = '📍{}\n'.format( day['location'] [lsn_indx]) if day['location'][lsn_indx] != 'None' else '\n' sended_message = 'Следубщая лабораторная:\n\n===== {} =====\n⌚ {}\n📝{}\n{}{}'.format( dates[i], day['time'][lsn_indx], day['title'][lsn_indx], lctr, lctn) except: done = False i += 1 bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=sended_message) print('\nОтправляемое сообщение (Неделя):\n\n', group_name, '\n', sended_message, '\n')
def when_freedom(message): print(datetime.now(), "\nКогда домой ", message.chat.id, message.chat.username) group_name = opendb().find_gr(message) print(group_name) dates, schedule = get_scheldue(group_name) sended_message = '' try: i = dates.index(today_date) for j in range(len(schedule[i]['time'])): lesson_start_time = re.findall(r'\d\d:\d\d', schedule[i]['time'][j])[0] lesson_end_time = re.findall(r'\d\d:\d\d', schedule[i]['time'][j])[1] if lesson_start_time < datetime.now().strftime( '%H:%M:%S') < lesson_end_time: hour = int(lesson_end_time[0:2]) - int( datetime.now().strftime('%H')) minute = int(lesson_end_time[3:5]) - int( datetime.now().strftime('%M')) if minute < 0: hour -= 1 minute += 60 time_end = str(hour) + ':' + str(minute) if len( str(minute)) > 1 else str(hour) + ':0' + str(minute) elif lesson_start_time > datetime.now().strftime( '%H:%M:%S') and buf != lesson_start_time: i += 1 buf = lesson_start_time if i > 1: if time_end != '': sended_message = 'Осталось ещё {} до конца пары, а потом ещё {} пары'.format( time_end, str(i)) else: sended_message = 'Осталось ещё {} пары'.format(str(i)) elif i == 1: if time_end != '': sended_message = 'Осталось ещё {} до конца пары, а потом ещё 1 парa'.format( time_end) else: sended_message = 'Осталось ещё 1 парa' else: if time_end != '': sended_message = 'Осталось ещё {} до конца пары, а потом домой!'.format( time_end) else: sended_message = 'Ты уже свободен на сегодня' except ValueError: sended_message = 'На сегодня ты свободен!' bot.send_message(message.chat.id, sended_message) print('\nОтправляемое сообщение (Когда домой):\n\n', group_name, sended_message, '\n')