diff --git a/handlers/admin_commands.py b/handlers/admin_commands.py index b59fdb9..e2b219d 100644 --- a/handlers/admin_commands.py +++ b/handlers/admin_commands.py @@ -3,11 +3,13 @@ from uuid import uuid4 from aiogram import Bot, F, Router, types from aiogram.filters import Command +from aiogram.fsm.context import FSMContext from aiogram.utils.media_group import MediaGroupBuilder from sqlalchemy.orm import Session from db.data import Admin, Image, Post, User, engine -from handlers.filters.new_post import NewPostFilter, NewSoloPostFilter +from handlers.filters.new_post import (ChangePosts, NewPostFilter, + NewSoloPostFilter) from handlers.middlewares.user import AdminMiddleware @@ -47,6 +49,15 @@ class Admin_commands: for post in posts: post_c[str(post.from_user_id)] +=1 await message.answer(str(post_c)) + + @self.router.message(ChangePosts()) + async def change_post(message: types.Message, state: FSMContext): + with Session(engine) as session: + posts = session.query(Post).filter(Post.posted == False).order_by(Post.timestamp.asc()).all() + #TODO: Изменение поста + # await state.update_data(posts=posts, ) + + @self.router.message(Command('post')) async def post(message: types.Message): diff --git a/handlers/filters/new_post.py b/handlers/filters/new_post.py index 34770ec..295b2b2 100644 --- a/handlers/filters/new_post.py +++ b/handlers/filters/new_post.py @@ -34,3 +34,7 @@ class NewPostFilter(Filter): class NewSoloPostFilter(Filter): async def __call__(self, message: types.Message) -> bool: return message.media_group_id is None and message.content_type == 'photo' and message.caption.startswith('/newpost ') + +class ChangePosts(Filter): + async def __call__(self, message: types.Message) -> bool: + return message.text.startswith("/change") and message.chat.type == 'private' \ No newline at end of file diff --git a/handlers/states/change_post.py b/handlers/states/change_post.py new file mode 100644 index 0000000..ffe0e91 --- /dev/null +++ b/handlers/states/change_post.py @@ -0,0 +1 @@ +from aiogram.fsm.state import State, StatesGroup