Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime
- import telebot
- import constants
- import timetable
- import keyboard
- from datetime import date
- import calendar
- bot = telebot.TeleBot(constants.test_token)
- users = {}
- print(bot.get_me())
- @bot.message_handler(commands=['start'])
- def hundler_start(message):
- if str(message.from_user.id) not in users:
- users[str(message.from_user.id)] = {'name': message.from_user.first_name,
- 'week': 'auto',
- 'group': 'none',
- 'lastMessageId': 0
- }
- print(f'New user:\n name: {message.from_user.first_name}, id: {message.from_user.id}')
- print(f'Whole list of users:\n{users}')
- bot.send_message(message.chat.id, '''
- Цей бот створений для групи ЖРН-12С, а зокрема для найгарнішої киці)
- Команди:
- /menu - головне меню
- Щоб отримати розклад натисніть на відповіну кнопку на клавіатурі
- (Питання/пропозиції @dark_or)
- ''')
- @bot.message_handler(commands=['main', 'Menu', 'menu'])
- def handle_menu(message):
- user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
- user_markup.row('Розклад')
- user_markup.row('Час занять')
- user_markup.row('Налаштування')
- bot.send_message(message.from_user.id, 'Головне меню:', reply_markup=user_markup)
- @bot.message_handler(func=lambda message: 'Розклад' == message.text)
- def rozklad(message):
- if users[str(message.chat.id)]['lastMessageId'] != 0:
- bot.delete_message(chat_id=message.chat.id, message_id=users[str(message.chat.id)]['lastMessageId'])
- my_date = date.today()
- today = calendar.day_name[my_date.weekday()]
- if today == 'Saturday' or today == 'Sunday':
- today = 'Friday'
- day = timetable.week_today[today]
- message.text = day
- else:
- day = timetable.week_today[today]
- message.text = day
- hundle_text(message)
- users[str(message.chat.id)]['lastMessageId'] = message.message_id
- @bot.message_handler(func=lambda message: 'Час занять' == message.text)
- def lessons_time(message):
- bot.send_message(message.from_user.id,
- 'Час:\nПочаток - закінчення пар:\n1. 8:30 - 9:50\n2. 10:10 - 11:30\n3. 11:50 - 13:10\n4. 13:30 - 14:50')
- @bot.message_handler(func=lambda message: 'Налаштування' == message.text)
- def settings(message):
- settings_message = f"""Мої налаштування:
- Тиждень - {timetable.dict_settings[users[str(message.from_user.id)]['week']]}
- Підгрупа - {timetable.dict_settings[users[str(message.from_user.id)]['group']]}
- """
- bot.send_message(message.from_user.id, settings_message, reply_markup=keyboard.settings())
- @bot.message_handler(content_types=['text'])
- def hundle_text(message):
- if str(message.from_user.id) not in users:
- users[str(message.from_user.id)] = {'name': message.from_user.first_name,
- 'week': 'auto',
- 'group': 'none',
- }
- bot.send_message(message.from_user.id,
- 'На жаль у програмі стався збій...\nВаші налаштування скинуті до заводських:\nТип тижня: АВТОВИБІР\nТип підгрупи: НЕ ВИБРАНО')
- message.text = ' '
- if users[str(message.from_user.id)]['week'] == 'auto':
- week_number = int(datetime.now().strftime("%V"))
- elif users[str(message.from_user.id)]['week'] == 'chuselnuk':
- week_number = 2
- elif users[str(message.from_user.id)]['week'] == 'znamennuk':
- week_number = 1
- if week_number % 2 == 0:
- # чисельник
- if users[str(message.from_user.id)]['group'] == 'none':
- if message.text in timetable.time_table_chuselnuk_none:
- bot.send_message(message.chat.id, timetable.time_table_chuselnuk_none[message.text], reply_markup=keyboard.schedule())
- elif users[str(message.from_user.id)]['group'] == 'subgroup1':
- if message.text in timetable.time_table_chuselnuk_group_1:
- bot.send_message(message.chat.id, timetable.time_table_chuselnuk_group_1[message.text], reply_markup=keyboard.schedule())
- elif users[str(message.from_user.id)]['group'] == 'subgroup2':
- if message.text in timetable.time_table_chuselnuk_group_2:
- bot.send_message(message.chat.id, timetable.time_table_chuselnuk_group_2[message.text], reply_markup=keyboard.schedule())
- if week_number % 2 == 1:
- # знаменник
- if users[str(message.from_user.id)]['group'] == 'none':
- if message.text in timetable.time_table_znamennuk_none:
- bot.send_message(message.chat.id, timetable.time_table_znamennuk_none[message.text], reply_markup=keyboard.schedule())
- elif users[str(message.from_user.id)]['group'] == 'subgroup1':
- if message.text in timetable.time_table_znamennuk_group_1:
- bot.send_message(message.chat.id, timetable.time_table_znamennuk_group_1[message.text], reply_markup=keyboard.schedule())
- elif users[str(message.from_user.id)]['group'] == 'subgroup2':
- if message.text in timetable.time_table_znamennuk_group_2:
- bot.send_message(message.chat.id, timetable.time_table_znamennuk_group_2[message.text], reply_markup=keyboard.schedule())
- if str(message.from_user.id) == constants.id_martu:
- bot.send_message(message.chat.id, 'Хорошого дня, сонечко)')
- print(users)
- @bot.callback_query_handler(func=lambda call: 'week' in call.data)
- def data_handler(call):
- if users[str(call.message.chat.id)]['week'] == 'auto':
- week_number = int(datetime.now().strftime("%V"))
- elif users[str(call.message.chat.id)]['week'] == 'chuselnuk':
- week_number = 2
- elif users[str(call.message.chat.id)]['week'] == 'znamennuk':
- week_number = 1
- #bot.delete_message(call.message.chat.id, call.message.message_id)
- day = call.data.split('_')
- week_day = day[1]
- week_day = timetable.week_today[week_day]
- if week_number % 2 == 0:
- # чисельник
- if users[str(call.message.chat.id)]['group'] == 'none':
- if week_day in timetable.time_table_chuselnuk_none:
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=timetable.time_table_chuselnuk_none[week_day], reply_markup=keyboard.schedule())
- elif users[str(call.message.chat.id)]['group'] == 'subgroup1':
- if week_day in timetable.time_table_chuselnuk_group_1:
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=timetable.time_table_chuselnuk_group_1[week_day], reply_markup=keyboard.schedule())
- elif users[str(call.message.chat.id)]['group'] == 'subgroup2':
- if week_day in timetable.time_table_chuselnuk_group_2:
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=timetable.time_table_chuselnuk_group_2[week_day], reply_markup=keyboard.schedule())
- if week_number % 2 == 1:
- # знаменник
- if users[str(call.message.chat.id)]['group'] == 'none':
- if week_day in timetable.time_table_znamennuk_none:
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=timetable.time_table_znamennuk_none[week_day], reply_markup=keyboard.schedule())
- elif users[str(call.message.chat.id)]['group'] == 'subgroup1':
- if week_day in timetable.time_table_znamennuk_group_1:
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=timetable.time_table_znamennuk_group_1[week_day], reply_markup=keyboard.schedule())
- elif users[str(call.message.chat.id)]['group'] == 'subgroup2':
- if week_day in timetable.time_table_znamennuk_group_2:
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=timetable.time_table_znamennuk_group_2[week_day], reply_markup=keyboard.schedule())
- @bot.callback_query_handler(func=lambda call: 'wtype' in call.data)
- def settings_week_hundler(call):
- but_week = call.data.split('_')
- type_of_week = but_week[1]
- users[str(call.message.chat.id)]['week'] = type_of_week
- settings_message = f"""Мої налаштування:
- Тиждень - {timetable.dict_settings[users[str(call.message.chat.id)]['week']]}
- Підгрупа - {timetable.dict_settings[users[str(call.message.chat.id)]['group']]}"""
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=settings_message, reply_markup=keyboard.settings())
- @bot.callback_query_handler(func=lambda call: 'gtype' in call.data)
- def settings_group_hundler(call):
- but_group = call.data.split('_')
- type_of_group = but_group[1]
- users[str(call.message.chat.id)]['group'] = type_of_group
- settings_message = f"""Мої налаштування:
- Тиждень - {timetable.dict_settings[users[str(call.message.chat.id)]['week']]}
- Підгрупа - {timetable.dict_settings[users[str(call.message.chat.id)]['group']]}"""
- bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=settings_message, reply_markup=keyboard.settings())
- bot.polling(none_stop=True, interval=0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement