mirror of
https://github.com/PaiGramTeam/PamGram.git
synced 2024-11-16 20:10:36 +00:00
233e7ab58d
Co-authored-by: luoshuijs <luoshuijs@outlook.com> Co-authored-by: Karako <karakohear@gmail.com> Co-authored-by: xtaodada <xtao@xtaolink.cn>
54 lines
2.2 KiB
Python
54 lines
2.2 KiB
Python
import os
|
|
|
|
from telegram import Update
|
|
from telegram.constants import ChatAction
|
|
from telegram.ext import CallbackContext
|
|
|
|
from core.config import config
|
|
from core.plugin import Plugin, handler
|
|
from modules.errorpush import PbClient, PbClientException
|
|
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(config.error.pb_url, 3600, 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 PbClientException as exc:
|
|
logger.warning("上传错误信息至 fars 失败", exc_info=exc)
|
|
except Exception as exc:
|
|
logger.error("上传错误信息至 fars 失败")
|
|
logger.exception(exc)
|
|
return pb_url
|
|
|
|
@handler.command(command="send_log", block=False, admin=True)
|
|
async def send_log(self, update: Update, _: CallbackContext):
|
|
user = update.effective_user
|
|
logger.info("用户 %s[%s] send_log 命令请求", user.full_name, user.id)
|
|
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("调试日记未找到")
|