Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import configparser
- import json
- from typing import Union
- import asyncio
- from aiogram import (Router, Bot, Dispatcher,
- F, types)
- import logging
- from database import Messagesx
- router = Router(name=__name__)
- logger = logging.getLogger(__name__)
- logging.basicConfig(level=logging.INFO)
- config = configparser.ConfigParser()
- config.read("config.ini")
- TOKEN = config["main"]["bot_token"]
- USER_ID = config["main"]["user"]
- async def send_msg(message_old: str, message_new: Union[str, None], user_fullname: str, user_id: int, bot: Bot = None):
- if message_new is None:
- msg = (f' <b>Пользователь {user_fullname} ({user_id})</b>\n'
- f' <b>Сообщение удалено:</b>\n'
- f' Сообщение:\n<code>{message_old}</code>\n')
- else:
- msg = (f' <b>Пользователь {user_fullname} ({user_id})</b>\n'
- f' <b>Сообщение изменено:</b>\n'
- f' Старое сообщение:\n<code>{message_old}</code>\n'
- f' Новое сообщение:\n<code>{message_new}</code>')
- await bot.send_message(USER_ID, msg, parse_mode='html')
- @router.edited_business_message()
- async def edited_business_message(message: types.Message):
- if message.from_user.id == message.chat.id:
- user_msg = Messagesx.get(user_id=message.from_user.id)
- data = {message.message_id: message.text}
- if user_msg is None:
- Messagesx.add(user_id=message.from_user.id, message_history=json.dumps(data))
- else:
- msg_history = json.loads(user_msg.message_history)
- if str(message.message_id) in msg_history:
- await send_msg(message_old=msg_history[str(message.message_id)], message_new=message.text,
- user_fullname=message.from_user.full_name, user_id=message.chat.id, bot=message.bot)
- data = {**msg_history, **data}
- Messagesx.update(user_id=message.from_user.id, message_history=json.dumps(data))
- @router.deleted_business_messages()
- async def deleted_business_messages(message: types.Message):
- user_msg = Messagesx.get(user_id=message.chat.id)
- if user_msg is not None:
- msg_history = json.loads(user_msg.message_history)
- for msg_id in message.message_ids:
- if str(msg_id) in msg_history:
- await send_msg(message_old=msg_history[str(msg_id)], message_new=None,
- user_fullname=message.chat.full_name, user_id=message.chat.id, bot=message.bot)
- msg_history.pop(str(msg_id))
- Messagesx.update(user_id=message.chat.id, message_history=json.dumps(msg_history))
- @router.business_message(F.text)
- async def business_message(message: types.Message):
- if message.from_user.id == message.chat.id:
- user_msg = Messagesx.get(user_id=message.from_user.id)
- data = {message.message_id: message.text}
- if user_msg is None:
- Messagesx.add(user_id=message.from_user.id, message_history=json.dumps(data))
- else:
- msg_history = json.loads(user_msg.message_history)
- data = {**msg_history, **data}
- Messagesx.update(user_id=message.from_user.id, message_history=json.dumps(data))
- async def main() -> None:
- Messagesx.create_db()
- bot = Bot(token=TOKEN)
- dp = Dispatcher()
- dp.include_router(router)
- await bot.delete_webhook(drop_pending_updates=True)
- await dp.start_polling(bot)
- asyncio.run(main())
Advertisement
Add Comment
Please, Sign In to add comment