Advertisement
darkor

test_telegram_bot

Oct 16th, 2019
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.44 KB | None | 0 0
  1. from datetime import datetime
  2. import telebot
  3. import constants
  4. import timetable
  5. bot = telebot.TeleBot(constants.token)
  6.  
  7.  
  8.  
  9. users = {}
  10.  
  11. print(bot.get_me())
  12.  
  13. def log(message, answer):
  14.     print('\n -------------------------------------')
  15.     print(datetime.now())
  16.     print('Повідомлення від {0} {1}. (id = {2}) \n Текст - {3}'.format(message.from_user.first_name,
  17.                                                                        message.from_user.last_name,
  18.                                                                        str(message.from_user.id),
  19.                                                                        message.text))
  20.     print(answer)
  21.  
  22. @bot.message_handler(commands=['start'])
  23. def hundler_start(message):
  24.  
  25.     if str(message.from_user.id) not in users:
  26.         users[str(message.from_user.id)] = {'name': message.from_user.first_name,
  27.                                             'week': 'auto',
  28.                                             'group': 'none',
  29.                                             }
  30.         print(f'New user:\n name: {message.from_user.first_name}, id: {message.from_user.id}')
  31.         print(f'Whole list of users:\n{users}')
  32.  
  33.     bot.send_message(message.chat.id, '''  
  34.    Цей бот створений для групи ЖРН-12С, а зокрема для найгарнішої киці)
  35.    Команди:
  36.        /menu - головне меню
  37.        
  38.    Щоб отримати розклад натисніть на відповіну кнопку на клавіатурі
  39.    (Питання/пропозиції @dark_or)
  40.    ''')
  41.  
  42. @bot.message_handler(commands=['main', 'Menu', 'menu'])
  43. def handle_menu(message):
  44.     user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
  45.     user_markup.row('Розклад')
  46.     user_markup.row('Час занять')
  47.     user_markup.row('Налаштування')
  48.     bot.send_message(message.from_user.id, 'Головне меню:', reply_markup=user_markup)
  49.  
  50. @bot.message_handler(content_types=['text'])
  51. def hundle_timetable(message=['Розклад']):
  52.     user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
  53.     user_markup.row('Понеділок', 'Вівторок', 'Середа')
  54.     user_markup.row('Четвер', "П'ятниця", '/Menu')
  55.     bot.send_message(message.from_user.id, 'Виберіть день тижня, або поверніться у меню', reply_markup=user_markup)
  56.  
  57. @bot.message_handler(content_types=['text'])
  58. def hundle_settings(message=['Налаштування']):
  59.     user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
  60.     user_markup.row('Підгрупа')
  61.     user_markup.row('Тиждень')
  62.     user_markup.row('/Menu')
  63.     bot.send_message(message.from_user.id, 'Налаштування:', reply_markup=user_markup)
  64.  
  65. @bot.message_handler(content_types=['text'])
  66. def hundler_subgroup(message=['Підгрупа']):
  67.     user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
  68.     user_markup.row('Ігнорувати підгрупу')
  69.     user_markup.row('Підгрупа 1', 'Підгрупа 2')
  70.     user_markup.row('Налаштування', '/Menu')
  71.     bot.send_message(message.from_user.id, 'Виберіть підгрупу:', reply_markup=user_markup)
  72.  
  73. @bot.message_handler(content_types=['text'])
  74. def hundler_week(message=['Тиждень']):
  75.     user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
  76.     user_markup.row('Визначати автоматично')
  77.     user_markup.row('Чисельник', 'Знаменник')
  78.     user_markup.row('Налаштування', '/Menu')
  79.     bot.send_message(message.from_user.id, 'Виберіть тип тижня:', reply_markup=user_markup)
  80.  
  81.  
  82.  
  83. @bot.message_handler(content_types=['text'])
  84. def hundle_text(message):
  85.     if users[str(message.from_user.id)]['week'] == 'auto':
  86.         week_number = int(datetime.now().strftime("%V"))
  87.  
  88.     elif users[str(message.from_user.id)]['week'] == 'чисельник':
  89.         week_number = 2
  90.  
  91.     elif users[str(message.from_user.id)]['week'] == 'знаменник':
  92.         week_number = 1
  93.  
  94.     if week_number % 2 == 0:
  95.         # чисельник
  96.         if users[str(message.from_user.id)]['group'] == 'none':
  97.             if message.text in timetable.time_table_chuselnuk_none:
  98.                 answer = timetable.time_table_chuselnuk_none[message.text]
  99.                 log(message, answer)
  100.                 bot.send_message(message.chat.id, timetable.time_table_chuselnuk_none[message.text])
  101.         elif users[str(message.from_user.id)]['group'] == 'підгрупа_1':
  102.             if message.text in timetable.time_table_chuselnuk_group_1:
  103.                 answer = timetable.time_table_chuselnuk_group_1[message.text]
  104.                 log(message, answer)
  105.                 bot.send_message(message.chat.id, timetable.time_table_chuselnuk_group_1[message.text])
  106.         elif users[str(message.from_user.id)]['group'] == 'підгрупа_2':
  107.             if message.text in timetable.time_table_chuselnuk_group_2:
  108.                 answer = timetable.time_table_chuselnuk_group_2[message.text]
  109.                 log(message, answer)
  110.                 bot.send_message(message.chat.id, timetable.time_table_chuselnuk_group_2[message.text])
  111.  
  112.     if week_number % 2 == 1:
  113.         # знаменник
  114.         if users[str(message.from_user.id)]['group'] == 'none':
  115.             if message.text in timetable.time_table_znamennuk_none:
  116.                 answer = timetable.time_table_znamennuk_none[message.text]
  117.                 log(message, answer)
  118.                 bot.send_message(message.chat.id, timetable.time_table_znamennuk_none[message.text])
  119.         elif users[str(message.from_user.id)]['group'] == 'підгрупа_1':
  120.             if message.text in timetable.time_table_znamennuk_group_1:
  121.                 answer = timetable.time_table_znamennuk_group_1[message.text]
  122.                 log(message, answer)
  123.                 bot.send_message(message.chat.id, timetable.time_table_znamennuk_group_1[message.text])
  124.         elif users[str(message.from_user.id)]['group'] == 'підгрупа_2':
  125.             if message.text in timetable.time_table_znamennuk_group_2:
  126.                 answer = timetable.time_table_znamennuk_group_2[message.text]
  127.                 log(message, answer)
  128.                 bot.send_message(message.chat.id, timetable.time_table_znamennuk_group_2[message.text])
  129.  
  130.  
  131.     print(users)
  132.  
  133. bot.polling(none_stop=True, interval=0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement