From f9e1ffe04e526c22df5760511c2a6aea073bf981 Mon Sep 17 00:00:00 2001 From: liang-work Date: Sat, 13 Sep 2025 17:13:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9SNAPI=E5=86=85=E9=83=A8?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=EF=BC=8C=E4=BF=AE=E6=94=B9UA=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectCfg.py | 5 +---- core/CallServerAPIs.py | 4 ++-- core/DBServices.py | 17 +++++++++++++---- core/LoginServices.py | 5 +++-- core/PyWebPageAPI.py | 10 +++++++++- core/SNAPI/CallServer.py | 3 ++- core/SNAPI/Chat.py | 2 +- core/SNAPI/Poll.py | 2 +- core/SNAPI/Post.py | 2 +- core/SNAPI/PostCategory.py | 2 +- core/SNAPI/PostTag.py | 2 +- core/SNAPI/Publisher.py | 2 +- core/SNAPI/Realm.py | 2 +- core/SNAPI/RealtimeCall.py | 2 +- core/SNAPI/Sticker.py | 2 +- core/SNAPI/WebArticle.py | 2 +- core/SNAPI/WebFeed.py | 2 +- core/SNAPI/WebFeedPublic.py | 2 +- core/SNAPI/WebReader.py | 2 +- core/WebViewWIndow.py | 2 +- 20 files changed, 44 insertions(+), 28 deletions(-) diff --git a/ProjectCfg.py b/ProjectCfg.py index defdb96..168c804 100644 --- a/ProjectCfg.py +++ b/ProjectCfg.py @@ -1,5 +1,3 @@ -import platform - # 项目配置 PROFECT_NAME : str = 'SolianForDesktop' PROFECT_VERSION : str = '1.0(alpha)' @@ -10,5 +8,4 @@ WINDOW_HEIGHT : int = 500 PYTHON_VERSION_MIN : tuple[int,int] = (3, 7) PYTHON_VERSION_MAX : tuple[int,int] = (0, 0) LIB_LIST : list[str] = ['flask'] -DOMAIN : str = 'https://solian.app/api' -UA : str = f"SolianForPythonApp/0.000.001 ({platform.system()})" \ No newline at end of file +DOMAIN : str = 'https://solian.app/api' \ No newline at end of file diff --git a/core/CallServerAPIs.py b/core/CallServerAPIs.py index 3692264..86eb1a3 100644 --- a/core/CallServerAPIs.py +++ b/core/CallServerAPIs.py @@ -1,6 +1,6 @@ from ProjectCfg import DOMAIN -from SNAPI.CallServer import _make_request -from SNAPI import * +from .SNAPI.CallServer import _make_request +from .SNAPI import * ###=========================活动API================================= diff --git a/core/DBServices.py b/core/DBServices.py index 8dad4eb..4309b18 100644 --- a/core/DBServices.py +++ b/core/DBServices.py @@ -1,9 +1,18 @@ import sqlite3 def DBStart(): - conn = sqlite3.connect('./dbfile/App.db') + conn = sqlite3.connect('./UserData/App.db') c = conn.cursor() - c.execute('''CREATE TABLE IF NOT EXISTS chat - (id TEXT PRIMARY KEY, accountid TEXT, name TEXT, avatar TEXT, lastmessage TEXT, lastmessagetime TEXT)''') + +def DBClose(): + conn = sqlite3.connect('./UserData/App.db') + c = conn.cursor() + conn.close() + +def DBRunSQL(sql): + conn = sqlite3.connect('./UserData/App.db') + c = conn.cursor() + c.executescript(sql) conn.commit() - conn.close() \ No newline at end of file + conn.close() + return c.fetchall() \ No newline at end of file diff --git a/core/LoginServices.py b/core/LoginServices.py index e598c61..89504e8 100644 --- a/core/LoginServices.py +++ b/core/LoginServices.py @@ -3,6 +3,7 @@ import json import uuid import platform import hashlib +from . import PyWebPageAPI class AuthClient: def __init__(self, base_url): @@ -14,7 +15,7 @@ class AuthClient: self.factors = [] self.selected_factor_id = None self.password = '' - self.user_store = f"SolianForPythonApp/0.000.001({platform.system()})" # 您可以自定义此User-Agent字符串 + self.user_store = f"SolianForPythonApp/0.0.1(A)({PyWebPageAPI.GetDeviceInfo()})" # 您可以自定义此User-Agent字符串 self.device_id = self.user_store def generate_device_id(self): @@ -201,7 +202,7 @@ class AuthClient: # 示例调用 if __name__ == "__main__": auth_client = AuthClient(base_url='https://api.solian.app/id') - account_identifier = 'nanci'#你的账号 + account_identifier = ''#你的账号 selected_factor_id = "enter-code" # 用户需要选择一个因素 password = ''#你的密码 # 第一步:检查账户有效性 diff --git a/core/PyWebPageAPI.py b/core/PyWebPageAPI.py index 39f4ba5..c807d27 100644 --- a/core/PyWebPageAPI.py +++ b/core/PyWebPageAPI.py @@ -75,4 +75,12 @@ def CheckPortAvailable(port : int) -> bool: import socket with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: return s.connect_ex(('localhost', port)) != 0 - return False \ No newline at end of file + return False + +def GetDeviceInfo() -> str: + """ + 获取设备信息 + :return: + """ + import platform + return platform.system() + platform.version() + platform.machine() \ No newline at end of file diff --git a/core/SNAPI/CallServer.py b/core/SNAPI/CallServer.py index 99ab109..9da7b94 100644 --- a/core/SNAPI/CallServer.py +++ b/core/SNAPI/CallServer.py @@ -2,8 +2,9 @@ import requests import json from requests.exceptions import RequestException import platform +from . import PyWebPageAPI -UA = f"SolianForPythonApp/0.000.001 ({platform.system()})" +UA = f"SolianForPythonApp/0.0.1(A) ({PyWebPageAPI.GetDeviceInfo()})" def _make_request(method: str, url: str, headers: dict, params: dict = None, normal_codes: list = [200], request_body: dict = None) -> dict: """内部辅助函数,用于发送HTTP请求并处理响应""" diff --git a/core/SNAPI/Chat.py b/core/SNAPI/Chat.py index 36757a3..fe317cb 100644 --- a/core/SNAPI/Chat.py +++ b/core/SNAPI/Chat.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request from typing import List,Any,Optional,Dict ###=========================聊天API================================= diff --git a/core/SNAPI/Poll.py b/core/SNAPI/Poll.py index fe2a5f3..b7cc256 100644 --- a/core/SNAPI/Poll.py +++ b/core/SNAPI/Poll.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request from typing import List,Any,Optional,Dict ###==========================投票功能============================ diff --git a/core/SNAPI/Post.py b/core/SNAPI/Post.py index 9e1a2e8..0906b26 100644 --- a/core/SNAPI/Post.py +++ b/core/SNAPI/Post.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request from typing import List,Any,Optional,Dict ###==========================帖子管理============================ def GetFeaturedPosts(Authorization: str) -> dict: diff --git a/core/SNAPI/PostCategory.py b/core/SNAPI/PostCategory.py index 648f105..9f1f443 100644 --- a/core/SNAPI/PostCategory.py +++ b/core/SNAPI/PostCategory.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request from typing import Optional ###==========================帖子分类管理============================ diff --git a/core/SNAPI/PostTag.py b/core/SNAPI/PostTag.py index 4d2d284..d040237 100644 --- a/core/SNAPI/PostTag.py +++ b/core/SNAPI/PostTag.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request from typing import Optional ###==========================帖子标签管理============================ diff --git a/core/SNAPI/Publisher.py b/core/SNAPI/Publisher.py index 1a76fa6..e1fdf91 100644 --- a/core/SNAPI/Publisher.py +++ b/core/SNAPI/Publisher.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request from typing import Optional ###==========================发布者管理============================ def GetPublisher(Authorization: str, name: str) -> dict: diff --git a/core/SNAPI/Realm.py b/core/SNAPI/Realm.py index 42666e5..159ba48 100644 --- a/core/SNAPI/Realm.py +++ b/core/SNAPI/Realm.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request ###==========================领域部分========================== diff --git a/core/SNAPI/RealtimeCall.py b/core/SNAPI/RealtimeCall.py index 59dfee2..e8dda71 100644 --- a/core/SNAPI/RealtimeCall.py +++ b/core/SNAPI/RealtimeCall.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from.CallServer import _make_request ###==========================实时聊天========================== diff --git a/core/SNAPI/Sticker.py b/core/SNAPI/Sticker.py index cf28282..47c6a3e 100644 --- a/core/SNAPI/Sticker.py +++ b/core/SNAPI/Sticker.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request ###==========================贴纸========================== diff --git a/core/SNAPI/WebArticle.py b/core/SNAPI/WebArticle.py index 2a32157..ff32720 100644 --- a/core/SNAPI/WebArticle.py +++ b/core/SNAPI/WebArticle.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request ###==========================网页文章========================== diff --git a/core/SNAPI/WebFeed.py b/core/SNAPI/WebFeed.py index e237f7c..b005bb0 100644 --- a/core/SNAPI/WebFeed.py +++ b/core/SNAPI/WebFeed.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request ###==========================网页流========================== diff --git a/core/SNAPI/WebFeedPublic.py b/core/SNAPI/WebFeedPublic.py index e7f4eed..a94cdd4 100644 --- a/core/SNAPI/WebFeedPublic.py +++ b/core/SNAPI/WebFeedPublic.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request ###==========================公共网页流========================== diff --git a/core/SNAPI/WebReader.py b/core/SNAPI/WebReader.py index d9ee59e..5c3c752 100644 --- a/core/SNAPI/WebReader.py +++ b/core/SNAPI/WebReader.py @@ -1,5 +1,5 @@ from ProjectCfg import DOMAIN -from CallServer import _make_request +from .CallServer import _make_request ###==========================网页阅读器========================== def ReadForURL(url:str,Authorization: str='' ) -> dict: diff --git a/core/WebViewWIndow.py b/core/WebViewWIndow.py index 369ec27..6d71712 100644 --- a/core/WebViewWIndow.py +++ b/core/WebViewWIndow.py @@ -3,5 +3,5 @@ import webview def WebViewWIndow(url: str,title: str,width: int,height: int):#创建Webview窗口 webview.create_window(title=title, url=url, width=width, height=height) webview.settings['ALLOW_DOWNLOADS'] = True - webview.start(icon="./assets/img/icon.png") + webview.start(icon="./assets/img/icon.ico") exit(0) \ No newline at end of file