This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
import datetime
|
||||
import platform
|
||||
|
||||
from pyrogram.file_id import PHOTO_TYPES, FileType
|
||||
|
||||
|
||||
class Chat:
|
||||
def __init__(self, chat_id, chat_title):
|
||||
self.id = chat_id
|
||||
self.title = chat_title
|
||||
|
||||
|
||||
class Date:
|
||||
def __init__(self, date):
|
||||
self.date = date
|
||||
|
||||
def strftime(self, str) -> str:
|
||||
return ""
|
||||
|
||||
|
||||
class MockMessage:
|
||||
def __init__(self, **kwargs):
|
||||
self.id = kwargs.get("id")
|
||||
self.media = kwargs.get("media")
|
||||
self.audio = kwargs.get("audio", None)
|
||||
self.document = kwargs.get("document", None)
|
||||
self.photo = kwargs.get("photo", None)
|
||||
self.video = kwargs.get("video", None)
|
||||
self.voice = kwargs.get("voice", None)
|
||||
self.video_note = kwargs.get("video_note", None)
|
||||
self.media_group_id = kwargs.get("media_group_id", None)
|
||||
self.caption = kwargs.get("caption", None)
|
||||
self.text = kwargs.get("text", None)
|
||||
self.empty = kwargs.get("empty", False)
|
||||
self.from_user = kwargs.get("from_user", None)
|
||||
self.reply_to_message_id = kwargs.get("reply_to_message_id", None)
|
||||
self.caption_entities = kwargs.get("caption_entities", None)
|
||||
|
||||
if kwargs.get("dis_chat") == None:
|
||||
self.chat = Chat(
|
||||
kwargs.get("chat_id", None), kwargs.get("chat_title", None)
|
||||
)
|
||||
else:
|
||||
self.chat = kwargs.get("chat", None)
|
||||
self.date: datetime = None
|
||||
if kwargs.get("date") != None:
|
||||
self.date = kwargs["date"]
|
||||
|
||||
|
||||
class MockUser:
|
||||
def __init__(self, **kwargs):
|
||||
self.id = kwargs.get("id", 0)
|
||||
self.username = kwargs.get("username", "")
|
||||
|
||||
|
||||
class MockAudio:
|
||||
def __init__(self, **kwargs):
|
||||
self.file_name = kwargs["file_name"]
|
||||
self.mime_type = kwargs["mime_type"]
|
||||
self.file_id = "AUDIO"
|
||||
if kwargs.get("file_size"):
|
||||
self.file_size = kwargs["file_size"]
|
||||
else:
|
||||
self.file_size = 1024
|
||||
|
||||
|
||||
class MockDocument:
|
||||
def __init__(self, **kwargs):
|
||||
self.file_name = kwargs["file_name"]
|
||||
self.mime_type = kwargs["mime_type"]
|
||||
self.file_id = "DOCUMENT"
|
||||
if kwargs.get("file_size"):
|
||||
self.file_size = kwargs["file_size"]
|
||||
else:
|
||||
self.file_size = 1024
|
||||
|
||||
|
||||
class MockPhoto:
|
||||
def __init__(self, **kwargs):
|
||||
self.date = kwargs["date"]
|
||||
self.file_unique_id = kwargs["file_unique_id"]
|
||||
self.file_id = "PHOTO"
|
||||
if kwargs.get("file_size"):
|
||||
self.file_size = kwargs["file_size"]
|
||||
else:
|
||||
self.file_size = 1024
|
||||
|
||||
|
||||
class MockVoice:
|
||||
def __init__(self, **kwargs):
|
||||
self.mime_type = kwargs["mime_type"]
|
||||
self.date = kwargs["date"]
|
||||
self.file_id = "VOICE"
|
||||
if kwargs.get("file_size"):
|
||||
self.file_size = kwargs["file_size"]
|
||||
else:
|
||||
self.file_size = 1024
|
||||
|
||||
|
||||
class MockVideo:
|
||||
def __init__(self, **kwargs):
|
||||
self.file_name = kwargs.get("file_name")
|
||||
self.mime_type = kwargs["mime_type"]
|
||||
self.file_id = "VIDEO"
|
||||
if kwargs.get("file_size"):
|
||||
self.file_size = kwargs["file_size"]
|
||||
else:
|
||||
self.file_size = 1024
|
||||
|
||||
if kwargs.get("width"):
|
||||
self.width = kwargs["width"]
|
||||
else:
|
||||
self.width = 1920
|
||||
|
||||
if kwargs.get("height"):
|
||||
self.height = kwargs["height"]
|
||||
else:
|
||||
self.height = 1080
|
||||
|
||||
if kwargs.get("duration"):
|
||||
self.duration = kwargs["duration"]
|
||||
else:
|
||||
self.duration = 1024
|
||||
|
||||
|
||||
class MockVideoNote:
|
||||
def __init__(self, **kwargs):
|
||||
self.mime_type = kwargs["mime_type"]
|
||||
self.file_id = "VIDEO_NOTE"
|
||||
self.date = kwargs["date"]
|
||||
|
||||
|
||||
def platform_generic_path(_path: str) -> str:
|
||||
platform_specific_path: str = _path
|
||||
if platform.system() == "Windows":
|
||||
platform_specific_path = platform_specific_path.replace("/", "\\")
|
||||
return platform_specific_path
|
||||
|
||||
|
||||
def get_file_type(file_id: str):
|
||||
if file_id == "THUMBNAIL":
|
||||
return FileType.THUMBNAIL
|
||||
elif file_id == "CHAT_PHOTO":
|
||||
return FileType.CHAT_PHOTO
|
||||
elif file_id == "PHOTO":
|
||||
return FileType.PHOTO
|
||||
elif file_id == "VOICE":
|
||||
return FileType.VOICE
|
||||
elif file_id == "VIDEO":
|
||||
return FileType.VIDEO
|
||||
elif file_id == "DOCUMENT":
|
||||
return FileType.DOCUMENT
|
||||
elif file_id == "ENCRYPTED":
|
||||
return FileType.ENCRYPTED
|
||||
elif file_id == "TEMP":
|
||||
return FileType.TEMP
|
||||
elif file_id == "STICKER":
|
||||
return FileType.STICKER
|
||||
elif file_id == "AUDIO":
|
||||
return FileType.AUDIO
|
||||
elif file_id == "ANIMATION":
|
||||
return FileType.ANIMATION
|
||||
elif file_id == "ENCRYPTED_THUMBNAIL":
|
||||
return FileType.ENCRYPTED_THUMBNAIL
|
||||
elif file_id == "WALLPAPER":
|
||||
return FileType.WALLPAPER
|
||||
elif file_id == "VIDEO_NOTE":
|
||||
return FileType.VIDEO_NOTE
|
||||
elif file_id == "SECURE_RAW":
|
||||
return FileType.SECURE_RAW
|
||||
elif file_id == "SECURE":
|
||||
return FileType.SECURE
|
||||
elif file_id == "BACKGROUND":
|
||||
return FileType.BACKGROUND
|
||||
elif file_id == "DOCUMENT_AS_FILE":
|
||||
return FileType.DOCUMENT_AS_FILE
|
||||
|
||||
raise ValueError("error file id!")
|
||||
|
||||
|
||||
def get_extension(file_id: str, mime_type: str, dot: bool = True):
|
||||
file_type = get_file_type(file_id=file_id)
|
||||
guessed_extension = ""
|
||||
|
||||
if file_type in PHOTO_TYPES:
|
||||
extension = "jpg"
|
||||
elif file_type == FileType.VOICE:
|
||||
extension = guessed_extension or "ogg"
|
||||
elif file_type in (FileType.VIDEO, FileType.ANIMATION, FileType.VIDEO_NOTE):
|
||||
extension = guessed_extension or "mp4"
|
||||
elif file_type == FileType.DOCUMENT:
|
||||
extension = guessed_extension or "zip"
|
||||
elif file_type == FileType.STICKER:
|
||||
extension = guessed_extension or "webp"
|
||||
elif file_type == FileType.AUDIO:
|
||||
extension = guessed_extension or "mp3"
|
||||
else:
|
||||
extension = "unknown"
|
||||
|
||||
if dot:
|
||||
extension = "." + extension
|
||||
|
||||
return extension
|
||||
Reference in New Issue
Block a user