2022-08-07 04:45:35 -04:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
import logging
|
|
|
|
from aiogram import executor
|
2022-11-25 16:31:49 -05:00
|
|
|
from database import db, Member, Restriction
|
2022-08-07 04:45:35 -04:00
|
|
|
|
|
|
|
from load import dp, bot
|
2022-08-16 06:28:08 -04:00
|
|
|
import filters
|
|
|
|
|
|
|
|
dp.filters_factory.bind(filters.AvaibleRolesFilter)
|
|
|
|
dp.filters_factory.bind(filters.ReplayMessageFilter)
|
|
|
|
|
2022-08-07 04:45:35 -04:00
|
|
|
import handlers
|
|
|
|
import config
|
|
|
|
|
|
|
|
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
|
|
|
|
|
|
|
|
WEBAPP_HOST = '127.0.0.1'
|
|
|
|
WEBAPP_PORT = 3001
|
|
|
|
|
|
|
|
# Don`t touch anything!
|
|
|
|
WEBHOOK_HOST = f'http://{WEBAPP_HOST}:{WEBAPP_PORT}'
|
|
|
|
WEBHOOK_PATH = f'/bot{config.token}/'
|
|
|
|
WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}"
|
|
|
|
|
|
|
|
async def on_startup(dp):
|
2022-11-25 16:31:49 -05:00
|
|
|
if not db.get_columns('members'):
|
|
|
|
db.create_tables([Member,Restriction])
|
|
|
|
logging.warning("Member table is empty")
|
|
|
|
await bot.send_message(config.second_group_id,"First launch successful!")
|
|
|
|
await bot.send_message(config.second_group_id,"Member table is empty, run: `!reload`",parse_mode="Markdown")
|
|
|
|
|
|
|
|
elif Member.select().count() == 0:
|
|
|
|
await bot.send_message(config.second_group_id,"Member table is empty, run `!reload`",parse_mode="Markdown")
|
|
|
|
logging.warning("Member table is empty")
|
|
|
|
|
2022-08-07 04:45:35 -04:00
|
|
|
from utils.notify_start import notify_started_bot
|
|
|
|
await notify_started_bot(bot)
|
|
|
|
|
|
|
|
from utils.default_commands import set_default_commands
|
|
|
|
await set_default_commands(dp)
|
2022-08-13 08:25:52 -04:00
|
|
|
|
|
|
|
from load import tgc
|
|
|
|
await tgc.client.start()
|
2022-08-07 04:45:35 -04:00
|
|
|
|
|
|
|
await bot.set_webhook(WEBHOOK_URL)
|
|
|
|
|
|
|
|
async def on_shutdown(dp):
|
|
|
|
await bot.delete_webhook()
|
|
|
|
|
|
|
|
# Close Redis connection.
|
|
|
|
await dp.storage.close()
|
|
|
|
await dp.storage.wait_closed()
|
|
|
|
|
|
|
|
def main() -> None:
|
2022-11-25 16:31:49 -05:00
|
|
|
|
2022-11-06 03:48:10 -05:00
|
|
|
if config.USE_WEBHOOK:
|
2022-08-07 04:45:35 -04:00
|
|
|
executor.start_webhook(
|
|
|
|
dispatcher=dp,
|
|
|
|
webhook_path=WEBHOOK_PATH,
|
|
|
|
on_startup=on_startup,
|
|
|
|
on_shutdown=on_shutdown,
|
|
|
|
skip_updates=True,
|
|
|
|
host=WEBAPP_HOST,
|
|
|
|
port=WEBAPP_PORT,
|
|
|
|
)
|
|
|
|
|
|
|
|
else:
|
|
|
|
executor.start_polling(dp,skip_updates=True)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|