sycgram/plugins/updown.py
2022-04-09 18:10:34 +08:00

65 lines
2.1 KiB
Python

import asyncio
from datetime import datetime
import os
from core import command
from loguru import logger
from pyrogram import Client
from pyrogram.types import Message
from tools.constants import DOWNLOAD_PATH, SYCGRAM
from tools.helpers import Parameters, delete_this, show_cmd_tip, show_exception
@Client.on_message(command("upload"))
async def upload(cli: Client, msg: Message):
"""上传容器内的文件"""
cmd, where = Parameters.get(msg)
if not where:
return await show_cmd_tip(msg, cmd)
replied_msg_id = msg.reply_to_message.message_id \
if msg.reply_to_message else None
_, filename = os.path.split(where)
try:
res = await cli.send_document(
chat_id=msg.chat.id,
document=where,
caption=f"```From {SYCGRAM}```",
file_name=filename,
reply_to_message_id=replied_msg_id
)
except Exception as e:
return await show_exception(msg, e)
else:
if res:
await delete_this(msg)
else:
await msg.edit_text("⚠️ Maybe fail to upload ...")
@Client.on_message(command("download"))
async def download(_: Client, msg: Message):
"""下载目标消息的文件到挂载目录"""
cmd, where = Parameters.get(msg)
replied_msg = msg.reply_to_message
if not replied_msg:
return await show_cmd_tip(msg, cmd)
if replied_msg.sticker:
creation = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
file_name = f"{DOWNLOAD_PATH}sticker_{creation}.webp"
else:
file_name = DOWNLOAD_PATH if not where else where
try:
res = await replied_msg.download(file_name=file_name)
except ValueError:
return await show_cmd_tip(msg, cmd)
except Exception as e:
logger.error(e)
return await show_exception(msg, e)
else:
if res:
await msg.edit_text("✅ Download this successfully.")
await asyncio.sleep(3)
await delete_this(msg)
else:
await msg.edit_text("⚠️ Maybe fail to download ...")