mirror of
https://github.com/PaiGramTeam/PamGram.git
synced 2024-11-22 14:26:45 +00:00
1f17e56824
Co-authored-by: SiHuan <sihuan@sakuya.love> Co-authored-by: 洛水居室 <luoshuijs@outlook.com>
55 lines
2.2 KiB
Python
55 lines
2.2 KiB
Python
import os
|
|
|
|
from telegram import Update
|
|
from telegram.constants import ChatAction
|
|
from telegram.ext import CommandHandler, CallbackContext
|
|
|
|
from core.plugin import Plugin, handler
|
|
from modules.error.pb import PbClient
|
|
from utils.decorators.admins import bot_admins_rights_check
|
|
from utils.log import logger
|
|
|
|
current_dir = os.getcwd()
|
|
error_log = os.path.join(current_dir, "logs", "error", "error.log")
|
|
debug_log = os.path.join(current_dir, "logs", "debug", "debug.log")
|
|
|
|
|
|
class Log(Plugin):
|
|
def __init__(self):
|
|
self.pb_client = PbClient()
|
|
self.pb_client.sunset = 3600
|
|
self.pb_client.max_lines = 10000
|
|
|
|
async def send_to_pb(self, file_name: str):
|
|
pb_url = ""
|
|
try:
|
|
with open(file_name, "r", encoding="utf-8") as f:
|
|
pb_url = await self.pb_client.create_pb(f.read())
|
|
except Exception as exc: # pylint: disable=W0703
|
|
logger.error("上传错误信息至 fars 失败")
|
|
logger.exception(exc)
|
|
return pb_url
|
|
|
|
@handler(CommandHandler, command="send_log", block=False)
|
|
@bot_admins_rights_check
|
|
async def send_log(self, update: Update, _: CallbackContext):
|
|
user = update.effective_user
|
|
logger.info(f"用户 {user.full_name}[{user.id}] send_log 命令请求")
|
|
message = update.effective_message
|
|
if os.path.exists(error_log) and os.path.getsize(error_log) > 0:
|
|
pb_url = await self.send_to_pb(error_log)
|
|
await message.reply_chat_action(ChatAction.UPLOAD_DOCUMENT)
|
|
await message.reply_document(
|
|
open(error_log, mode="rb+"), caption=f"Error Log\n{pb_url}/text" if pb_url else "Error Log"
|
|
)
|
|
else:
|
|
await message.reply_text("错误日记未找到")
|
|
if os.path.exists(debug_log) and os.path.getsize(debug_log) > 0:
|
|
pb_url = await self.send_to_pb(debug_log)
|
|
await message.reply_chat_action(ChatAction.UPLOAD_DOCUMENT)
|
|
await message.reply_document(
|
|
open(debug_log, mode="rb+"), caption=f"Debug Log\n{pb_url}/text" if pb_url else "Debug Log"
|
|
)
|
|
else:
|
|
await message.reply_text("调试日记未找到")
|