mirror of
https://github.com/catspace-dev/unicheckbot.git
synced 2024-11-25 07:13:44 +03:00
save command logs to database
This commit is contained in:
parent
36d8020dd2
commit
6475271234
|
@ -14,6 +14,7 @@ aioinflux = "^0.9.0"
|
||||||
loguru = "^0.5.3"
|
loguru = "^0.5.3"
|
||||||
whois-vu = "^0.3.0"
|
whois-vu = "^0.3.0"
|
||||||
tortoise-orm = "^0.16.20"
|
tortoise-orm = "^0.16.20"
|
||||||
|
aiomysql = "^0.0.21"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ async def database_init():
|
||||||
await Tortoise.init(
|
await Tortoise.init(
|
||||||
db_url=db_url,
|
db_url=db_url,
|
||||||
modules={
|
modules={
|
||||||
'default': ['tgbot.models']
|
'models': ['tgbot.models']
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
await Tortoise.generate_schemas()
|
await Tortoise.generate_schemas()
|
||||||
|
@ -30,9 +30,9 @@ async def database_init():
|
||||||
async def on_startup(disp: Dispatcher):
|
async def on_startup(disp: Dispatcher):
|
||||||
await database_init()
|
await database_init()
|
||||||
handlers.default.setup(disp)
|
handlers.default.setup(disp)
|
||||||
|
disp.middleware.setup(ThrottlingMiddleware())
|
||||||
disp.middleware.setup(WriteCommandMetric())
|
disp.middleware.setup(WriteCommandMetric())
|
||||||
disp.middleware.setup(LoggingMiddleware())
|
disp.middleware.setup(LoggingMiddleware())
|
||||||
disp.middleware.setup(ThrottlingMiddleware())
|
|
||||||
disp.middleware.setup(UserMiddleware())
|
disp.middleware.setup(UserMiddleware())
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from aiogram.dispatcher.middlewares import BaseMiddleware
|
from aiogram.dispatcher.middlewares import BaseMiddleware
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
from tgbot.handlers.metrics import push_metric
|
from tgbot.handlers.metrics import push_metric
|
||||||
|
from tgbot.models import User, UserCheckRequests
|
||||||
|
|
||||||
|
|
||||||
class WriteCommandMetric(BaseMiddleware):
|
class WriteCommandMetric(BaseMiddleware):
|
||||||
|
@ -9,6 +10,11 @@ class WriteCommandMetric(BaseMiddleware):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
async def on_process_message(self, message: Message, data: dict):
|
async def on_process_message(self, message: Message, data: dict):
|
||||||
|
# commands to DB
|
||||||
|
user, _ = await User.get_or_create(telegram_id=message.from_user.id)
|
||||||
|
await UserCheckRequests.create(user=user, request=message.text)
|
||||||
|
|
||||||
|
# metrics to influxdb
|
||||||
await push_metric(
|
await push_metric(
|
||||||
measurement="bot_processed_messages",
|
measurement="bot_processed_messages",
|
||||||
fields=dict(
|
fields=dict(
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
from .user import *
|
from .user import *
|
||||||
|
from .requests import *
|
||||||
|
|
||||||
|
|
7
apps/tgbot/tgbot/models/requests.py
Normal file
7
apps/tgbot/tgbot/models/requests.py
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
from tortoise import Model, fields
|
||||||
|
|
||||||
|
|
||||||
|
class UserCheckRequests(Model):
|
||||||
|
id = fields.IntField(pk=True)
|
||||||
|
user = fields.ForeignKeyField('models.User', related_name='requests')
|
||||||
|
request = fields.CharField(max_length=255)
|
|
@ -5,4 +5,3 @@ class User(Model):
|
||||||
telegram_id = fields.IntField(pk=True)
|
telegram_id = fields.IntField(pk=True)
|
||||||
created_at = fields.DatetimeField(auto_now_add=True)
|
created_at = fields.DatetimeField(auto_now_add=True)
|
||||||
updated_at = fields.DatetimeField(auto_now=True)
|
updated_at = fields.DatetimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user