add delete button to images uploaded via rpc
This commit is contained in:
@@ -14,7 +14,7 @@ from PIL import Image
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from telegram import Update, Bot, InputMediaPhoto
|
||||
from telegram.ext import Dispatcher, CallbackContext, MessageHandler, Filters, CommandHandler
|
||||
from telegram.ext import Dispatcher, CallbackContext, MessageHandler, Filters, CommandHandler, CallbackQueryHandler
|
||||
from jsonrpc import Dispatcher as RPCDispatcher
|
||||
from djconfig import config
|
||||
|
||||
@@ -60,7 +60,7 @@ class ChannelHelperBotModuleConfig(TelegramBotModuleConfig):
|
||||
|
||||
width, height = im.size
|
||||
if width > 2000 or height > 2000:
|
||||
im.thumbnail((2000, 2000))
|
||||
im.thumbnail((2000, 2000), Image.LANCZOS)
|
||||
im = im.convert('RGB')
|
||||
fpath = os.path.join(tempfile.gettempdir(), '{}.jpg'.format(uuid4()))
|
||||
im.save(fpath)
|
||||
@@ -193,6 +193,17 @@ class ChannelHelperBotModuleConfig(TelegramBotModuleConfig):
|
||||
except QueuedItem.DoesNotExist:
|
||||
update.effective_message.reply_text('Not found')
|
||||
|
||||
def handle_delete_callback(self, update: Update, ctx: CallbackContext):
|
||||
message_id = update.message.message_id
|
||||
try:
|
||||
msg = QueuedItem.objects.get(Q(message_id=message_id) | Q(message_ids_extra__contains=f'{message_id}'),
|
||||
config=self)
|
||||
msg.delete()
|
||||
update.effective_message.edit_text('Deleted', reply_markup=None)
|
||||
update.callback_query.answer('Deleted')
|
||||
except QueuedItem.DoesNotExist:
|
||||
update.callback_query.answer('Not found')
|
||||
|
||||
def handle_count(self, update: Update, ctx: CallbackContext):
|
||||
if self.users.count() and not self.users.filter(user_id=update.effective_user.id).count():
|
||||
update.effective_message.reply_text('GTFO')
|
||||
@@ -202,6 +213,7 @@ class ChannelHelperBotModuleConfig(TelegramBotModuleConfig):
|
||||
def build_dispatcher(self, dispatcher: Dispatcher):
|
||||
dispatcher.add_handler(CommandHandler(['delete', 'del', 'remove', 'rem'], self.handle_delete, Filters.reply))
|
||||
dispatcher.add_handler(CommandHandler(['count'], self.handle_count))
|
||||
dispatcher.add_handler(CallbackQueryHandler(self.handle_delete_callback, pattern=r'^del (\d+)$'))
|
||||
dispatcher.add_handler(MessageHandler(Filters.private, self.handle_message))
|
||||
return dispatcher
|
||||
|
||||
|
Reference in New Issue
Block a user