fix: format and optimize
This commit is contained in:
parent
c559ece279
commit
459cd8f698
@ -1,7 +1,6 @@
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import logging
|
|
||||||
import traceback
|
import traceback
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
|
|
||||||
@ -22,7 +21,7 @@ def login_client_by_qr_code_url() -> str:
|
|||||||
request_url = background_server_url + login_api_route
|
request_url = background_server_url + login_api_route
|
||||||
response = requests.get(request_url)
|
response = requests.get(request_url)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
logging.warning(f"Could not login, err:{response.status_code}, {response.content.decode('utf-8')}")
|
print(f"Could not login, err:{response.status_code}, {response.content.decode('utf-8')}")
|
||||||
return None
|
return None
|
||||||
url_info = json.loads(response.content.decode("utf-8"))
|
url_info = json.loads(response.content.decode("utf-8"))
|
||||||
return url_info.get("url")
|
return url_info.get("url")
|
||||||
@ -35,7 +34,7 @@ def get_backend_client_status(flag: bool = False) -> dict[str, any]:
|
|||||||
request_url = f"{background_server_url}{status_api_route}?flag={flag}"
|
request_url = f"{background_server_url}{status_api_route}?flag={flag}"
|
||||||
response = requests.get(request_url)
|
response = requests.get(request_url)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
logging.warning(f"get_status, backend is running? err:{response.status_code}, {response.content.decode('utf-8')}")
|
print(f"get_status, backend is running? err:{response.status_code}, {response.content.decode('utf-8')}")
|
||||||
return None
|
return None
|
||||||
return json.loads(response.content.decode("utf-8"))
|
return json.loads(response.content.decode("utf-8"))
|
||||||
|
|
||||||
@ -45,7 +44,7 @@ def get_white_list_chat_dict() -> dict[str, any]:
|
|||||||
try:
|
try:
|
||||||
return backend_status["clist"]
|
return backend_status["clist"]
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logging.warning(f"{err=},{traceback.format_exc()}")
|
print(f"{err=},{traceback.format_exc()}")
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
@ -67,7 +66,7 @@ def search_database_by_keyword(keyword: str, chat_list: list[int], offset: int,
|
|||||||
|
|
||||||
response = requests.post(request_url, data=json.dumps(req_body))
|
response = requests.post(request_url, data=json.dumps(req_body))
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
logging.warning(f"search_database_by_keyword err:{response.status_code}, {response.content.decode('utf-8')}")
|
print(f"search_database_by_keyword err:{response.status_code}, {response.content.decode('utf-8')}")
|
||||||
return None
|
return None
|
||||||
search_res = json.loads(response.content.decode("utf-8"))
|
search_res = json.loads(response.content.decode("utf-8"))
|
||||||
return search_res
|
return search_res
|
||||||
@ -81,7 +80,7 @@ def convert_tg_link_to_proxy_link(link: str) -> str:
|
|||||||
request_url = background_server_url + link_convert_api_route + f"?link={link}"
|
request_url = background_server_url + link_convert_api_route + f"?link={link}"
|
||||||
response = requests.get(request_url)
|
response = requests.get(request_url)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
logging.warning(f"link convert fail: {response.status_code}, {response.content.decode('utf-8')}")
|
print(f"link convert fail: {response.status_code}, {response.content.decode('utf-8')}")
|
||||||
return ""
|
return ""
|
||||||
response_js = json.loads(response.content.decode("utf-8"))
|
response_js = json.loads(response.content.decode("utf-8"))
|
||||||
return response_js["url"]
|
return response_js["url"]
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import logging
|
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
import streamlit as st
|
import streamlit as st
|
||||||
@ -26,13 +25,13 @@ def loop():
|
|||||||
st.query_params.search_res_limit = "10"
|
st.query_params.search_res_limit = "10"
|
||||||
|
|
||||||
@st.experimental_fragment
|
@st.experimental_fragment
|
||||||
def search_container():
|
def search_container(keyword, res_limit, isorder):
|
||||||
if "chat_dict" not in st.session_state:
|
if "chat_dict" not in st.session_state:
|
||||||
wait_client_ready = st.empty()
|
wait_client_ready = st.empty()
|
||||||
wait_client_ready.status("Server Initializing")
|
wait_client_ready.status("Server Initializing")
|
||||||
st.session_state.chat_dict = api.get_white_list_chat_dict()
|
st.session_state.chat_dict = api.get_white_list_chat_dict()
|
||||||
wait_client_ready.empty()
|
wait_client_ready.empty()
|
||||||
st.query_params.search_key = st.text_input("**搜索🔎**", value=st.query_params.search_key)
|
st.query_params.search_key = st.text_input("**搜索🔎**", value=keyword)
|
||||||
chat_list = []
|
chat_list = []
|
||||||
for _, chat_info in st.session_state.chat_dict.items():
|
for _, chat_info in st.session_state.chat_dict.items():
|
||||||
chat_list.append(chat_info["title"])
|
chat_list.append(chat_info["title"])
|
||||||
@ -40,17 +39,20 @@ def loop():
|
|||||||
columns = st.columns([4, 4, 1])
|
columns = st.columns([4, 4, 1])
|
||||||
with columns[0]:
|
with columns[0]:
|
||||||
st.query_params.search_res_limit = str(
|
st.query_params.search_res_limit = str(
|
||||||
st.number_input(
|
st.number_input("**每页结果**", min_value=1, max_value=100, value=res_limit, format="%d")
|
||||||
"**每页结果**", min_value=1, max_value=100, value=int(st.query_params.search_res_limit), format="%d"
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
with columns[1]:
|
with columns[1]:
|
||||||
st.session_state.chat_select_list = st.multiselect("**Search in**", chat_list, default=chat_list)
|
st.session_state.chat_select_list = st.multiselect("**Search in**", chat_list, default=chat_list)
|
||||||
with columns[2]:
|
with columns[2]:
|
||||||
st.text("排序")
|
st.text("排序")
|
||||||
st.query_params.is_order = st.toggle("顺序", value=utils.strtobool(st.query_params.is_order))
|
st.query_params.is_order = st.toggle("顺序", value=isorder)
|
||||||
|
|
||||||
search_container()
|
search_limit_container = st.container()
|
||||||
|
with search_limit_container:
|
||||||
|
keyword = st.query_params.search_key
|
||||||
|
res_limit = int(st.query_params.search_res_limit)
|
||||||
|
isorder = utils.strtobool(st.query_params.is_order)
|
||||||
|
search_container(keyword, res_limit, isorder)
|
||||||
|
|
||||||
search_clicked = st.button("Search", type="primary", use_container_width=True)
|
search_clicked = st.button("Search", type="primary", use_container_width=True)
|
||||||
if not st.session_state.force_skip and (
|
if not st.session_state.force_skip and (
|
||||||
@ -77,7 +79,7 @@ def loop():
|
|||||||
if chat_info["title"] in st.session_state.chat_select_list:
|
if chat_info["title"] in st.session_state.chat_select_list:
|
||||||
search_chat_id_list.append(int(chat_id))
|
search_chat_id_list.append(int(chat_id))
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logging.warning(f"{err=},{traceback.format_exc()}")
|
print(f"{err=},{traceback.format_exc()}")
|
||||||
search_res = api.search_database_by_keyword(
|
search_res = api.search_database_by_keyword(
|
||||||
st.query_params.search_key, search_chat_id_list, offset_index, search_limit, is_order
|
st.query_params.search_key, search_chat_id_list, offset_index, search_limit, is_order
|
||||||
)
|
)
|
||||||
@ -165,8 +167,8 @@ def loop():
|
|||||||
download_url = v["download_url"]
|
download_url = v["download_url"]
|
||||||
download_url += f"?sign={sign_token}"
|
download_url += f"?sign={sign_token}"
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
msg_ctx = f"{err=}\r\n\r\n" + msg_ctx
|
msg_ctx = f"Not a filelike~\r\n\r\n" + msg_ctx
|
||||||
logging.warning(f"{err=},{traceback.format_exc()}")
|
print(f"Not a filelike {err=},{traceback.format_exc()}")
|
||||||
url_list.append(download_url)
|
url_list.append(download_url)
|
||||||
media_file_res_container(i, msg_ctx, file_name, file_size, download_url, src_link, mime_type)
|
media_file_res_container(i, msg_ctx, file_name, file_size, download_url, src_link, mime_type)
|
||||||
page_switch_render()
|
page_switch_render()
|
||||||
|
27
start.py
27
start.py
@ -10,13 +10,15 @@ from uvicorn.config import LOGGING_CONFIG
|
|||||||
import configParse
|
import configParse
|
||||||
from backend import backendapp
|
from backend import backendapp
|
||||||
|
|
||||||
if not os.path.exists(os.path.dirname(__file__) + '/logs'):
|
if not os.path.exists(os.path.dirname(__file__) + "/logs"):
|
||||||
os.mkdir(os.path.dirname(__file__) + '/logs')
|
os.mkdir(os.path.dirname(__file__) + "/logs")
|
||||||
with open('logging_config.yaml', 'r') as f:
|
with open("logging_config.yaml", "r") as f:
|
||||||
logging.config.dictConfig(yaml.safe_load(f.read()))
|
logging.config.dictConfig(yaml.safe_load(f.read()))
|
||||||
|
|
||||||
LOGGING_CONFIG["formatters"]["default"]["fmt"] = "[%(levelname)s] %(asctime)s [uvicorn.default]:%(message)s"
|
LOGGING_CONFIG["formatters"]["default"]["fmt"] = "[%(levelname)s] %(asctime)s [uvicorn.default]:%(message)s"
|
||||||
LOGGING_CONFIG["formatters"]["access"]["fmt"] = '[%(levelname)s] %(asctime)s [uvicorn.access]:%(client_addr)s - "%(request_line)s" %(status_code)s'
|
LOGGING_CONFIG["formatters"]["access"][
|
||||||
|
"fmt"
|
||||||
|
] = '[%(levelname)s] %(asctime)s [uvicorn.access]:%(client_addr)s - "%(request_line)s" %(status_code)s'
|
||||||
LOGGING_CONFIG["handlers"]["timed_rotating_api_file"] = {
|
LOGGING_CONFIG["handlers"]["timed_rotating_api_file"] = {
|
||||||
"class": "logging.handlers.TimedRotatingFileHandler",
|
"class": "logging.handlers.TimedRotatingFileHandler",
|
||||||
"filename": "logs/app.log",
|
"filename": "logs/app.log",
|
||||||
@ -32,23 +34,32 @@ LOGGING_CONFIG["loggers"]["uvicorn.access"]["handlers"].append("timed_rotating_a
|
|||||||
|
|
||||||
logger = logging.getLogger(__file__.split("/")[-1])
|
logger = logging.getLogger(__file__.split("/")[-1])
|
||||||
|
|
||||||
|
for handle in logger.handlers:
|
||||||
|
if isinstance(handle, logging.handlers.TimedRotatingFileHandler):
|
||||||
|
handle.suffix = "%Y-%m-%d.log"
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
param = configParse.get_TgToFileSystemParameter()
|
param = configParse.get_TgToFileSystemParameter()
|
||||||
|
|
||||||
async def run_web_server():
|
async def run_web_server():
|
||||||
cmd = f"streamlit run {os.getcwd()}/frontend/home.py --server.port {param.web.port}"
|
cmd = f"streamlit run {os.getcwd()}/frontend/home.py --server.port {param.web.port}"
|
||||||
proc = await asyncio.create_subprocess_shell(cmd, cwd=f"{os.path.dirname(__file__)}/frontend", stdout=asyncio.subprocess.PIPE,
|
proc = await asyncio.create_subprocess_shell(
|
||||||
stderr=asyncio.subprocess.PIPE)
|
cmd, cwd=f"{os.path.dirname(__file__)}/frontend", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE
|
||||||
async def loop_get_cli_pipe(p, suffix = ""):
|
)
|
||||||
|
|
||||||
|
async def loop_get_cli_pipe(p, suffix=""):
|
||||||
while True:
|
while True:
|
||||||
stdp = await p.readline()
|
stdp = await p.readline()
|
||||||
if stdp:
|
if stdp:
|
||||||
logger.info(f"[web:{suffix}]{stdp.decode()[:-1]}")
|
logger.info(f"[web:{suffix}]{stdp.decode()[:-1]}")
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|
||||||
stdout_task = asyncio.create_task(loop_get_cli_pipe(proc.stdout, "out"))
|
stdout_task = asyncio.create_task(loop_get_cli_pipe(proc.stdout, "out"))
|
||||||
stderr_task = asyncio.create_task(loop_get_cli_pipe(proc.stderr, "err"))
|
stderr_task = asyncio.create_task(loop_get_cli_pipe(proc.stderr, "err"))
|
||||||
await asyncio.gather(*[stdout_task, stderr_task])
|
await asyncio.gather(*[stdout_task, stderr_task])
|
||||||
logger.info(f'[{cmd!r} exited with {proc.returncode}]')
|
logger.info(f"[{cmd!r} exited with {proc.returncode}]")
|
||||||
|
|
||||||
if param.web.enable:
|
if param.web.enable:
|
||||||
ret = os.fork()
|
ret = os.fork()
|
||||||
if ret == 0:
|
if ret == 0:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user