فهرست منبع

update appstore api

qiaofeng1227 2 سال پیش
والد
کامیت
a72ca26719
2فایلهای تغییر یافته به همراه52 افزوده شده و 0 حذف شده
  1. 26 0
      appmanage/api/service/manage.py
  2. 26 0
      appmanage/api/v1/routers/apps.py

+ 26 - 0
appmanage/api/service/manage.py

@@ -38,6 +38,32 @@ def get_github_content(repo, path):
     contents = response.text
     return contents
 
+# 更新软件商店
+def AppStoreUpdate():
+    local_path = '/data/library/install/version.json'
+    local_version = "0"
+    try:
+        op = shell_execute.execute_command_output_all("cat " + local_path)['result']
+        local_version = json.loads(op)['VERSION']
+    except:
+        local_version = "0.1.0"
+
+    repo = 'docker-library'
+    version_contents = get_github_content(repo, 'install/version.json')
+    version = json.loads(version_contents)['VERSION']
+
+    if compared_version(local_version, version) == -1:
+        content = []
+        change_log_contents = get_github_content(repo, 'CHANGELOG.md')
+        change_log = change_log_contents.split('## ')[1].split('\n')
+        for change in change_log[1:]:
+            if change != '':
+                content.append(change)
+        shell_execute.execute_command_output_all("curl https://websoft9.github.io/StackHub/install/update_appstore.sh | bash")
+        
+        return content
+    else:
+        return None
 
 # 获取 update info
 def get_update_list():

+ 26 - 0
appmanage/api/v1/routers/apps.py

@@ -57,6 +57,8 @@ update = "  Update_content: {\n\n" \
          "    date: 更新日期\n\n" \
          "    content: 更新内容\n\n  }\n\n}"
 
+appstore_update = "  Update_content: [] 更新内容\n\n  \n\n}"
+
 rd = rd_s + rd_m + rd_e
 rd_info = rd_s + info + rd_e
 rd_status = rd_s + rd_status + rd_e
@@ -372,6 +374,30 @@ def AppUpdateList(request: Request):
 
     return response
 
+@router.api_route("/AppStoreUpdate", methods=["GET", "POST"], summary="更新软件商店", response_model=Response, response_description=rd_update_list)
+def AppStoreUpdate(request: Request):
+
+    try:
+        myLogger.info_logger("Receive request: /AppStoreUpdate")
+        get_headers(request)
+        ret = {}
+        ret['ResponseData'] = {}
+        ret['ResponseData']['Update_content'] = manage.AppStoreUpdate()
+        myLogger.info_logger(ret)
+        response = JSONResponse(content=ret)
+    except CommandException as ce:
+        ret = {}
+        ret['ResponseData'] = {}
+        ret['Error'] = manage.get_error_info(ce.code, ce.message, ce.detail)
+        response = JSONResponse(content=ret)
+    except Exception as e:
+        ret = {}
+        ret['ResponseData'] = {}
+        ret['Error'] = manage.get_error_info(const.ERROR_SERVER_SYSTEM, "system original error", str(e))
+        response = JSONResponse(content=ret)
+
+    return response
+
 def get_headers(request):
     headers = request.headers
     try: