🐛 修复很多关于网页控制台的错误

This commit is contained in:
KimigaiiWuyi 2024-11-18 02:01:53 +08:00
parent 09d07aff1f
commit f6c7eb86a2
9 changed files with 69 additions and 57 deletions

View File

@ -97,19 +97,26 @@ async def get_global_analysis(bot_id: str, bot_self_id: str):
out_user = []
new_user = []
for i in user_list[0]:
if i not in user_before_list:
out_user.append(i)
if user_list:
for i in user_list[0]:
if i not in user_before_list:
out_user.append(i)
for i in user_list[-1]:
if i not in user_after_list:
new_user.append(i)
if user_list:
for i in user_list[-1]:
if i not in user_after_list:
new_user.append(i)
_user_all_list = list(set(user_all_list))
user_num = len(user_data)
group_num = len(group_data)
data = {
'DAU': '{0:.2f}'.format(sum(user_data) / len(user_data)),
'DAG': '{0:.2f}'.format(sum(group_data) / len(group_data)),
'DAU': '{0:.2f}'.format(sum(user_data) / user_num) if user_num else 0,
'DAG': (
'{0:.2f}'.format(sum(group_data) / group_num) if group_num else 0
),
'NU': str(len(new_user)),
'OU': (
'{0:.2f}%'.format((len(out_user) / len(_user_all_list)) * 100)

View File

@ -2,6 +2,7 @@ import sys
import asyncio
import logging
import datetime
from functools import wraps
from typing import TYPE_CHECKING, List
import loguru
@ -11,8 +12,6 @@ from gsuid_core.config import core_config
from gsuid_core.models import Event, Message
from gsuid_core.data_store import get_res_path
is_clear: bool = False
is_RL: bool = False
log_history = []
LOG_PATH = get_res_path() / 'logs'
@ -111,21 +110,20 @@ def format_event(record):
def std_format_event(record):
try:
data = format_event(record)
if is_RL:
_data = data.format_map(record)
_data = (
_data.replace('<g>', '\033[37m')
.replace('</g>', '\033[0m')
.replace('<c><u>', '\033[34m')
.replace('</u></c>', '\033[0m')
.replace('<m><b>', '\033[35m')
.replace('</b></m>', '\033[0m')
.replace('<c><b>', '\033[32m')
.replace('</b></c>', '\033[0m')
.replace('<lvl>', '')
.replace('</lvl>', '')
)
log_history.append(_data.format_map(record))
_data = (
data.replace('<g>', '\033[37m')
.replace('</g>', '\033[0m')
.replace('<c><u>', '\033[34m')
.replace('</u></c>', '\033[0m')
.replace('<m><b>', '\033[35m')
.replace('</b></m>', '\033[0m')
.replace('<c><b>', '\033[32m')
.replace('</b></c>', '\033[0m')
.replace('<lvl>', '')
.replace('</lvl>', '')
)
log = _data.format_map(record)
log_history.append(log[:-5])
return data
except: # noqa: E722
return 'UnknowLog'
@ -165,25 +163,30 @@ if 'file' in logger_list:
async def read_log():
global log_history
global is_RL
is_RL = True
index = 0
while True:
if index <= len(log_history) - 1:
yield log_history[index]
if log_history[index]:
yield log_history[index]
index += 1
else:
await asyncio.sleep(1)
async def clear_log():
global is_clear
async def clean_log():
global log_history
while True:
await asyncio.sleep(480)
log_history = []
if is_clear:
return
is_clear = True
await asyncio.sleep(18000)
log_history = []
is_clear = False
def handle_exceptions(async_function):
@wraps(async_function)
async def wrapper(*args, **kwargs):
try:
return await async_function(*args, **kwargs)
except Exception as e:
logger.exception("[错误发生] %s: %s", async_function.__name__, e)
return None
return wrapper

View File

@ -523,10 +523,8 @@ async def update_plugins(
break
for _n in PLUGINS_PATH.iterdir():
_name = _n.name
sim = len(set(_name.lower()) & set(pn))
if sim >= 0.9 * len(_name):
plugin_name = _name
if pn == _n.name.lower():
plugin_name = _n.name
break
log_list = await update_from_git_in_tread(

View File

@ -1 +1 @@
__version__ = "0.6.1"
__version__ = "0.6.2"

View File

@ -18,7 +18,7 @@ from gsuid_core.data_store import image_res
from gsuid_core.webconsole.mount_app import site
from gsuid_core.segment import Message, MessageSegment
from gsuid_core.config import CONFIG_DEFAULT, core_config
from gsuid_core.logger import logger, read_log, clear_log
from gsuid_core.logger import logger, read_log, clean_log
from gsuid_core.aps import start_scheduler, shutdown_scheduler
from gsuid_core.server import core_start_def, core_shutdown_def
from gsuid_core.utils.database.models import CoreUser, CoreGroup
@ -52,6 +52,7 @@ async def lifespan(app: FastAPI):
await start_check() # type:ignore
await start_scheduler()
asyncio.create_task(clean_log())
yield
await shutdown_scheduler()
try:
@ -421,7 +422,6 @@ async def get_image(image_id: str, background_tasks: BackgroundTasks):
@app.get("/corelogs")
async def core_log():
asyncio.create_task(clear_log())
return StreamingResponse(read_log(), media_type='text/plain')

View File

@ -54,6 +54,5 @@ async def get_analysis_page():
],
)
)
page['body'].append(get_tabs(tabs))
return page

View File

@ -1,6 +1,6 @@
def create_log_page():
return {
"type": "log",
"height": 600,
"height": 730,
"source": "/corelogs",
}

View File

@ -1,6 +1,6 @@
import fastapi_amis_admin
from gsuid_core.version import __version__ as GenshinUID_version
from gsuid_core.version import __version__ as gscore_version
web_url = 'https://docs.sayu-bot.com'
login_html = f'''
@ -43,9 +43,9 @@ login_html = f'''
footer_html = f'''
<p align='right'>
<div class='p-2 text-center bg-light'>Copyright © 2021 - 2022
<div class='p-2 text-center bg-light'>Copyright © 2021 - 2024
<a href='https://github.com/KimigaiiWuyi/GenshinUID' target='_blank'
class='link-secondary'>GenshinUID {GenshinUID_version}
class='link-secondary'>GenshinUID {gscore_version}
</a>
X
<a target='_blank'

View File

@ -38,12 +38,12 @@ from fastapi_amis_admin.amis.components import (
ButtonToolbar,
)
from gsuid_core.logger import logger
from gsuid_core.logger import logger, handle_exceptions
from gsuid_core.utils.database.base_models import db_url
from gsuid_core.utils.cookie_manager.add_ck import _deal_ck
from gsuid_core.version import __version__ as gscore_version
from gsuid_core.webconsole.html import gsuid_webconsole_help
from gsuid_core.webconsole.create_sv_panel import get_sv_page
from gsuid_core.version import __version__ as GenshinUID_version
from gsuid_core.webconsole.create_log_panel import create_log_page
from gsuid_core.webconsole.create_task_panel import get_tasks_panel
from gsuid_core.webconsole.create_config_panel import get_config_page
@ -301,14 +301,12 @@ class UserBindFormAdmin(GsNormalForm):
im = await _deal_ck(data.bot_id, data.cookie, data.user_id)
except Exception as e:
logger.warning(e)
return BaseApiOut(
status=-1, msg='你输入的CK可能已经失效/或者该用户ID未绑定UID'
)
return BaseApiOut(status=-1, msg='你输入的CK可能已经失效/或者该用户ID未绑定UID') # type: ignore
ok_num = im.count('成功')
if ok_num < 1:
return BaseApiOut(status=-1, msg=im)
return BaseApiOut(status=-1, msg=im) # type: ignore
else:
return BaseApiOut(msg=im)
return BaseApiOut(msg=im) # type: ignore
class GsAdminModel(admin.ModelAdmin):
@ -397,14 +395,14 @@ class MyHomeAdmin(admin.HomeAdmin):
),
amis.Divider(),
Property(
title='GenshinUID Info',
title='早柚核心 信息',
column=4,
items=[
Property.Item(label='system', content=platform.system()),
Property.Item(
label='python', content=platform.python_version()
),
Property.Item(label='version', content=GenshinUID_version),
Property.Item(label='version', content=gscore_version),
Property.Item(label='license', content='GPLv3'),
],
),
@ -430,6 +428,7 @@ class AnalysisPage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(await get_analysis_page())
@ -444,6 +443,7 @@ class CoreManagePage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(get_core_config_page())
@ -458,6 +458,7 @@ class SVManagePage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(get_sv_page())
@ -472,6 +473,7 @@ class ConfigManagePage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(get_config_page())
@ -486,6 +488,7 @@ class PluginsManagePage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(get_tasks_panel())
@ -500,6 +503,7 @@ class LogsPage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(create_log_page())
@ -514,6 +518,7 @@ class PushPage(GsAdminPage):
sort=100,
) # type: ignore
@handle_exceptions
async def get_page(self, request: Request) -> Page:
return Page.parse_obj(await get_batch_push_panel())