alroyso 1 year ago
parent
commit
678ab84c3a
4 changed files with 29 additions and 3 deletions
  1. 1 0
      config/config.ini
  2. 1 1
      main.py
  3. 19 2
      src/api/NasToolsClient.py
  4. 8 0
      src/app/application.py

+ 1 - 0
config/config.ini

@@ -6,6 +6,7 @@ REMOTE_DATA=remote.json
 HOME_DATA=home.json
 
 [NSTOOLS]
+URL = http://192.168.88.249:3000
 API_KEY = sfbwc4GOvP9NGG5hKMFZBzBDdKCzgMwr
 
 

+ 1 - 1
main.py

@@ -29,7 +29,7 @@ if __name__ == '__main__':
     app_service = Application(config, current_directory)
 
     # task
-    app_service.start_remote_download()
+    app_service.test_nas_tools_service()
 
     # 执行主循环
     app_service.main_loop()

+ 19 - 2
src/api/NasToolsClient.py

@@ -1,3 +1,5 @@
+import logging
+
 import requests
 
 
@@ -6,17 +8,32 @@ class NasToolsClient:
         self.base_url = base_url
         self.api_key = api_key
         self.token = None
+    # def login(self, username, password):
+    #     """
+    #     登录以获取Token
+    #     """
+    #     url = f'{self.base_url}/api/v1/user/login'
+    #     data = {'username': username, 'password': password}
+    #     headers = {'Content-Type': 'application/x-www-form-urlencoded'}
+    #     response = requests.post(url, data=data, headers=headers)
+    #     if response.status_code == 200:
+    #         self.token = response.json().get('token')
+    #         return self.token
+    #     else:
+    #         raise Exception("Login failed with status code: " + str(response.status_code))
 
     def login(self, username, password):
         """登录并获取令牌"""
-        login_url = f"{self.base_url}/user/login"
+        url = f'{self.base_url}/api/v1/user/login'
         data = {
             "username": username,
             "password": password
         }
-        response = requests.post(login_url, json=data)
+        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
+        response = requests.post(url, data=data, headers=headers)
         if response.status_code == 200:
             self.token = response.json().get("data", {}).get("token")
+            logging.info(self.token)
             return self.token
         else:
             raise Exception("Failed to login:", response.text)

+ 8 - 0
src/app/application.py

@@ -5,6 +5,7 @@ import signal
 import threading
 import time
 
+from src.api.NasToolsClient import NasToolsClient
 from src.services.Aria2Service import Aria2Service
 from src.services.RemoteDownloadSerivce import RemoteDownloadService
 
@@ -19,6 +20,10 @@ class Application:
     def __init__(self, config, parent_directory, remote_download_service=True):
         self.config = config
         self.parent_dir = parent_directory
+        base_url = config['NSTOOLS']['URL']
+        api_key = config['NSTOOLS']['API_KEY']
+
+        self.nas_tools_api = NasToolsClient(base_url, api_key)
 
         self.aria2_service = Aria2Service(config)
 
@@ -30,6 +35,9 @@ class Application:
         # 注册信号处理函数
         signal.signal(signal.SIGINT, self.handle_signal)
 
+    def test_nas_tools_service(self):
+        self.nas_tools_api.login('admin', 'password')
+
     def handle_signal(self, signum, frame):
         """处理中断信号,优雅地退出循环"""
         self.is_running = False