Advertisement
JustCheburek

Untitled

Feb 19th, 2022
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.09 KB | None | 0 0
  1. from telegram import Update, Bot, InlineKeyboardButton, InlineKeyboardMarkup
  2. from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler
  3. from config import bot_token
  4.  
  5. bot = Bot(token=bot_token)
  6. updater = Updater(token=bot_token, use_context=True)
  7. dispatcher = updater.dispatcher
  8.  
  9.  
  10. def start(update, context):
  11. context.bot.send_message(update.effective_chat.id, "Это бот для расписания! Ничего не забывай! /help, чтобы узнать команды")
  12.  
  13. def help_(update, context):
  14. context.bot.send_message(update.effective_chat.id, '''
  15. Доступные команды:
  16. /start - приветное сообщение
  17. /help - показывает доступные команды
  18. УРОКИ
  19. /getday - показывает рассписание дня
  20. /getsubj - показывает подсказки по урокам
  21. СТЕНА
  22. /writewall (сообщение) - написать
  23. /showwall - показывает стену
  24. ЛИЧНЫЕ ЗАМЕТКИ
  25. /addzametka - добавляет вашу заметку
  26. /showzametka (заметка) - показывает ваши заметки
  27. ''')
  28.  
  29. def get_info_from_file(name_file, encoding_='utf-8'):
  30. name_file = f'for_telegram_bot3/{name_file}'
  31. f = open(name_file, "r", encoding=encoding_)
  32. data = f.read()
  33. f.close()
  34. return data
  35.  
  36. def get_day(update, context):
  37. keyboard = [
  38. [InlineKeyboardButton("Понедельник", callback_data='mon')],
  39. [InlineKeyboardButton("Вторник", callback_data='tue')],
  40. [InlineKeyboardButton("Среда", callback_data='wed')],
  41. [InlineKeyboardButton("Четверг", callback_data='thu')],
  42. [InlineKeyboardButton("Пятница", callback_data='fri')],
  43. [InlineKeyboardButton("Суббота", callback_data='sat')],
  44. [InlineKeyboardButton("ВОСКРЕСЕНЬЕ!", callback_data='sun')]
  45. ]
  46. update.message.reply_text('Выбери день недели', reply_markup=InlineKeyboardMarkup(keyboard))
  47.  
  48. def button(update, context):
  49. query = update.callback_query
  50. query.answer()
  51. if query.data in week or query.data in uroki:
  52. context.bot.send_message(update.effective_chat.id, get_info_from_file(str(query.data) + '.txt'))
  53. else:
  54. context.bot.send_message(update.effective_chat.id, "Произошла ошибка")
  55.  
  56. def get_subj(update, context):
  57. keyboard = [
  58. [InlineKeyboardButton("Математика", callback_data='math'),
  59. InlineKeyboardButton("Русский язык", callback_data='rus')],
  60. [InlineKeyboardButton("Литература", callback_data='lit'),
  61. InlineKeyboardButton("Английский язык", callback_data='eng')]
  62. ]
  63. update.message.reply_text('Выбери предмет', reply_markup=InlineKeyboardMarkup(keyboard))
  64.  
  65. def show_wall(update, context):
  66. context.bot.send_message(update.effective_chat.id, get_info_from_file('wall.txt', encoding_=None))
  67.  
  68. def write_to_wall(update, context):
  69. wall = open('for_telegram_bot3/wall.txt', 'a')
  70.  
  71. result = ''
  72. for arg in context.args:
  73. result += arg + ' '
  74.  
  75. if len(result) > 0:
  76. wall.write(str(update.message.from_user['username']) + ": " + result + '\n') # имя: сообщение
  77. wall.close()
  78. context.bot.send_message(update.effective_chat.id, 'Успешно!')
  79. else:
  80. context.bot.send_message(update.effective_chat.id, 'Нельзя отправить пустое сообщение!')
  81.  
  82. def add_zametka(update, context):
  83. zametka = open(f'for_telegram_bot3/{update.message.from_user["username"]}.txt', 'a')
  84.  
  85. result = ''
  86. for arg in context.args:
  87. result += arg + ' '
  88.  
  89. if len(result) > 0:
  90. zametka.write(str(result + '\n')) # заметка
  91. zametka.close()
  92. context.bot.send_message(update.effective_chat.id, 'Успешно!')
  93. else:
  94. context.bot.send_message(update.effective_chat.id, 'Нельзя добавить в заметку пустое сообщение!')
  95.  
  96. def show_zametka(update, context):
  97. name = str(update.message.from_user["username"])
  98. context.bot.send_message(update.effective_chat.id, f'''
  99. Все ваши заметки на ник {name}:
  100. {get_info_from_file(name+'.txt', encoding_=None)}''')
  101.  
  102.  
  103. week = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
  104. uroki = ["math", "rus", "lit", "eng"]
  105.  
  106. dispatcher.add_handler(
  107. CommandHandler('start', start)
  108. )
  109. dispatcher.add_handler(
  110. CommandHandler('help', help_)
  111. )
  112. dispatcher.add_handler(
  113. CommandHandler('getday', get_day)
  114. )
  115. dispatcher.add_handler(
  116. CommandHandler('getsubj', get_subj)
  117. )
  118. dispatcher.add_handler(
  119. CallbackQueryHandler(button)
  120. )
  121. dispatcher.add_handler(
  122. CommandHandler('writewall', write_to_wall)
  123. )
  124. dispatcher.add_handler(
  125. CommandHandler('showwall', show_wall)
  126. )
  127. dispatcher.add_handler(
  128. CommandHandler('addzametka', add_zametka)
  129. )
  130. dispatcher.add_handler(
  131. CommandHandler('showzametka', show_zametka)
  132. )
  133.  
  134. updater.start_polling()
  135. updater.idle()
  136.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement