From e95551a7954f92b35a8a38217abdb3e5ff9e7d90 Mon Sep 17 00:00:00 2001 From: hok7z Date: Fri, 25 Nov 2022 23:31:49 +0200 Subject: [PATCH] Check if database is empty and remind user --- app.py | 17 +++++++++++++---- database.py | 12 +++++++++--- filters/avaible_roles.py | 5 ++--- utils/notify_start.py | 2 +- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app.py b/app.py index 6c12fce..65a10f1 100755 --- a/app.py +++ b/app.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 import logging from aiogram import executor -from database import build - +# from database import build +from database import db, Member, Restriction from load import dp, bot import filters @@ -24,6 +24,16 @@ WEBHOOK_PATH = f'/bot{config.token}/' WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}" async def on_startup(dp): + 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") + from utils.notify_start import notify_started_bot await notify_started_bot(bot) @@ -43,8 +53,7 @@ async def on_shutdown(dp): await dp.storage.wait_closed() def main() -> None: - build() - + if config.USE_WEBHOOK: executor.start_webhook( dispatcher=dp, diff --git a/database.py b/database.py index 627e825..69e1b7f 100644 --- a/database.py +++ b/database.py @@ -61,7 +61,6 @@ class Member(Model): database = db class Restriction(Model): - # TODO: not forget rename all operation to action action = CharField() from_user = ForeignKeyField(Member, lazy_load=True) @@ -83,5 +82,12 @@ class Restriction(Model): db_table = "auditlog" database = db -def build() -> None: - db.create_tables([Member,Restriction]) +# if not db.get_columns('members'): +# db.create_tables([Member,Restriction]) +# logging.warning("Members table is empty, you need get data(run !reload)") +# +# if Member.select().count() == 0: +# logging.warning("Members table is empty, you need get data(run !reload)") + +# def build() -> None: +# db.create_tables([Member,Restriction]) diff --git a/filters/avaible_roles.py b/filters/avaible_roles.py index b2ad3be..a8fcb25 100644 --- a/filters/avaible_roles.py +++ b/filters/avaible_roles.py @@ -15,9 +15,8 @@ class AvaibleRolesFilter(BoundFilter): member = Member.search(Member.user_id,message.from_user.id) if (member is None): - return False - - # member = database.search_single_member(Member.user_id,message.from_user.id) + await message.answer("Something wrong: user not found in database(u should run !reload)") + return if (member.role == "owner"): return True diff --git a/utils/notify_start.py b/utils/notify_start.py index 1e03ff9..e26d4ea 100644 --- a/utils/notify_start.py +++ b/utils/notify_start.py @@ -1,4 +1,4 @@ import config async def notify_started_bot(bot): - await bot.send_message(config.second_group_id,"Bot started!") + await bot.send_message(config.second_group_id,"Bot successfully launched!")