PamGram/plugins/system/log.py
洛水居室 233e7ab58d
♻️ PaiGram V4
Co-authored-by: luoshuijs <luoshuijs@outlook.com>
Co-authored-by: Karako <karakohear@gmail.com>
Co-authored-by: xtaodada <xtao@xtaolink.cn>
2023-03-14 09:27:22 +08:00

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("调试日记未找到")