TgToFileSystem/frontend/remote_api.py
2024-06-02 14:59:09 +08:00

59 lines
1.9 KiB
Python

import sys
import os
import json
import logging
import requests
sys.path.append(os.getcwd() + "/../")
import configParse
logger = logging.getLogger(__file__.split("/")[-1])
param = configParse.get_TgToFileSystemParameter()
background_server_url = f"{param.base.exposed_url}"
search_api_route = "/tg/api/v1/file/search"
status_api_route = "/tg/api/v1/client/status"
login_api_route = "/tg/api/v1/client/login"
def login_client_by_qr_code_url() -> str:
request_url = background_server_url + login_api_route
response = requests.get(request_url)
if response.status_code != 200:
logger.warning(f"Could not login, err:{response.status_code}, {response.content.decode('utf-8')}")
return None
url_info = json.loads(response.content.decode("utf-8"))
return url_info.get("url")
def get_backend_client_status() -> dict[str, any]:
request_url = background_server_url + status_api_route
response = requests.get(request_url)
if response.status_code != 200:
logger.warning(f"get_status, backend is running? err:{response.status_code}, {response.content.decode('utf-8')}")
return None
return json.loads(response.content.decode("utf-8"))
def search_database_by_keyword(keyword: str, offset: int, limit: int, is_order: bool) -> list[any] | None:
request_url = background_server_url + search_api_route
req_body = {
"token": param.web.token,
"search": keyword,
"chat_id": param.web.chat_id[0],
"index": offset,
"length": limit,
"refresh": False,
"inner": False,
"inc": is_order,
}
response = requests.post(request_url, data=json.dumps(req_body))
if response.status_code != 200:
logger.warning(f"search_database_by_keyword err:{response.status_code}, {response.content.decode('utf-8')}")
return None
search_res = json.loads(response.content.decode("utf-8"))
return search_res