mirror of
https://github.com/donlon/cloudflare-error-page.git
synced 2025-12-19 14:59:28 +00:00
editor/server: add meta information in user-created pages
This commit is contained in:
@@ -14,7 +14,6 @@ from sqlalchemy.orm import DeclarativeBase
|
||||
|
||||
root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../')
|
||||
sys.path.append(root_dir)
|
||||
from cloudflare_error_page import render as render_cf_error_page
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
pass
|
||||
|
||||
@@ -7,8 +7,6 @@ from flask import (
|
||||
send_from_directory,
|
||||
)
|
||||
|
||||
from . import get_common_cf_template_params, render_cf_error_page
|
||||
|
||||
root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../')
|
||||
res_folder = os.path.join(root_dir, 'editor/resources')
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@ from flask import (
|
||||
redirect,
|
||||
)
|
||||
|
||||
from . import get_common_cf_template_params, render_cf_error_page
|
||||
from . import get_common_cf_template_params
|
||||
from cloudflare_error_page import render as render_cf_error_page
|
||||
|
||||
root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../')
|
||||
examples_dir = os.path.join(root_dir, 'examples')
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import html
|
||||
import random
|
||||
import string
|
||||
|
||||
@@ -10,14 +11,38 @@ from flask import (
|
||||
jsonify,
|
||||
url_for,
|
||||
)
|
||||
from jinja2 import Environment, select_autoescape
|
||||
|
||||
from . import get_common_cf_template_params, render_cf_error_page
|
||||
from cloudflare_error_page import render as render_cf_error_page, fill_params, default_template as cf_template
|
||||
|
||||
from . import get_common_cf_template_params
|
||||
from . import db
|
||||
from . import limiter
|
||||
from . import models
|
||||
|
||||
# root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../')
|
||||
# examples_dir = os.path.join(root_dir, 'examples')
|
||||
env = Environment(
|
||||
autoescape=select_autoescape(),
|
||||
trim_blocks=True,
|
||||
lstrip_blocks=True,
|
||||
)
|
||||
template = env.from_string('''
|
||||
{% extends base %}
|
||||
|
||||
{% block header %}
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:site_name" content="moe::virt" />
|
||||
<meta property="og:title" content="{{ html_title }}" />
|
||||
<meta property="og:url" content="{{ url }}" />
|
||||
<meta property="og:description" content="{{ description }}" />
|
||||
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="twitter:site" content="moe::virt" />
|
||||
<meta property="twitter:title" content="{{ html_title }}" />
|
||||
<meta property="twitter:description" content="{{ description }}" />
|
||||
{% endblock %}
|
||||
''')
|
||||
|
||||
bp = Blueprint('share', __name__, url_prefix='/')
|
||||
|
||||
@@ -68,19 +93,10 @@ def get(name: str):
|
||||
})
|
||||
else:
|
||||
return abort(404)
|
||||
params = item.params
|
||||
params = {
|
||||
**params,
|
||||
**get_common_cf_template_params(),
|
||||
}
|
||||
params: dict = item.params
|
||||
params.pop('time')
|
||||
params.pop('ray_id')
|
||||
params.pop('client_ip')
|
||||
params['creator_info'] = {
|
||||
'hidden': False,
|
||||
'text': 'CF Error Page Editor',
|
||||
'link': f'https://virt.moe/cloudflare-error-page/editor/#from={name}',
|
||||
}
|
||||
|
||||
if is_json:
|
||||
return jsonify({
|
||||
@@ -88,4 +104,22 @@ def get(name: str):
|
||||
'parameters': params,
|
||||
})
|
||||
else:
|
||||
return render_cf_error_page(params=params, allow_html=False, use_cdn=True), 200
|
||||
params = {
|
||||
**params,
|
||||
**get_common_cf_template_params(),
|
||||
}
|
||||
params['creator_info'] = {
|
||||
'hidden': False,
|
||||
'text': 'CF Error Page Editor',
|
||||
'link': f'https://virt.moe/cloudflare-error-page/editor/#from={name}',
|
||||
}
|
||||
fill_params(params)
|
||||
params['what_happened'] = html.escape(params.get('what_happened', '')) # TODO: common render function?
|
||||
params['what_can_i_do'] = html.escape(params.get('what_can_i_do', ''))
|
||||
|
||||
return template.render(base=cf_template,
|
||||
params=params,
|
||||
url=request.url,
|
||||
description='Cloudflare error page',
|
||||
resources_use_cdn=True)
|
||||
# return render_cf_error_page(params=params, allow_html=False, use_cdn=True), 200
|
||||
|
||||
Reference in New Issue
Block a user