mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-22 07:07:46 +00:00
🎨 模板渲染自动转义设置为打开并提高代码质量
This commit is contained in:
parent
3eeb8db869
commit
48562a6a8e
@ -21,26 +21,25 @@ class TemplateService:
|
|||||||
self._jinja2_env = {}
|
self._jinja2_env = {}
|
||||||
self._jinja2_template = {}
|
self._jinja2_template = {}
|
||||||
|
|
||||||
def get_template(self, package_path: str, template_name: str, auto_escape: bool = True) -> Template:
|
def get_template(self, package_path: str, template_name: str) -> Template:
|
||||||
if config.debug:
|
if config.debug:
|
||||||
# DEBUG下 禁止复用 方便查看和修改模板
|
# DEBUG下 禁止复用 方便查看和修改模板
|
||||||
loader = PackageLoader(self._template_package_name, package_path)
|
loader = PackageLoader(self._template_package_name, package_path)
|
||||||
jinja2_env = Environment(loader=loader, enable_async=True, autoescape=auto_escape)
|
jinja2_env = Environment(loader=loader, enable_async=True, autoescape=True)
|
||||||
jinja2_template = jinja2_env.get_template(template_name)
|
jinja2_template = jinja2_env.get_template(template_name)
|
||||||
else:
|
else:
|
||||||
jinja2_env: Environment = self._jinja2_env.get(package_path)
|
jinja2_env: Environment = self._jinja2_env.get(package_path)
|
||||||
jinja2_template: Template = self._jinja2_template.get(package_path + template_name)
|
jinja2_template: Template = self._jinja2_template.get(package_path + template_name)
|
||||||
if jinja2_env is None:
|
if jinja2_env is None:
|
||||||
loader = PackageLoader(self._template_package_name, package_path)
|
loader = PackageLoader(self._template_package_name, package_path)
|
||||||
jinja2_env = Environment(loader=loader, enable_async=True, autoescape=auto_escape)
|
jinja2_env = Environment(loader=loader, enable_async=True, autoescape=True)
|
||||||
jinja2_template = jinja2_env.get_template(template_name)
|
jinja2_template = jinja2_env.get_template(template_name)
|
||||||
self._jinja2_env[package_path] = jinja2_env
|
self._jinja2_env[package_path] = jinja2_env
|
||||||
self._jinja2_template[package_path + template_name] = jinja2_template
|
self._jinja2_template[package_path + template_name] = jinja2_template
|
||||||
return jinja2_template
|
return jinja2_template
|
||||||
|
|
||||||
async def render(self, template_path: str, template_name: str, template_data: dict,
|
async def render(self, template_path: str, template_name: str, template_data: dict,
|
||||||
viewport: ViewportSize, full_page: bool = True, auto_escape: bool = True,
|
viewport: ViewportSize, full_page: bool = True, evaluate: Optional[str] = None) -> bytes:
|
||||||
evaluate: Optional[str] = None) -> bytes:
|
|
||||||
"""
|
"""
|
||||||
模板渲染成图片
|
模板渲染成图片
|
||||||
:param template_path: 模板目录
|
:param template_path: 模板目录
|
||||||
@ -53,7 +52,7 @@ class TemplateService:
|
|||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
template = self.get_template(template_path, template_name, auto_escape)
|
template = self.get_template(template_path, template_name)
|
||||||
template_data["res_path"] = f"file://{self._current_dir}"
|
template_data["res_path"] = f"file://{self._current_dir}"
|
||||||
html = await template.render_async(**template_data)
|
html = await template.render_async(**template_data)
|
||||||
Log.debug(f"{template_name} 模板渲染使用了 {str(time.time() - start_time)}")
|
Log.debug(f"{template_name} 模板渲染使用了 {str(time.time() - start_time)}")
|
||||||
|
@ -130,7 +130,7 @@ class Gacha(BasePlugins):
|
|||||||
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO)
|
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO)
|
||||||
# 因为 gacha_info["title"] 返回的是 HTML 标签 尝试关闭自动转义
|
# 因为 gacha_info["title"] 返回的是 HTML 标签 尝试关闭自动转义
|
||||||
png_data = await self.template_service.render('genshin/gacha', "gacha.html", data,
|
png_data = await self.template_service.render('genshin/gacha', "gacha.html", data,
|
||||||
{"width": 1157, "height": 603}, False, auto_escape=True)
|
{"width": 1157, "height": 603}, False)
|
||||||
|
|
||||||
reply_message = await message.reply_photo(png_data)
|
reply_message = await message.reply_photo(png_data)
|
||||||
if filters.ChatType.GROUPS.filter(message):
|
if filters.ChatType.GROUPS.filter(message):
|
||||||
|
@ -17,7 +17,7 @@ class Help:
|
|||||||
"""帮助菜单"""
|
"""帮助菜单"""
|
||||||
|
|
||||||
@inject
|
@inject
|
||||||
def __init__(self, template_service: TemplateService):
|
def __init__(self, template_service: TemplateService = None):
|
||||||
self.template_service = template_service
|
self.template_service = template_service
|
||||||
self.help_png = None
|
self.help_png = None
|
||||||
self.file_id = None
|
self.file_id = None
|
||||||
|
@ -14,7 +14,7 @@ class Wiki(BasePlugins):
|
|||||||
"""有关WIKI操作"""
|
"""有关WIKI操作"""
|
||||||
|
|
||||||
@inject
|
@inject
|
||||||
def __init__(self, wiki_service: WikiService):
|
def __init__(self, wiki_service: WikiService = None):
|
||||||
self.wiki_service = wiki_service
|
self.wiki_service = wiki_service
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -14,7 +14,7 @@ class Admin:
|
|||||||
"""有关BOT ADMIN处理"""
|
"""有关BOT ADMIN处理"""
|
||||||
|
|
||||||
@inject
|
@inject
|
||||||
def __init__(self, bot_admin_service: BotAdminService):
|
def __init__(self, bot_admin_service: BotAdminService = None):
|
||||||
self.bot_admin_service = bot_admin_service
|
self.bot_admin_service = bot_admin_service
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
Reference in New Issue
Block a user