/remove command fixed

This commit is contained in:
Profitroll 2023-06-28 08:53:15 +02:00
parent 97b3aa1505
commit e06cb4b377
Signed by: profitroll
GPG Key ID: FA35CAB49DACD3B2
4 changed files with 78 additions and 4 deletions

View File

@ -59,6 +59,8 @@
"remove_abort": "Removal aborted.", "remove_abort": "Removal aborted.",
"remove_success": "Removed media with ID `{0}`.", "remove_success": "Removed media with ID `{0}`.",
"remove_failure": "Could not remove media with ID `{0}`. Check if provided ID is correct and if it is - you can also check bot's log for details.", "remove_failure": "Could not remove media with ID `{0}`. Check if provided ID is correct and if it is - you can also check bot's log for details.",
"remove_kind": "Please choose the type of media to delete. Use /cancel if you want to abort this operation.",
"remove_unknown": "Unknown media type. It can only be \"{0}\" or \"{1}\".",
"update_available": "**New version found**\nThere's a newer version of a bot found. You can update your bot to [{0}]({1}) using command line of your host.\n\n**Release notes**\n{2}\n\nRead more about updating you bot on the [wiki page](https://git.end-play.xyz/profitroll/TelegramPoster/wiki/Updating-Instance).\n\nPlease not that you can also disable this notification by editing `reports.update` key of the config.", "update_available": "**New version found**\nThere's a newer version of a bot found. You can update your bot to [{0}]({1}) using command line of your host.\n\n**Release notes**\n{2}\n\nRead more about updating you bot on the [wiki page](https://git.end-play.xyz/profitroll/TelegramPoster/wiki/Updating-Instance).\n\nPlease not that you can also disable this notification by editing `reports.update` key of the config.",
"shutdown_confirm": "There are {0} unfinished users' contexts. If you turn off the bot, those will be lost. Please confirm shutdown using a button below.", "shutdown_confirm": "There are {0} unfinished users' contexts. If you turn off the bot, those will be lost. Please confirm shutdown using a button below.",
"report_sent": "We've notified admins about presumable violation. Thank you for cooperation.", "report_sent": "We've notified admins about presumable violation. Thank you for cooperation.",
@ -73,7 +75,9 @@
"post_view": "View in channel", "post_view": "View in channel",
"accepted": "✅ Accepted", "accepted": "✅ Accepted",
"declined": "❌ Declined", "declined": "❌ Declined",
"shutdown": "Confirm shutdown" "shutdown": "Confirm shutdown",
"photo": "Photo",
"video": "Video"
}, },
"callback": { "callback": {
"sub_yes": "✅ Submission approved", "sub_yes": "✅ Submission approved",

View File

@ -59,6 +59,8 @@
"remove_abort": "Видалення перервано.", "remove_abort": "Видалення перервано.",
"remove_success": "Видалено медіа з ID `{0}`.", "remove_success": "Видалено медіа з ID `{0}`.",
"remove_failure": "Не вдалося видалити медіа з ID `{0}`. Перевірте, чи вказано правильний ID, і якщо він правильний, ви також можете переглянути логи бота для отримання більш детальної інформації.", "remove_failure": "Не вдалося видалити медіа з ID `{0}`. Перевірте, чи вказано правильний ID, і якщо він правильний, ви також можете переглянути логи бота для отримання більш детальної інформації.",
"remove_kind": "Будь ласка, оберіть тип контенту для видалення. Використовуйте /cancel, якщо ви хочете перервати цю операцію.",
"remove_unknown": "Невідомий тип контенту. Може бути тільки \"{0}\" або \"{1}\".",
"update_available": "**Знайдено нову версію**\nЗнайдено нову версію бота. Ви можете оновити бота до [{0}]({1}) за допомогою командного рядка вашого хосту.\n\n**Примітки до релізу**\n{2}\n\nДетальніше про оновлення бота можна знайти на [вікі-сторінці](https://git.end-play.xyz/profitroll/TelegramPoster/wiki/Updating-Instance).\n\nЗверніть увагу, що ви також можете вимкнути це сповіщення, відредагувавши ключ `reports.update` у конфігурації.", "update_available": "**Знайдено нову версію**\nЗнайдено нову версію бота. Ви можете оновити бота до [{0}]({1}) за допомогою командного рядка вашого хосту.\n\n**Примітки до релізу**\n{2}\n\nДетальніше про оновлення бота можна знайти на [вікі-сторінці](https://git.end-play.xyz/profitroll/TelegramPoster/wiki/Updating-Instance).\n\nЗверніть увагу, що ви також можете вимкнути це сповіщення, відредагувавши ключ `reports.update` у конфігурації.",
"shutdown_confirm": "Існує {0} незавершених контекстів користувачів. Якщо ви вимкнете бота, вони будуть втрачені. Будь ласка, підтвердіть вимкнення за допомогою кнопки нижче.", "shutdown_confirm": "Існує {0} незавершених контекстів користувачів. Якщо ви вимкнете бота, вони будуть втрачені. Будь ласка, підтвердіть вимкнення за допомогою кнопки нижче.",
"report_sent": "Ми повідомили адміністрацію про потенційне порушення. Дякую за співпрацю.", "report_sent": "Ми повідомили адміністрацію про потенційне порушення. Дякую за співпрацю.",
@ -73,7 +75,9 @@
"post_view": "Переглянути на каналі", "post_view": "Переглянути на каналі",
"accepted": "✅ Прийнято", "accepted": "✅ Прийнято",
"declined": "❌ Відхилено", "declined": "❌ Відхилено",
"shutdown": "Підтвердити вимкнення" "shutdown": "Підтвердити вимкнення",
"photo": "Фото",
"video": "Відео"
}, },
"callback": { "callback": {
"sub_yes": "✅ Подання схвалено", "sub_yes": "✅ Подання схвалено",

View File

@ -35,6 +35,9 @@ from photosapi_client.api.default.photo_upload_albums_album_photos_post import (
) )
from photosapi_client.api.default.user_create_users_post import asyncio as user_create from photosapi_client.api.default.user_create_users_post import asyncio as user_create
from photosapi_client.api.default.user_me_users_me_get import sync as user_me from photosapi_client.api.default.user_me_users_me_get import sync as user_me
from photosapi_client.api.default.video_delete_videos_id_delete import (
asyncio as video_delete,
)
from photosapi_client.api.default.video_find_albums_album_videos_get import ( from photosapi_client.api.default.video_find_albums_album_videos_get import (
asyncio as video_find, asyncio as video_find,
) )

View File

@ -13,7 +13,12 @@ from convopyro import listen_message
from photosapi_client.errors import UnexpectedStatus from photosapi_client.errors import UnexpectedStatus
from pyrogram import filters from pyrogram import filters
from pyrogram.client import Client from pyrogram.client import Client
from pyrogram.types import Message from pyrogram.types import (
KeyboardButton,
Message,
ReplyKeyboardMarkup,
ReplyKeyboardRemove,
)
from ujson import loads from ujson import loads
from classes.pyroclient import PyroClient from classes.pyroclient import PyroClient
@ -23,6 +28,8 @@ from modules.api_client import (
client, client,
photo_delete, photo_delete,
photo_upload, photo_upload,
video_delete,
video_upload,
) )
from modules.utils import USERS_WITH_CONTEXT, extract_and_save from modules.utils import USERS_WITH_CONTEXT, extract_and_save
@ -155,6 +162,7 @@ async def cmd_import(app: PyroClient, msg: Message):
photo_bytes = BytesIO(fh.read()) photo_bytes = BytesIO(fh.read())
try: try:
# VIDEO SUPPORT IS PLANNED HERE TOO
uploaded = await photo_upload( uploaded = await photo_upload(
app.config["posting"]["api"]["album"], app.config["posting"]["api"]["album"],
client=client, client=client,
@ -273,7 +281,62 @@ async def cmd_remove(app: PyroClient, msg: Message):
) )
return return
response = await photo_delete(id=answer.text, client=client) await msg.reply_text(
app._("remove_kind", "message", locale=msg.from_user.language_code),
reply_markup=ReplyKeyboardMarkup(
[
[
KeyboardButton(
app._("photo", "button", locale=msg.from_user.language_code)
),
KeyboardButton(
app._("video", "button", locale=msg.from_user.language_code)
),
]
],
resize_keyboard=True,
one_time_keyboard=True,
),
)
USERS_WITH_CONTEXT.append(msg.from_user.id)
answer = await listen_message(app, msg.chat.id, timeout=600)
USERS_WITH_CONTEXT.remove(msg.from_user.id)
if answer is None:
await msg.reply_text(
app._("remove_ignored", "message", locale=msg.from_user.language_code),
quote=True,
reply_markup=ReplyKeyboardRemove(),
)
return
if answer.text == "/cancel":
await answer.reply_text(
app._("remove_abort", "message", locale=msg.from_user.language_code),
reply_markup=ReplyKeyboardRemove(),
)
return
if answer.text in app.in_all_locales("photo", "button"):
func = photo_delete
elif answer.text in app.in_all_locales("video", "button"):
func = video_delete
else:
await answer.reply_text(
app._(
"remove_unknown", "message", locale=msg.from_user.language_code
).format(
app._("photo", "button", locale=msg.from_user.language_code),
app._("video", "button", locale=msg.from_user.language_code),
),
reply_markup=ReplyKeyboardRemove(),
)
return
response = await func(id=answer.text, client=client)
if response: if response:
logger.info( logger.info(