· 5 years ago · Jul 07, 2020, 07:10 PM
1import logging
2
3from aiogram import Bot, Dispatcher, executor, types
4
5from pyowm import OWM
6
7import sqlite3
8
9from config import *
10
11# ------------------------- ІНІЦІАЛІЗАЦІЯ -------------------------
12# ------------------------- LOGGING
13logging.basicConfig(level=logging.DEBUG)
14# ------------------------- AIOGRAM
15bot = Bot(token=TelegramToken)
16dp = Dispatcher(bot)
17
18# ------------------------- PYOWM
19owm = OWM(OpenWeatherMapToken)
20mgr = owm.weather_manager()
21observation = mgr.weather_at_place("Львів")
22w = observation.weather
23
24# ------------------------- SQLITE3
25DataBase = sqlite3.connect("DataBase.db")
26
27Cursor = DataBase.cursor()
28
29Cursor.executescript("""CREATE TABLE IF NOT EXISTS Users(Id TEXT, Notification BOOLEAN);
30CREATE TABLE IF NOT EXISTS Weather(Weather TEXT, MinTemp REAL, Temp REAL, MaxTemp REAL);""")
31
32DataBase.commit()
33
34
35# ------------------------- ФУНКЦІЇ -------------------------
36def Weather():
37 Weather = "Weather"
38 MinTemp = w.temperature("celsius")["temp_min"]
39 Temp = w.temperature("celsius")["temp"]
40 MaxTemp = w.temperature("celsius")["temp_max"]
41
42 Cursor.execute("DELETE FROM Weather")
43 DataBase.commit()
44
45 Cursor.execute(f"SELECT Weather FROM Weather")
46 if Cursor.fetchone() is None:
47 Cursor.execute(f"INSERT INTO Weather VALUES(?, ?, ?, ?)", (Weather, MinTemp, Temp, MaxTemp))
48 DataBase.commit()
49
50
51Weather()
52
53
54# ------------------------- БОТ -------------------------
55@dp.message_handler(commands=["start"])
56async def send_welcome(message: types.Message):
57 await bot.send_message(message.from_user.id, """Вітаю.
58Я допоможу Вам спостерігати за погодою у м.Львів.
59Я завжди повідомлю Вас про зміну погоди.
60
61Щоб дізнатися список команд, введіть: /help""")
62 Cursor.execute(f"SELECT Id FROM Users WHERE Id = {message.from_user.id}")
63 if Cursor.fetchone() is None:
64 Cursor.execute(f"INSERT INTO Users VALUES({message.from_user.id}, {True})")
65 DataBase.commit()
66 await bot.send_message(message.from_user.id, "Успішно! Ваш аккаунт зареєстровано")
67
68
69@dp.message_handler(commands=["help"])
70async def send_welcome(message: types.Message):
71 await bot.send_message(message.from_user.id, """Команди:
72/start - Реєстрація
73/help - Список команд
74/weather - Погода (На даний момент)""")
75
76
77@dp.message_handler(commands=["weather"])
78async def send_welcome(message: types.Message):
79 await bot.send_message(message.from_user.id, f"""Погода (На даний момент):
80*""")
81
82
83if __name__ == '__main__':
84 executor.start_polling(dp, skip_updates=True)