|
|
@@ -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'
|