Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | None | 0 0
  1. import os # from psycopg2
  2. import requests
  3. import smtplibaio
  4. import telebot
  5. import pyowm
  6. from telebot.types import Message
  7. from random import randint
  8. import smtplib
  9. from email.mime.text import MIMEText
  10. from email.mime.multipart import MIMEMultipart
  11. import psycopg2
  12.  
  13. stroka=''
  14.  
  15. token = "990483237:AAHV_NWo_rl3dhuM0HgXpzLDQQZ-7p_dZm8"
  16. bot = telebot.TeleBot(token)
  17. '''main_url = f'https://api.telegram.org/bot{token}'
  18.  
  19. answer = { #
  20. 'chat_id':287656148, # Данные, которы мы хотим отправить, chat_id - id нашего пользователя, берем из test_json
  21. 'text': 'Wake up, Neo' #
  22. } #
  23.  
  24. test = requests.get(f'{main_url}/getMe') #основная информация
  25. test1 = requests.get(f'{main_url}/getUpdates') #получаение обновлений с последнего запроса
  26. #test2 = requests.get(f'{main_url}/sendMessage', data=answer) # отправка данных
  27. #print(test2.json())
  28.  
  29. '''
  30.  
  31. def __init__(self):
  32. self.conn = psycopg2.connect(dbname=os.getenv('Dvfu_schedule_bot'), user=os.getenv('Dvfu_schedule_bot'),
  33. password = os.getenv('d_O5K4uRJGJEibpP1DyT5BOD2U2JI7x-'),
  34. host=os.getenv('postgres://usqtsycy:d_O5K4uRJGJEibpP1DyT5BOD2U2JI7x-@rajje.db.elephantsql.com:5432/usqtsycy'))
  35. self.cur = self.conn.cursor()
  36.  
  37.  
  38. @bot.message_handler(commands=['start','help'])
  39. def command_handler(message: Message):
  40. bot.reply_to(message, 'Poka chto nichego netu =(')
  41.  
  42.  
  43. @bot.message_handler(commands=['weather'])
  44. def weather_1(message: Message):
  45. owm = pyowm.OWM('1586c818dc67d8e6a6f3db038ae3cbae')
  46. weather = owm.weather_at_place('Владивосток')
  47. w = weather.get_weather()
  48. desc = w.get_detailed_status()
  49. temperature = w.get_temperature('celsius')['temp']
  50. hum = w.get_humidity()
  51. wind = w.get_wind()['speed']
  52. clearSky = u'\U00002600'
  53. rain = u'\U00002614'
  54. bot.send_message(message.chat.id, 'Сейчас во Владивостоке: ' + str(desc) + clearSky +'\n' +
  55. 'температура: ' + str(temperature) + ' С' + '\n' + 'влажность: '
  56. + str(hum) + ' % ' + rain + '\n' + 'скорость ветра: ' + str(wind) + 'м\с.')
  57.  
  58.  
  59. @bot.message_handler(commands=['reg'])
  60. def send_code_1(message: Message):
  61. bot.send_message(message.chat.id, 'Введите, пожалуйста, свою электронну почту dvfu')
  62.  
  63.  
  64. @bot.message_handler(func=lambda message: '@gmail.com' in message.text)
  65. def got_email(message: Message, self):
  66. record_creation(message.text.strip(), self)
  67. SendMail('dvfu.schedule@gmail.com', 'Azsuna_power99', message.text.strip())
  68. bot.send_message(message.chat.id, 'На вашу почту был выслан код подтверждения. Введите его:')
  69.  
  70.  
  71. @bot.message_handler(func=lambda message: message.text.isnumeric() and 1000 <= int(message.text) <= 9999)
  72. def got_code(self, message):
  73. self.cur.execute('''SELECT * FROM users WHERE users.mail = %s ''', (stroka,))
  74. records = self.cur.fetchall()
  75. bot.send_message(message.chat.id, 'Код принят, вы зарегестрированы!')
  76.  
  77.  
  78. '''
  79. host_mail - адрес на основе которого создастся SMTP сервер,
  80. также с этого же адреса и будет отправлено сообщение
  81. host_password - пароль к host аккаунту
  82. receiver - адрес получателя
  83. content - содержимое сообщения
  84. '''
  85.  
  86.  
  87. def SendMail(host_mail, host_password, receiver):
  88. message = randint(1000,9999)
  89. code_assignment(receiver, message)
  90. message = message.as_string()
  91. server = smtplib.SMTP('smtp.gmail.com', 587)
  92. server.starttls()
  93. server.login(host_mail, host_password)
  94. server.sendmail(host_mail, receiver, message)
  95. server.quit()
  96.  
  97.  
  98. def record_creation(mail, self): # создание нового пользователя в БД
  99. self.cursor.execute('''INSERT INTO users (mail, status) VALUES (mail = %s, 0)''', (mail,))
  100. self.conn.commit()
  101.  
  102.  
  103. def code_assignment(self, mail, code): # присвоение кода безопасности к почте пользователя
  104. self.cur.execute('''SELECT * FROM users WHERE users.mail = %s
  105. INSERT INTO users (confirmation_code) VALUES (code = %s)''', (mail, code,))
  106. self.cur.fetchall()
  107.  
  108. '''
  109. @bot.message_handler(content_types=['text']) # реагирует только на текст
  110. def echo_digits(message: Message): #
  111. if "Привет" or "Hello" in message.text: # если в тексте найдено слово, выводит ответ
  112. bot.reply_to(message, 'Hello') #
  113. return #
  114. bot.reply_to(message, str(random.random()))# рандомное число от 0 до 1
  115. '''
  116.  
  117.  
  118. print('Bot has started')
  119. bot.polling() # задержка 4 сек.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement