Spaces:
Build error
Build error
File size: 4,826 Bytes
013b9a2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# (c) Shrimadhav U K
# the logging things
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
import numpy
import os
from PIL import Image
import time
# the secret configuration specific things
if bool(os.environ.get("WEBHOOK", False)):
from sample_config import Config
else:
from config import Config
# the Strings used for this "thing"
from translation import Translation
import pyrogram
logging.getLogger("pyrogram").setLevel(logging.WARNING)
@pyrogram.Client.on_message(pyrogram.filters.command(["genthumbnail"]))
async def generate_custom_thumbnail(bot, update):
if update.from_user.id in Config.AUTH_USERS:
if update.reply_to_message is not None:
reply_message = update.reply_to_message
if reply_message.media_group_id is not None:
download_location = Config.DOWNLOAD_LOCATION + "/" + str(update.from_user.id) + "/" + str(reply_message.media_group_id) + "/"
save_final_image = download_location + str(round(time.time())) + ".jpg"
list_im = os.listdir(download_location)
if len(list_im) == 2:
imgs = [ Image.open(download_location + i) for i in list_im ]
inm_aesph = sorted([(numpy.sum(i.size), i.size) for i in imgs])
min_shape = inm_aesph[1][1]
imgs_comb = numpy.hstack(numpy.asarray(i.resize(min_shape)) for i in imgs)
imgs_comb = Image.fromarray(imgs_comb)
# combine: https://stackoverflow.com/a/30228789/4723940
imgs_comb.save(save_final_image)
# send
user = await bot.get_me()
mention = user["mention"]
await bot.send_photo(
chat_id=update.chat.id,
photo=save_final_image,
caption=Translation.CUSTOM_CAPTION_UL_FILE.format(mention),
reply_to_message_id=update.message_id
)
else:
await bot.send_message(
chat_id=update.chat.id,
text=Translation.ERR_ONLY_TWO_MEDIA_IN_ALBUM,
reply_to_message_id=update.message_id
)
try:
[os.remove(download_location + i) for i in list_im ]
os.remove(download_location)
except:
pass
else:
await bot.send_message(
chat_id=update.chat.id,
text=Translation.REPLY_TO_MEDIA_ALBUM_TO_GEN_THUMB,
reply_to_message_id=update.message_id
)
else:
await bot.send_message(
chat_id=update.chat.id,
text=Translation.REPLY_TO_MEDIA_ALBUM_TO_GEN_THUMB,
reply_to_message_id=update.message_id
)
@pyrogram.Client.on_message(pyrogram.filters.photo)
async def save_photo(bot, update):
if update.from_user.id in Config.AUTH_USERS:
if update.media_group_id is not None:
# album is sent
download_location = Config.DOWNLOAD_LOCATION + "/" + str(update.from_user.id) + "/" + str(update.media_group_id) + "/"
# create download directory, if not exist
if not os.path.isdir(download_location):
os.makedirs(download_location)
await bot.download_media(
message=update,
file_name=download_location
)
else:
# received single photo
download_location = Config.DOWNLOAD_LOCATION + "/" + str(update.from_user.id) + ".jpg"
await bot.download_media(
message=update,
file_name=download_location
)
await bot.send_message(
chat_id=update.chat.id,
text=Translation.SAVED_CUSTOM_THUMB_NAIL,
reply_to_message_id=update.message_id
)
@pyrogram.Client.on_message(pyrogram.filters.command(["delthumbnail"]))
async def delthumbnail(bot, update):
if update.from_user.id in Config.AUTH_USERS:
download_location = Config.DOWNLOAD_LOCATION + "/" + str(update.from_user.id)
try:
os.remove(download_location + ".jpg")
# os.remove(download_location + ".json")
except:
pass
await bot.send_message(
chat_id=update.chat.id,
text=Translation.DEL_ETED_CUSTOM_THUMB_NAIL,
reply_to_message_id=update.message_id
)
|