From f48a35ad173ac03e92c6de6f30dd8e3aca0121cf Mon Sep 17 00:00:00 2001 From: hehesheng Date: Sat, 1 Jun 2024 15:15:33 +0800 Subject: [PATCH] fix: fix some bugs & optimze ui --- backend/TgFileSystemClient.py | 6 +- backend/UserManager.py | 13 ++-- backend/api.py | 22 +++++- frontend/home.py | 142 ++++++++++++++++++---------------- frontend/static/404.webm | Bin 0 -> 117238 bytes frontend/utils.py | 14 ++++ start.py | 30 ++++--- 7 files changed, 135 insertions(+), 92 deletions(-) create mode 100644 frontend/static/404.webm create mode 100644 frontend/utils.py diff --git a/backend/TgFileSystemClient.py b/backend/TgFileSystemClient.py index de145b4..bc26b79 100644 --- a/backend/TgFileSystemClient.py +++ b/backend/TgFileSystemClient.py @@ -299,8 +299,8 @@ class TgFileSystemClient(object): self.worker_routines.append(worker_routine) if len(self.client_param.whitelist_chat) > 0: self._register_update_event(from_users=self.client_param.whitelist_chat) - # await self.task_queue.put((self._get_unique_task_id(), self._cache_whitelist_chat())) - await self.task_queue.put((self._get_unique_task_id(), self._cache_whitelist_chat2())) + await self.task_queue.put((self._get_unique_task_id(), self._cache_whitelist_chat())) + # await self.task_queue.put((self._get_unique_task_id(), self._cache_whitelist_chat2())) async def stop(self) -> None: await self.client.loop.create_task(self._cancel_tasks()) @@ -322,6 +322,7 @@ class TgFileSystemClient(object): if len(self.db.get_msg_by_unique_id(self.db.generate_unique_id_by_msg(self.me, msg))) != 0: continue self.db.insert_by_message(self.me, msg) + logger.info(f"{chat_id} quit cache task.") async def _cache_whitelist_chat(self): for chat_id in self.client_param.whitelist_chat: @@ -343,6 +344,7 @@ class TgFileSystemClient(object): else: async for msg in self.client.iter_messages(chat_id): self.db.insert_by_message(self.me, msg) + logger.info(f"{chat_id} quit cache task.") @_acheck_before_call diff --git a/backend/UserManager.py b/backend/UserManager.py index 6c51d4a..3c2c5d3 100644 --- a/backend/UserManager.py +++ b/backend/UserManager.py @@ -55,7 +55,7 @@ class UserManager(object): def get_all_msg_by_chat_id(self, chat_id: int) -> list[any]: res = self.cur.execute( - "SELECT * FROM message WHERE chat_id == ? ORDER BY date_time DESC", (chat_id,)) + "SELECT * FROM message WHERE chat_id = ? ORDER BY date_time DESC", (chat_id,)) return res.fetchall() def get_msg_by_chat_id_and_keyword(self, chat_id: int, keyword: str, limit: int = 10, offset: int = 0, inc: bool = False, ignore_case: bool = False) -> list[any]: @@ -63,23 +63,24 @@ class UserManager(object): if ignore_case: keyword_condition = "LOWER(msg_ctx) LIKE LOWER('%{key}%') OR LOWER(file_name) LIKE LOWER('%{key}%')" keyword_condition = keyword_condition.format(key=keyword) - execute_script = f"SELECT * FROM message WHERE chat_id == {chat_id} AND ({keyword_condition}) ORDER BY date_time {'' if inc else 'DESC '}LIMIT {limit} OFFSET {offset}" + execute_script = f"SELECT * FROM message WHERE chat_id = {chat_id} AND ({keyword_condition}) ORDER BY date_time {'' if inc else 'DESC '}LIMIT {limit} OFFSET {offset}" + logger.info(f"{execute_script=}") res = self.cur.execute(execute_script) return res def get_oldest_msg_by_chat_id(self, chat_id: int) -> list[any]: res = self.cur.execute( - "SELECT * FROM message WHERE chat_id == ? ORDER BY date_time LIMIT 1", (chat_id,)) + "SELECT * FROM message WHERE chat_id = ? ORDER BY date_time LIMIT 1", (chat_id,)) return res.fetchall() def get_newest_msg_by_chat_id(self, chat_id: int) -> list[any]: res = self.cur.execute( - "SELECT * FROM message WHERE chat_id == ? ORDER BY date_time DESC LIMIT 1", (chat_id,)) + "SELECT * FROM message WHERE chat_id = ? ORDER BY date_time DESC LIMIT 1", (chat_id,)) return res.fetchall() def get_msg_by_unique_id(self, unique_id: str) -> list[any]: res = self.cur.execute( - "SELECT * FROM message WHERE unique_id == ? ORDER BY date_time DESC LIMIT 1", (unique_id,)) + "SELECT * FROM message WHERE unique_id = ? ORDER BY date_time DESC LIMIT 1", (unique_id,)) return res.fetchall() @unique @@ -178,7 +179,7 @@ class UserManager(object): "CREATE TABLE user(client_id primary key, username, phone, tg_user_id, last_login_time)") if len(self.cur.execute("SELECT name FROM sqlite_master WHERE name='message'").fetchall()) == 0: self.cur.execute( - "CREATE TABLE message(unique_id varchar(64) primary key, user_id int NOT NULL, chat_id int NOT NULL, msg_id int NOT NULL, msg_type varchar(64), msg_ctx, mime_type, file_name, msg_js, date_time int)") + "CREATE TABLE message(unique_id varchar(64) primary key, user_id int NOT NULL, chat_id int NOT NULL, msg_id int NOT NULL, msg_type varchar(64), msg_ctx text, mime_type text, file_name text, msg_js text, date_time int NOT NULL)") if __name__ == "__main__": diff --git a/backend/api.py b/backend/api.py index af2434a..a195609 100644 --- a/backend/api.py +++ b/backend/api.py @@ -2,6 +2,7 @@ import asyncio import json import os import logging +from urllib.parse import quote import uvicorn from fastapi import FastAPI, status, Request @@ -22,6 +23,9 @@ clients_mgr: TgFileSystemClientManager = None @asynccontextmanager async def lifespan(app: FastAPI): + for handler in logging.getLogger().handlers: + if isinstance(handler, logging.handlers.TimedRotatingFileHandler): + handler.suffix = "%Y-%m-%d" global clients_mgr param = configParse.get_TgToFileSystemParameter() clients_mgr = TgFileSystemClientManager(param) @@ -61,11 +65,15 @@ async def search_tg_file_list(body: TgToFileListRequestBody): msg_info = json.loads(item) file_name = apiutils.get_message_media_name_from_dict(msg_info) msg_info['file_name'] = file_name - msg_info['download_url'] = f"{param.base.exposed_url}/tg/api/v1/file/get/{body.chat_id}/{msg_info.get('id')}/{file_name}?sign={body.token}" + msg_info['download_url'] = f"{param.base.exposed_url}/tg/api/v1/file/get/{body.chat_id}/{msg_info.get('id')}/{file_name}" + msg_info['src_tg_link'] = f"https://t.me/c/1216816802/21206" res_dict.append(msg_info) + client_dict = json.loads(client.to_json()) + client_dict['sign'] = body.token + response_dict = { - "client": json.loads(client.to_json()), + "client": client_dict, "type": res_type, "length": len(res_dict), "list": res_dict, @@ -141,7 +149,7 @@ async def get_tg_file_media_stream(token: str, cid: int, mid: int, request: Requ maybe_file_type = mime_type.split("/")[-1] file_name = f"{chat_id}.{msg_id}.{maybe_file_type}" headers[ - "Content-Disposition"] = f'inline; filename="{file_name}"' + "Content-Disposition"] = f"inline; filename*=utf-8'{quote(file_name)}'" if range_header is not None: start, end = apiutils.get_range_header(range_header, file_size) @@ -183,7 +191,13 @@ async def login_new_tg_file_client(): @app.get("/tg/api/v1/client/link_convert") @apiutils.atimeit -async def convert_tg_msg_link_media_stream(link: str, token: str): +async def convert_tg_msg_link_media_stream(link: str, sign: str): + raise NotImplementedError + + +@app.get("/tg/api/v1/client/profile_photo") +@apiutils.atimeit +async def get_tg_chat_profile_photo(chat_id: int, sign: str): raise NotImplementedError diff --git a/frontend/home.py b/frontend/home.py index bdfc8b1..88ae868 100644 --- a/frontend/home.py +++ b/frontend/home.py @@ -2,72 +2,68 @@ import sys import os import json -sys.path.append(os.getcwd()) +sys.path.append(os.getcwd() + "/../") import streamlit as st import qrcode import pandas import requests import configParse +import utils # qr = qrcode.make("https://www.baidu.com") # st.image(qrcode.make("https://www.baidu.com").get_image()) +param = configParse.get_TgToFileSystemParameter() +background_server_url = f"{param.base.exposed_url}/tg/api/v1/file/search" st.set_page_config(page_title="TgToolbox", page_icon='🕹️', layout='wide') if 'page_index' not in st.session_state: st.session_state.page_index = 1 -if 'search_input' not in st.session_state: - st.session_state.search_input = "" -if 'last_search_input' not in st.session_state: - st.session_state.last_search_input = "" -if 'search_clicked' not in st.session_state: - st.session_state.search_clicked = False -if 'is_order' not in st.session_state: - st.session_state.is_order = False - -param = configParse.get_TgToFileSystemParameter() -background_server_url = f"{param.base.exposed_url}/tg/api/v1/file/search" +if 'force_skip' not in st.session_state: + st.session_state.force_skip = False +if 'search_key' not in st.query_params: + st.query_params.search_key = "" +if 'is_order' not in st.query_params: + st.query_params.is_order = False +if 'search_res_limit' not in st.query_params: + st.query_params.search_res_limit = "10" @st.experimental_fragment -def search_input_container(): - st.session_state.search_input = st.text_input("搜索🔎", value=st.query_params.get( - 'search') if st.query_params.get('search') is not None else "") +def search_container(): + st.query_params.search_key = st.text_input("**搜索🔎**", value=st.query_params.search_key) + columns = st.columns([7, 1]) + with columns[0]: + st.query_params.search_res_limit = str(st.number_input( + "**每页结果**", min_value=1, max_value=100, value=int(st.query_params.search_res_limit), format="%d")) + with columns[1]: + st.text("排序") + st.query_params.is_order = st.toggle("顺序", value=utils.strtobool(st.query_params.is_order)) +search_container() -search_input_container() - -col1, col2 = st.columns(2) -search_res_limit = st.number_input( - "每页结果", min_value=1, max_value=100, value=10, format="%d") -columns = st.columns([7, 1]) -with columns[0]: - if st.button("Search"): - st.session_state.page_index = 1 - st.session_state.search_clicked = True -with columns[1]: - st.session_state.is_order = st.checkbox("顺序") - -if st.session_state.search_input == "" or (st.session_state.search_input != st.session_state.last_search_input and not st.session_state.search_clicked): - st.session_state.search_clicked = False +search_clicked = st.button('Search', type='primary', use_container_width=True) +if not st.session_state.force_skip and (not search_clicked or st.query_params.search_key == "" or st.query_params.search_key is None): st.stop() -st.session_state.last_search_input = st.session_state.search_input -st.query_params.search = st.session_state.search_input - +if not st.session_state.force_skip: + st.session_state.page_index = 1 +if st.session_state.force_skip: + st.session_state.force_skip = False @st.experimental_fragment def do_search_req(): - offset_index = (st.session_state.page_index - 1) * search_res_limit - is_order = st.session_state.is_order + search_limit = int(st.query_params.search_res_limit) + offset_index = (st.session_state.page_index - 1) * search_limit + is_order = utils.strtobool(st.query_params.is_order) req_body = { "token": param.web.token, - "search": f"{st.session_state.search_input}", + "search": f"{st.query_params.search_key}", "chat_id": param.web.chat_id[0], "index": offset_index, - "length": search_res_limit, + "length": search_limit, "refresh": False, "inner": False, "inc": is_order, @@ -81,11 +77,11 @@ def do_search_req(): def page_switch_render(): columns = st.columns(3) with columns[0]: - pre_button = st.button("Prev", use_container_width=True) - if pre_button: + if st.button("Prev", use_container_width=True): st.session_state.page_index = st.session_state.page_index - 1 st.session_state.page_index = max( st.session_state.page_index, 1) + st.session_state.force_skip = True st.rerun() with columns[1]: # st.text(f"{st.session_state.page_index}") @@ -93,31 +89,40 @@ def do_search_req(): f"

{st.session_state.page_index}

", unsafe_allow_html=True) # st.markdown(f"", unsafe_allow_html=True) with columns[2]: - next_button = st.button("Next", use_container_width=True) - if next_button: + if st.button("Next", use_container_width=True): st.session_state.page_index = st.session_state.page_index + 1 + st.session_state.force_skip = True st.rerun() - def media_file_res_container(index: int, msg_ctx: str, file_name: str, file_size: str, url: str): + def media_file_res_container(index: int, msg_ctx: str, file_name: str, file_size: int, url: str): + file_size_str = f"{file_size/1024/1024:.2f}MB" container = st.container() container_columns = container.columns([1, 99]) st.session_state.search_res_select_list[index] = container_columns[0].checkbox( - url, label_visibility='collapsed') + "search_res_checkbox_" + str(index), label_visibility='collapsed') - expender_title = f"{(msg_ctx if len(msg_ctx) < 103 else msg_ctx[:100] + '...')} — *{file_size}*" + expender_title = f"{(msg_ctx if len(msg_ctx) < 103 else msg_ctx[:100] + '...')} — *{file_size_str}*" popover = container_columns[1].popover(expender_title, use_container_width=True) popover_columns = popover.columns([1, 3]) - popover_columns[0].video(url) + if url: + popover_columns[0].video(url) + else: + popover_columns[0].video('./static/404.webm', format="video/webm") popover_columns[1].markdown(f'{msg_ctx}') popover_columns[1].markdown(f'**{file_name}**') - popover_columns[1].markdown(f'文件大小:*{file_size}*') - popover_columns[1].page_link(url, label='Download Link', icon='⬇️') + popover_columns[1].markdown(f'文件大小:*{file_size_str}*') + popover_columns[1].link_button('⬇️Download Link', url) @st.experimental_fragment - def show_search_res(): - search_res_list = search_res['list'] - if len(search_res_list) == 0: + def show_search_res(res: dict[str, any]): + sign_token = "" + try: + sign_token = res['client']['sign'] + except Exception as err: + pass + search_res_list = res.get('list') + if search_res_list is None or len(search_res_list) == 0: st.info("No result") page_switch_render() st.stop() @@ -125,28 +130,29 @@ def do_search_req(): url_list = [] for i in range(len(search_res_list)): v = search_res_list[i] - msg_ctx = v['message'] - doc = None + msg_ctx= "" + file_name = None file_size = 0 - msg_id = str(v['id']) - download_url = v['download_url'] - url_list.append(download_url) + download_url = "" try: + msg_ctx = v['message'] + msg_id = str(v['id']) doc = v['media']['document'] file_size = doc['size'] - except: - pass - file_size_str = f"{file_size/1024/1024:.2f}MB" - file_name = None - if doc is not None: - for attr in doc['attributes']: - file_name = attr.get('file_name') - if file_name != "" and file_name is not None: - break - if file_name == "" or file_name is None: - file_name = "Can not get file name" + if doc is not None: + for attr in doc['attributes']: + file_name = attr.get('file_name') + if file_name != "" and file_name is not None: + break + if file_name == "" or file_name is None: + file_name = "Can not get file name" + download_url = v['download_url'] + download_url += f'?sign={sign_token}' + url_list.append(download_url) + except Exception as err: + msg_ctx = f"{err=}\r\n\r\n" + msg_ctx media_file_res_container( - i, msg_ctx, file_name, file_size_str, download_url) + i, msg_ctx, file_name, file_size, download_url) page_switch_render() show_text = "" @@ -156,7 +162,7 @@ def do_search_req(): show_text = show_text + url_list[i] + '\n' st.text_area("链接", value=show_text) - show_search_res() + show_search_res(search_res) do_search_req() diff --git a/frontend/static/404.webm b/frontend/static/404.webm new file mode 100644 index 0000000000000000000000000000000000000000..77752bc853a9f1374c46cb631533b4f808e53deb GIT binary patch literal 117238 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 -pe= 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 literal 0 HcmV?d00001 diff --git a/frontend/utils.py b/frontend/utils.py new file mode 100644 index 0000000..d4d0cb6 --- /dev/null +++ b/frontend/utils.py @@ -0,0 +1,14 @@ + +def strtobool (val): + """Convert a string representation of truth to true (1) or false (0). + True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values + are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if + 'val' is anything else. + """ + val = val.lower() + if val in ('y', 'yes', 't', 'true', 'on', '1'): + return 1 + elif val in ('n', 'no', 'f', 'false', 'off', '0'): + return 0 + else: + raise ValueError("invalid truth value %r" % (val,)) diff --git a/start.py b/start.py index 45bc7f0..ab3e6dc 100644 --- a/start.py +++ b/start.py @@ -14,13 +14,10 @@ if not os.path.exists(os.path.dirname(__file__) + '/logs'): os.mkdir(os.path.dirname(__file__) + '/logs') with open('logging_config.yaml', 'r') as f: logging.config.dictConfig(yaml.safe_load(f.read())) -for handler in logging.getLogger().handlers: - if isinstance(handler, logging.handlers.TimedRotatingFileHandler): - handler.suffix = "%Y-%m-%d" 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["handlers"]["timed_rotating_file"] = { +LOGGING_CONFIG["handlers"]["timed_rotating_api_file"] = { "class": "logging.handlers.TimedRotatingFileHandler", "filename": "logs/app.log", "when": "midnight", @@ -30,8 +27,12 @@ LOGGING_CONFIG["handlers"]["timed_rotating_file"] = { "formatter": "default", "encoding": "utf-8", } -LOGGING_CONFIG["loggers"]["uvicorn"]["handlers"].append("timed_rotating_file") -LOGGING_CONFIG["loggers"]["uvicorn.access"]["handlers"].append("timed_rotating_file") +LOGGING_CONFIG["loggers"]["uvicorn"]["handlers"].append("timed_rotating_api_file") +LOGGING_CONFIG["loggers"]["uvicorn.access"]["handlers"].append("timed_rotating_api_file") + +for handler in logging.getLogger().handlers: + if isinstance(handler, logging.handlers.TimedRotatingFileHandler): + handler.suffix = "%Y-%m-%d" logger = logging.getLogger(__file__.split("/")[-1]) @@ -39,14 +40,19 @@ if __name__ == "__main__": param = configParse.get_TgToFileSystemParameter() async def run_web_server(): cmd = f"streamlit run {os.getcwd()}/frontend/home.py --server.port {param.web.port}" - proc = await asyncio.create_subprocess_shell(cmd, stdout=asyncio.subprocess.PIPE, + proc = await asyncio.create_subprocess_shell(cmd, cwd=f"{os.path.dirname(__file__)}/frontend", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) - stdout, stderr = await proc.communicate() + async def loop_get_cli_pipe(p, suffix = ""): + while True: + stdp = await p.readline() + if stdp: + logger.info(f"[web:{suffix}]{stdp.decode()[:-1]}") + else: + break + stdout_task = asyncio.create_task(loop_get_cli_pipe(proc.stdout, "out")) + stderr_task = asyncio.create_task(loop_get_cli_pipe(proc.stderr, "err")) + await asyncio.gather(*[stdout_task, stderr_task]) logger.info(f'[{cmd!r} exited with {proc.returncode}]') - if stdout: - logger.info(f'[stdout]\n{stdout.decode()}') - if stderr: - logger.info(f'[stderr]\n{stderr.decode()}') if param.web.enable: ret = os.fork() if ret == 0: