Nattiden 1 год назад
Родитель
Сommit
1119dcfa9a
1 измененных файлов с 15 добавлено и 13 удалено
  1. 15 13
      Project/modules/apis.py

+ 15 - 13
Project/modules/apis.py

@@ -3,15 +3,13 @@ API相关的页面
 """
 
 import json
-from typing import TYPE_CHECKING
 from homepagebuilder.interfaces import page_class_handles, require
 from homepagebuilder.core.page import CodeBasedPage
-if TYPE_CHECKING:
-    from homepagebuilder.core.types import Context
+from homepagebuilder.core.types import Context
 
 def get_args(context):
     if setter := context.setter:
-        return setter.override
+        return setter.override.get('args', {})
     return {}
 
 def is_true(string:str):
@@ -49,16 +47,17 @@ class LatestVersionAPI(CodeBasedPage):
     def display_name(self):
         return 'api/versions/latest'
 
-    def pregen_respond(self, context):
+    def pregen_respond(self):
         respond = {}
         if self.latest_snapshot:
-            respond['snapshot'] = self.extract_version_info(self.latest_snapshot,context)
-        respond['release'] = self.extract_version_info(self.latest_release,context)
+            respond['snapshot'] = self.extract_version_info(self.latest_snapshot)
+        respond['release'] = self.extract_version_info(self.latest_release)
         self.respond = respond
     
-    def extract_version_info(self,card,context):
+    def extract_version_info(self,card):
         respond = {}
-        expendedcard = context.builder.template_manager.expend_card_placeholders(card,'', context=context)
+        context = Context.get_current_context()
+        expendedcard = context.builder.template_manager.expend_card_placeholders(card,'')
         self.copyinfo(respond,expendedcard,'version-type')
         self.copyinfo(respond,expendedcard,'intro')
         self.copyinfo(respond,expendedcard,'version-image-link')
@@ -74,11 +73,13 @@ class LatestVersionAPI(CodeBasedPage):
     def copyinfo(self,respond,card,key):
         respond[key] = card.get(key)
 
-    def generate(self, context, *args, **kwargs):
+    def generate(self, *args, **kwargs):
+        context = Context.get_current_context()
         args = get_args(context)
         ensure_ascii = is_true(args.get('ascii',False))
+        print(args)
         if not self.respond:
-            self.pregen_respond(context)
+            self.pregen_respond()
         return json.dumps(self.respond,ensure_ascii=ensure_ascii)
 
     def get_content_type(self, setter, *args, **kwargs):
@@ -86,11 +87,12 @@ class LatestVersionAPI(CodeBasedPage):
 
 @page_class_handles('apis/versions/latest-card')
 class LatestVersionCardAPI(CodeBasedPage):
-    def generate(self, context:'Context', *args, **kwargs):
+    def generate(self, *args, **kwargs):
+        context = Context.get_current_context()
         setter = context.setter
         card = self.project.base_library.get_card('VersionLatestListCard', False)
         card = setter.decorate(card)
-        return context.builder.template_manager.build(card, context=context)
+        return context.builder.template_manager.build(card)
 
     def get_content_type(self, setter, *args, **kwargs):
         return 'application/xml'