mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2025-12-29 09:44:50 +00:00
* ci: Update .deepsource.toml
* ci: Update .deepsource.toml
* style: format code with black and isort
Format code with black and isort
This commit fixes the style issues introduced in 0fb651a according to the output
from Black and isort.
Details: https://app.deepsource.com/gh/yasirarism/MissKatyPyro/transform/d8f2f66e-b496-4686-aca6-9830236eda12/
---------
Co-authored-by: deepsource-io[bot] <42547082+deepsource-io[bot]@users.noreply.github.com>
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
88 lines
3.1 KiB
Python
88 lines
3.1 KiB
Python
"""
|
|
MIT License
|
|
Copyright (c) 2021 TheHamkerCat
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
The above copyright notice and this permission notice shall be included in all
|
|
copies or substantial portions of the Software.
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
"""
|
|
import math
|
|
import os
|
|
|
|
from PIL import Image
|
|
from pyrogram import Client, raw
|
|
from pyrogram.file_id import FileId
|
|
|
|
STICKER_DIMENSIONS = (512, 512)
|
|
|
|
|
|
async def resize_file_to_sticker_size(file_path: str) -> str:
|
|
im = Image.open(file_path)
|
|
if (im.width, im.height) < STICKER_DIMENSIONS:
|
|
size1 = im.width
|
|
size2 = im.height
|
|
if im.width > im.height:
|
|
scale = STICKER_DIMENSIONS[0] / size1
|
|
size1new = STICKER_DIMENSIONS[0]
|
|
size2new = size2 * scale
|
|
else:
|
|
scale = STICKER_DIMENSIONS[1] / size2
|
|
size1new = size1 * scale
|
|
size2new = STICKER_DIMENSIONS[1]
|
|
size1new = math.floor(size1new)
|
|
size2new = math.floor(size2new)
|
|
sizenew = (size1new, size2new)
|
|
im = im.resize(sizenew)
|
|
else:
|
|
im.thumbnail(STICKER_DIMENSIONS)
|
|
try:
|
|
os.remove(file_path)
|
|
return f"{file_path}.png"
|
|
finally:
|
|
im.save(file_path)
|
|
|
|
|
|
async def upload_document(
|
|
client: Client, file_path: str, chat_id: int
|
|
) -> raw.base.InputDocument:
|
|
media = await client.send(
|
|
raw.functions.messages.UploadMedia(
|
|
peer=await client.resolve_peer(chat_id),
|
|
media=raw.types.InputMediaUploadedDocument(
|
|
mime_type=client.guess_mime_type(file_path) or "application/zip",
|
|
file=await client.save_file(file_path),
|
|
attributes=[
|
|
raw.types.DocumentAttributeFilename(
|
|
file_name=os.path.basename(file_path)
|
|
)
|
|
],
|
|
),
|
|
)
|
|
)
|
|
return raw.types.InputDocument(
|
|
id=media.document.id,
|
|
access_hash=media.document.access_hash,
|
|
file_reference=media.document.file_reference,
|
|
)
|
|
|
|
|
|
async def get_document_from_file_id(
|
|
file_id: str,
|
|
) -> raw.base.InputDocument:
|
|
decoded = FileId.decode(file_id)
|
|
return raw.types.InputDocument(
|
|
id=decoded.media_id,
|
|
access_hash=decoded.access_hash,
|
|
file_reference=decoded.file_reference,
|
|
)
|