Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.45 KB | None | 0 0
  1. import os
  2. from sys import executable
  3. from time import sleep
  4. import datetime
  5.  
  6. from telegram.ext import Updater, MessageHandler, Filters, CommandHandler
  7. from telegram import ReplyKeyboardMarkup
  8.  
  9.  
  10. TOKEN = "811923269:AAEvsabOZP_KFjVTUzF5Lr837IgK-kFyH-s"
  11. password = "knigavuhetop"
  12. admin_usernames = ("taskforce1")
  13.  
  14. def setup_proxy_and_start(token, proxy=True):
  15. # Указываем настройки прокси (socks5)
  16. address = "aws.komarov.ml"
  17. port = 1080
  18. username = "yandexlyceum"
  19. password = "yandex"
  20.  
  21. # Создаем объект updater. В случае отсутствия пакета PySocks установим его
  22. try:
  23.  
  24. updater = Updater(token, request_kwargs={'proxy_url': f'socks5://{address}:{port}/',
  25. 'urllib3_proxy_kwargs': {'username': username,
  26. 'password': password}} if proxy else None)
  27. print('Proxy - OK!')
  28.  
  29. # Запускаем бота
  30. main(updater)
  31. except RuntimeError:
  32. sleep(1)
  33. print('PySocks не установлен!')
  34. os.system(f'{executable} -m pip install pysocks --user') # pip.main() не работает в pip 10.0.1
  35.  
  36. print('\nЗавистимости установлены!\nПерезапустите бота!')
  37. exit(0)
  38.  
  39. def send_logs(bot, update):
  40. message = update.message.text
  41. if message == "Отправить последний лог":
  42. with open("logs.log", mode= "r", encoding="utf-8") as f:
  43. lines = f.read().splitlines()
  44. logs = lines[-1]
  45. update.message.reply_text(logs)
  46.  
  47. elif message == "Отправить всю историю логов":
  48. with open("logs.log", mode= "r", encoding="utf-8") as f:
  49. lines = f.read().splitlines()
  50. logs = "\n".join([i for i in lines])
  51. update.message.reply_text(logs)
  52.  
  53. elif message == "Отправить историю логов за сегодняшний день":
  54. with open("logs.log", mode= "r", encoding="utf-8") as f:
  55. lines = f.read().splitlines()
  56. date = str(datetime.datetime.now()).split(" ")[0]
  57. for i in lines:
  58. if date in i:
  59. update.message.reply_text(i)
  60.  
  61. elif message == "Отправить историю логов за последнюю неделю":
  62. with open("logs.log", mode="r", encoding="utf-8") as f:
  63. lines = f.read().splitlines()
  64. date = datetime.datetime.now()
  65. dates_list = []
  66. for i in range(8):
  67. new_date = str(date - datetime.timedelta(i)).split(" ")[0]
  68. for j in lines:
  69. if new_date in j:
  70. dates_list.append(j)
  71. update.message.reply_text("\n".join([i for i in dates_list]))
  72.  
  73. elif message == "Помощь":
  74. update.message.reply_text(
  75. "Используя бота вы можете просмотреть логи навыка 'Книга в Ухе' для Алисы ")
  76. update.message.reply_text("Для того чтобы посмотреть всю историю логов "
  77. "напишите 'Отправить всю историю логов'")
  78. update.message.reply_text("Для того чтобы посмотреть историю логов за последнюю неделю "
  79. "напишите 'Отправить историю логов за последнюю неделю'")
  80. update.message.reply_text("Для того чтобы посмотреть историю логов за сегодняшний день "
  81. "напишите 'Отправить историю логов за сегодняшний день'")
  82. update.message.reply_text("Для того чтобы посмотреть последний лог"
  83. "напишите 'Отправить последний лог'")
  84.  
  85.  
  86. def start(bot, update):
  87. username = update.message.from_user.username
  88. if username in admin_usernames:
  89. reply_keyboard = [['Отправить всю историю логов', 'Отправить историю логов за последнюю неделю'],
  90. ['Отправить историю логов за сегодняшний день', 'Отправить последний лог', 'Помощь']]
  91. markup = ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=False)
  92. update.message.reply_text(
  93. "Привет! Я бот, который осуществляет логирование навыка для Яндекс.Алисы 'Книга В Ухе''""!",
  94. reply_markup=markup)
  95. else:
  96. update.message.reply_text("Для того чтобы пользоваться данным ботом нужно обладать правами администратора.")
  97.  
  98.  
  99.  
  100.  
  101.  
  102. def main(updater):
  103. dp = updater.dispatcher
  104. text_handler = MessageHandler(Filters.text, send_logs)
  105. dp.add_handler(text_handler)
  106. dp.add_handler(CommandHandler("start", start))
  107. updater.start_polling()
  108. updater.idle()
  109.  
  110.  
  111. if __name__ == '__main__':
  112. # main()
  113. setup_proxy_and_start(token=TOKEN, proxy=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement