add answer for user
This commit is contained in:
@@ -5,16 +5,14 @@ from aiogram.filters import Command, StateFilter
|
||||
from aiogram.fsm.context import FSMContext
|
||||
|
||||
from helper_bot.filters.main import ChatTypeFilter
|
||||
from helper_bot.keyboards.main import get_reply_keyboard_admin, create_keyboard_with_pagination, \
|
||||
from helper_bot.keyboards.keyboards import get_reply_keyboard_admin, create_keyboard_with_pagination, \
|
||||
create_keyboard_for_ban_days, create_keyboard_for_approve_ban
|
||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||
from helper_bot.utils.helper_func import check_access, add_days_to_date, get_banned_users_buttons, get_banned_users_list
|
||||
from logs.custom_logger import logger
|
||||
|
||||
|
||||
admin_router = Router()
|
||||
|
||||
|
||||
bdf = BaseDependencyFactory()
|
||||
GROUP_FOR_POST = bdf.settings['Telegram']['group_for_posts']
|
||||
GROUP_FOR_MESSAGE = bdf.settings['Telegram']['group_for_message']
|
||||
|
||||
@@ -4,7 +4,7 @@ from aiogram import Router, F
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from aiogram.types import CallbackQuery
|
||||
|
||||
from helper_bot.keyboards.main import create_keyboard_with_pagination, get_reply_keyboard_admin, \
|
||||
from helper_bot.keyboards.keyboards import create_keyboard_with_pagination, get_reply_keyboard_admin, \
|
||||
create_keyboard_for_ban_reason
|
||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||
from helper_bot.utils.helper_func import send_text_message, send_photo_message, get_banned_users_list, \
|
||||
@@ -35,7 +35,14 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
f'Получен callback-запрос с действием: {call.data} от пользователя {call.from_user.full_name} (ID сообщения: {call.message.message_id})')
|
||||
if call.message.content_type == 'text' and call.message.text != "^":
|
||||
try:
|
||||
# Пересылаем сообщение в канал
|
||||
await send_text_message(MAIN_PUBLIC, call.message, call.message.text)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
# Очищаем предложку и удаляем оттуда пост
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
logger.info(f'Текст сообщения опубликован в канале {MAIN_PUBLIC}.')
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -47,6 +54,12 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
elif call.message.content_type == 'photo':
|
||||
try:
|
||||
await send_photo_message(MAIN_PUBLIC, call.message, call.message.photo[-1].file_id, call.message.caption)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
# Удаляем пост из предложки
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
logger.info(f'Пост с фото опубликован в канале {MAIN_PUBLIC}.')
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -58,6 +71,11 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
elif call.message.content_type == 'video':
|
||||
try:
|
||||
await send_video_message(MAIN_PUBLIC, call.message, call.message.video.file_id, call.message.caption)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
logger.info(f'Пост с видео опубликован в канале {MAIN_PUBLIC}.')
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -69,6 +87,11 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
elif call.message.content_type == 'video_note':
|
||||
try:
|
||||
await send_video_note_message(MAIN_PUBLIC, call.message, call.message.video_note.file_id)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
logger.info(f'Пост с кружком опубликован в канале {MAIN_PUBLIC}.')
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -80,6 +103,11 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
elif call.message.content_type == 'audio':
|
||||
try:
|
||||
await send_audio_message(MAIN_PUBLIC, call.message, call.message.audio.file_id, call.message.caption)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
logger.info(f'Пост с аудио опубликован в канале {MAIN_PUBLIC}.')
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -91,6 +119,11 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
elif call.message.content_type == 'voice':
|
||||
try:
|
||||
await send_voice_message(MAIN_PUBLIC, call.message, call.message.voice.file_id)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
logger.info(f'Пост с войсом опубликован в канале {MAIN_PUBLIC}.')
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -112,6 +145,11 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
# Выкладываем пост в канал
|
||||
await send_media_group_to_channel(bot=call.bot, chat_id=MAIN_PUBLIC, post_content=post_content,
|
||||
post_text=post_text)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_helper_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был выложен🥰')
|
||||
|
||||
# TODO: Удалить фотки с локалки после выкладки?
|
||||
await call.bot.delete_messages(chat_id=GROUP_FOR_POST, message_ids=message_ids)
|
||||
await call.answer(text='Выложено!', show_alert=True, cache_time=3)
|
||||
@@ -124,8 +162,15 @@ async def decline_post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
logger.info(
|
||||
f'Получен callback-запрос с данными: {call.data} от пользователя {call.from_user.full_name} (ID: {call.from_user.id})')
|
||||
try:
|
||||
if call.message.content_type == 'text' and call.message.text != "^" or call.message.content_type == 'photo':
|
||||
if call.message.content_type == 'text' and call.message.text != "^" or call.message.content_type == 'photo' \
|
||||
or call.message.content_type == 'audio' or call.message.content_type == 'voice' \
|
||||
or call.message.content_type == 'video' or call.message.content_type == 'video_note':
|
||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был отклонен😔')
|
||||
|
||||
logger.info(
|
||||
f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).')
|
||||
await call.answer(text='Отклонено!', show_alert=True, cache_time=3)
|
||||
@@ -135,6 +180,11 @@ async def decline_post_for_group(call: CallbackQuery, state: FSMContext):
|
||||
message_ids.append(call.message.message_id)
|
||||
|
||||
await call.bot.delete_messages(chat_id=GROUP_FOR_POST, message_ids=message_ids)
|
||||
|
||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||
author_id = BotDB.get_author_id_by_helper_message_id(call.message.message_id)
|
||||
await send_text_message(author_id, call.message, 'Твой пост был отклонен😔')
|
||||
|
||||
await call.answer(text='Удалено!', show_alert=True, cache_time=3)
|
||||
except Exception as e:
|
||||
await call.bot.send_message(IMPORTANT_LOGS,
|
||||
|
||||
@@ -2,14 +2,13 @@ from aiogram import Router, types
|
||||
from aiogram.fsm.context import FSMContext
|
||||
|
||||
from helper_bot.filters.main import ChatTypeFilter
|
||||
from helper_bot.keyboards.main import get_reply_keyboard_leave_chat
|
||||
from helper_bot.keyboards.keyboards import get_reply_keyboard_leave_chat
|
||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||
from helper_bot.utils.helper_func import send_text_message
|
||||
from logs.custom_logger import logger
|
||||
|
||||
group_router = Router()
|
||||
|
||||
|
||||
bdf = BaseDependencyFactory()
|
||||
GROUP_FOR_POST = bdf.settings['Telegram']['group_for_posts']
|
||||
GROUP_FOR_MESSAGE = bdf.settings['Telegram']['group_for_message']
|
||||
|
||||
@@ -11,14 +11,14 @@ from aiogram.types import FSInputFile
|
||||
|
||||
from helper_bot.filters.main import ChatTypeFilter
|
||||
from helper_bot.keyboards import get_reply_keyboard, get_reply_keyboard_for_post
|
||||
from helper_bot.keyboards.main import get_reply_keyboard_leave_chat
|
||||
from helper_bot.keyboards.keyboards import get_reply_keyboard_leave_chat
|
||||
from helper_bot.middlewares.album_middleware import AlbumMiddleware
|
||||
from helper_bot.middlewares.blacklist_middleware import BlacklistMiddleware
|
||||
from helper_bot.utils import messages
|
||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||
from helper_bot.utils.helper_func import get_first_name, get_text_message, send_text_message, send_photo_message, \
|
||||
send_media_group_message_to_private_chat, prepare_media_group_from_middlewares, check_username_and_full_name, \
|
||||
send_video_message, send_video_note_message, send_audio_message, send_voice_message
|
||||
send_video_message, send_video_note_message, send_audio_message, send_voice_message, add_in_db_media
|
||||
from logs.custom_logger import logger
|
||||
|
||||
private_router = Router()
|
||||
@@ -173,7 +173,10 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
|
||||
markup = get_reply_keyboard_for_post()
|
||||
|
||||
# Отправляем сообщение в приватный канал
|
||||
await send_text_message(GROUP_FOR_POST, message, post_text, markup)
|
||||
sent_message_id = await send_text_message(GROUP_FOR_POST, message, post_text, markup)
|
||||
|
||||
# Записываем в базу пост
|
||||
BotDB.add_post_in_db(sent_message_id, message.text, message.from_user.id)
|
||||
|
||||
# Отправляем юзеру ответ, что сообщение отравлено и возвращаем его в меню
|
||||
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
|
||||
@@ -182,15 +185,19 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
|
||||
await state.set_state("START")
|
||||
|
||||
elif message.content_type == 'photo' and message.media_group_id is None:
|
||||
lower_caption = message.caption.lower()
|
||||
if message.caption:
|
||||
lower_caption = message.caption.lower()
|
||||
# Получаем текст сообщения и преобразовываем его по правилам
|
||||
post_caption = get_text_message(lower_caption, message.from_user.full_name,
|
||||
message.from_user.username)
|
||||
markup = get_reply_keyboard_for_post()
|
||||
# Получаем текст сообщения и преобразовываем его по правилам
|
||||
post_caption = get_text_message(lower_caption, message.from_user.full_name,
|
||||
message.from_user.username)
|
||||
|
||||
# Отправляем фото и текст в приватный канал
|
||||
await send_photo_message(GROUP_FOR_POST, message,
|
||||
message.photo[-1].file_id, post_caption, markup)
|
||||
sent_message = await send_photo_message(GROUP_FOR_POST, message,
|
||||
message.photo[-1].file_id, post_caption, markup)
|
||||
# Записываем в базу пост и контент
|
||||
BotDB.add_post_in_db(sent_message.message_id, sent_message.caption, message.from_user.id)
|
||||
await add_in_db_media(sent_message)
|
||||
|
||||
# Отправляем юзеру ответ и возвращаем его в меню
|
||||
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
|
||||
@@ -207,8 +214,16 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
|
||||
# Получаем текст сообщения и преобразовываем его по правилам
|
||||
|
||||
# Отправляем видео и текст в приватный канал
|
||||
await send_video_message(GROUP_FOR_POST, message,
|
||||
message.video.file_id, post_caption, markup)
|
||||
sent_message = await send_video_message(GROUP_FOR_POST, message,
|
||||
message.video.file_id, post_caption, markup)
|
||||
|
||||
# Записываем в базу пост и контент
|
||||
BotDB.add_post_in_db(sent_message.message_id, sent_message.caption, message.from_user.id)
|
||||
await add_in_db_media(sent_message)
|
||||
|
||||
# Записываем в базу пост и контент
|
||||
BotDB.add_post_in_db(sent_message.message_id, sent_message.caption, message.from_user.id)
|
||||
await add_in_db_media(sent_message)
|
||||
|
||||
# Отправляем юзеру ответ и возвращаем его в меню
|
||||
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
|
||||
@@ -220,8 +235,12 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
|
||||
markup = get_reply_keyboard_for_post()
|
||||
|
||||
# Отправляем видеокружок в приватный канал
|
||||
await send_video_note_message(GROUP_FOR_POST, message,
|
||||
message.video_note.file_id, markup)
|
||||
sent_message = await send_video_note_message(GROUP_FOR_POST, message,
|
||||
message.video_note.file_id, markup)
|
||||
|
||||
# Записываем в базу пост и контент
|
||||
BotDB.add_post_in_db(sent_message.message_id, sent_message.caption, message.from_user.id)
|
||||
await add_in_db_media(sent_message)
|
||||
|
||||
# Отправляем юзеру ответ и возвращаем его в меню
|
||||
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
|
||||
@@ -230,15 +249,20 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
|
||||
await state.set_state("START")
|
||||
|
||||
elif message.content_type == 'audio' and message.media_group_id is None:
|
||||
lower_caption = message.caption.lower()
|
||||
if message.caption:
|
||||
lower_caption = message.caption.lower()
|
||||
# Получаем текст сообщения и преобразовываем его по правилам
|
||||
post_caption = get_text_message(lower_caption, message.from_user.full_name,
|
||||
message.from_user.username)
|
||||
markup = get_reply_keyboard_for_post()
|
||||
# Получаем текст сообщения и преобразовываем его по правилам
|
||||
post_caption = get_text_message(lower_caption, message.from_user.full_name,
|
||||
message.from_user.username)
|
||||
|
||||
# Отправляем видео и текст в приватный канал
|
||||
await send_audio_message(GROUP_FOR_POST, message,
|
||||
message.audio.file_id, post_caption, markup)
|
||||
# Отправляем аудио и текст в приватный канал
|
||||
sent_message = await send_audio_message(GROUP_FOR_POST, message,
|
||||
message.audio.file_id, post_caption, markup)
|
||||
|
||||
# Записываем в базу пост и контент
|
||||
BotDB.add_post_in_db(sent_message.message_id, sent_message.caption, message.from_user.id)
|
||||
await add_in_db_media(sent_message)
|
||||
|
||||
# Отправляем юзеру ответ и возвращаем его в меню
|
||||
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
|
||||
@@ -249,9 +273,13 @@ async def suggest_router(message: types.Message, state: FSMContext, album: list
|
||||
elif message.content_type == 'voice' and message.media_group_id is None:
|
||||
markup = get_reply_keyboard_for_post()
|
||||
|
||||
# Отправляем видео и текст в приватный канал
|
||||
await send_voice_message(GROUP_FOR_POST, message,
|
||||
message.voice.file_id, markup)
|
||||
# Отправляем войс и текст в приватный канал
|
||||
sent_message = await send_voice_message(GROUP_FOR_POST, message,
|
||||
message.voice.file_id, markup)
|
||||
|
||||
# Записываем в базу пост и контент
|
||||
BotDB.add_post_in_db(sent_message.message_id, sent_message.caption, message.from_user.id)
|
||||
await add_in_db_media(sent_message)
|
||||
|
||||
# Отправляем юзеру ответ и возвращаем его в меню
|
||||
markup_for_user = get_reply_keyboard(BotDB, message.from_user.id)
|
||||
|
||||
Reference in New Issue
Block a user