PamGram/plugins/system/log.py
omg-xtao 1f17e56824
添加错误平台
Co-authored-by: SiHuan <sihuan@sakuya.love>
Co-authored-by: 洛水居室 <luoshuijs@outlook.com>
2022-10-19 20:22:24 +08:00

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