Commit 0a7a1f5
Changed files (5)
src
src/messages/details.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import contextlib
+
+from ffmpeg.asyncio import FFmpeg
+from pyrogram.client import Client
+from pyrogram.types import Message
+
+from config import PREFIX
+from messages.sender import send2tg
+from messages.utils import equal_prefix
+
+
+async def show_msg_info(client: Client, message: Message, **kwargs):
+ """Show message info."""
+ if not equal_prefix(message.text, prefix=PREFIX.MSG_INFO):
+ return
+ if not message.reply_to_message:
+ return
+ message = message.reply_to_message
+ await send2tg(client, message, texts=str(message), **kwargs)
+
+
+async def get_ffmpeg_version() -> str:
+ ffmpeg = FFmpeg().option("version")
+ with contextlib.suppress(Exception):
+ res = await ffmpeg.execute()
+ if isinstance(res, bytes):
+ lines = res.decode("utf-8").splitlines()
+ return lines[0].split(" ")[2]
+ return ""
src/messages/main.py
@@ -14,6 +14,7 @@ from config import FAVORITE, PREFIX, PROXY
from danmu.entrypoint import query_danmu
from database.database import del_db
from history.query import query_chat_history
+from messages.details import show_msg_info
from messages.help import social_media_help
from messages.modify import parse_kwargs
from messages.parser import parse_msg
@@ -146,6 +147,7 @@ async def process_message(
if version:
await get_bot_version(client, message, **kwargs)
+ await show_msg_info(client, message, **kwargs)
await preview_social_media(client, message, **kwargs)
src/messages/parser.py
@@ -109,7 +109,7 @@ def parse_msg(message: Message, *, silent: bool = False, verbose: bool = False,
"media_group_id": int(media_group_id),
"is_bot": bool(is_bot),
"text": str(text),
- "html": getattr(text, "html", ""), # type: ignore
+ "html": getattr(text, "html", ""),
"full_name": str(full_name),
"handle": str(handle),
"datetime": dt,
src/config.py
@@ -111,6 +111,7 @@ class PREFIX:
FFPROBE = os.getenv("PREFIX_FFPROBE", "/ffprobe").lower()
WATERMARK = os.getenv("PREFIX_WATERMARK", "/wm, /watermark").lower()
VERSION = os.getenv("PREFIX_VERSION", "/version").lower()
+ MSG_INFO = os.getenv("PREFIX_MSG_INFO", "/info").lower()
class API:
src/permission.py
@@ -99,7 +99,7 @@ def global_permissions() -> dict:
for key in envs:
value = os.environ[key]
option = key.removeprefix("GLOBAL_").lower()
- permission[option] = to_bool(value) # type: ignore
+ permission[option] = to_bool(value)
logger.warning(f"Set `{option}` to {to_bool(value)}")
logger.success(f"Global permission: {permission}")
return permission
@@ -233,7 +233,7 @@ def check_service(cid: int | str, ctype: str) -> dict:
for key in envs:
value = os.environ[key]
option = key.removeprefix(f"SET_{cid}_").lower()
- permission[option] = to_bool(value) # type: ignore
+ permission[option] = to_bool(value)
logger.warning(f"Set `{option}` for chat={cid} to {to_bool(value)}")
logger.success(f"Permission for chat={cid}: {permission}")
return permission