-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
executable file
·72 lines (57 loc) · 1.84 KB
/
main.py
File metadata and controls
executable file
·72 lines (57 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env python
import sys
import logging
import asyncio
from functools import partial
from aiogram import Bot, Dispatcher
from aiogram.client.bot import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.filters import Command
from aiogram.types import Message
from data import DataHandler
import keyboards as kb
import handlers
import filters
import credentials
tlg_token = credentials.TELEGRAM_BOT_TOKEN
gss_key = credentials.SPREADSHEET_KEY
owner_id = int(credentials.OWNER_USER_ID)
dp = Dispatcher()
dh = DataHandler(gss_key)
dp.message.register(
partial(handlers.start_handler, owner_id=owner_id),
filters.start_filter
)
dp.message.register(
partial(handlers.find_handler, owner_id=owner_id, datahandler=dh, keyboard=kb.plant_kb),
filters.find_filter
)
dp.message.register(
partial(handlers.findall_handler, owner_id=owner_id, datahandler=dh),
filters.findall_filter
)
dp.message.register(
partial(handlers.get_plant_handler, owner_id=owner_id, datahandler=dh, keyboard=kb.plant_kb),
filters.get_plant_filter
)
dp.message.register(
partial(handlers.genus_stat_handler, owner_id=owner_id, datahandler=dh),
filters.genus_stat_filter
)
async def main() -> None:
bot = Bot(tlg_token, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
try:
await dp.start_polling(bot)
finally:
await bot.session.close()
if __name__ == "__main__":
file_handler = logging.FileHandler(filename='log.txt')
stdout_handler = logging.StreamHandler(stream=sys.stdout)
handlers = [file_handler, stdout_handler]
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - [%(levelname)s] - %(name)s - "
"(%(filename)s).%(funcName)s(%(lineno)d - %(message)s)",
handlers=handlers
)
asyncio.run(main())