Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os # from psycopg2
- import requests
- import smtplibaio
- import telebot
- import pyowm
- from telebot.types import Message
- from random import randint
- import smtplib
- from email.mime.text import MIMEText
- from email.mime.multipart import MIMEMultipart
- import psycopg2
- stroka=''
- token = "990483237:AAHV_NWo_rl3dhuM0HgXpzLDQQZ-7p_dZm8"
- bot = telebot.TeleBot(token)
- '''main_url = f'https://api.telegram.org/bot{token}'
- answer = { #
- 'chat_id':287656148, # Данные, которы мы хотим отправить, chat_id - id нашего пользователя, берем из test_json
- 'text': 'Wake up, Neo' #
- } #
- test = requests.get(f'{main_url}/getMe') #основная информация
- test1 = requests.get(f'{main_url}/getUpdates') #получаение обновлений с последнего запроса
- #test2 = requests.get(f'{main_url}/sendMessage', data=answer) # отправка данных
- #print(test2.json())
- '''
- def __init__(self):
- self.conn = psycopg2.connect(dbname=os.getenv('Dvfu_schedule_bot'), user=os.getenv('Dvfu_schedule_bot'),
- password = os.getenv('d_O5K4uRJGJEibpP1DyT5BOD2U2JI7x-'),
- host=os.getenv('postgres://usqtsycy:d_O5K4uRJGJEibpP1DyT5BOD2U2JI7x-@rajje.db.elephantsql.com:5432/usqtsycy'))
- self.cur = self.conn.cursor()
- @bot.message_handler(commands=['start','help'])
- def command_handler(message: Message):
- bot.reply_to(message, 'Poka chto nichego netu =(')
- @bot.message_handler(commands=['weather'])
- def weather_1(message: Message):
- owm = pyowm.OWM('1586c818dc67d8e6a6f3db038ae3cbae')
- weather = owm.weather_at_place('Владивосток')
- w = weather.get_weather()
- desc = w.get_detailed_status()
- temperature = w.get_temperature('celsius')['temp']
- hum = w.get_humidity()
- wind = w.get_wind()['speed']
- clearSky = u'\U00002600'
- rain = u'\U00002614'
- bot.send_message(message.chat.id, 'Сейчас во Владивостоке: ' + str(desc) + clearSky +'\n' +
- 'температура: ' + str(temperature) + ' С' + '\n' + 'влажность: '
- + str(hum) + ' % ' + rain + '\n' + 'скорость ветра: ' + str(wind) + 'м\с.')
- @bot.message_handler(commands=['reg'])
- def send_code_1(message: Message):
- bot.send_message(message.chat.id, 'Введите, пожалуйста, свою электронну почту dvfu')
- @bot.message_handler(func=lambda message: '@gmail.com' in message.text)
- def got_email(message: Message, self):
- record_creation(message.text.strip(), self)
- SendMail('dvfu.schedule@gmail.com', 'Azsuna_power99', message.text.strip())
- bot.send_message(message.chat.id, 'На вашу почту был выслан код подтверждения. Введите его:')
- @bot.message_handler(func=lambda message: message.text.isnumeric() and 1000 <= int(message.text) <= 9999)
- def got_code(self, message):
- self.cur.execute('''SELECT * FROM users WHERE users.mail = %s ''', (stroka,))
- records = self.cur.fetchall()
- bot.send_message(message.chat.id, 'Код принят, вы зарегестрированы!')
- '''
- host_mail - адрес на основе которого создастся SMTP сервер,
- также с этого же адреса и будет отправлено сообщение
- host_password - пароль к host аккаунту
- receiver - адрес получателя
- content - содержимое сообщения
- '''
- def SendMail(host_mail, host_password, receiver):
- message = randint(1000,9999)
- code_assignment(receiver, message)
- message = message.as_string()
- server = smtplib.SMTP('smtp.gmail.com', 587)
- server.starttls()
- server.login(host_mail, host_password)
- server.sendmail(host_mail, receiver, message)
- server.quit()
- def record_creation(mail, self): # создание нового пользователя в БД
- self.cursor.execute('''INSERT INTO users (mail, status) VALUES (mail = %s, 0)''', (mail,))
- self.conn.commit()
- def code_assignment(self, mail, code): # присвоение кода безопасности к почте пользователя
- self.cur.execute('''SELECT * FROM users WHERE users.mail = %s
- INSERT INTO users (confirmation_code) VALUES (code = %s)''', (mail, code,))
- self.cur.fetchall()
- '''
- @bot.message_handler(content_types=['text']) # реагирует только на текст
- def echo_digits(message: Message): #
- if "Привет" or "Hello" in message.text: # если в тексте найдено слово, выводит ответ
- bot.reply_to(message, 'Hello') #
- return #
- bot.reply_to(message, str(random.random()))# рандомное число от 0 до 1
- '''
- print('Bot has started')
- bot.polling() # задержка 4 сек.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement