modified: .env
modified: amazon/__pycache__/approve.cpython-39.pyc modified: amazon/__pycache__/detail_spider.cpython-39.pyc modified: amazon/__pycache__/price_match.cpython-39.pyc modified: amazon/approve.py modified: amazon/detail_spider.py modified: amazon/price_match.py modified: assets/convert.js modified: assets/dedupe.js modified: assets/delete-brand.js modified: assets/split.js modified: blueprints/__pycache__/admin.cpython-39.pyc modified: blueprints/__pycache__/brand.cpython-39.pyc modified: blueprints/__pycache__/main.cpython-39.pyc modified: blueprints/main.py modified: brand_spider/__pycache__/main.cpython-39.pyc modified: new_web_source/convert.html modified: new_web_source/dedupe.html modified: new_web_source/delete-brand.html modified: new_web_source/split.html modified: tool/__pycache__/devices.cpython-39.pyc
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
主页面蓝图:首页、home、图片工作台、品牌页、静态文件、Logo
|
||||
"""
|
||||
import os
|
||||
from flask import Blueprint, send_file, render_template_string
|
||||
from flask import Blueprint, send_file
|
||||
|
||||
from app_common import (
|
||||
get_db,
|
||||
@@ -20,39 +20,7 @@ import requests
|
||||
|
||||
from config import base_url,version,JAVA_API_BASE
|
||||
|
||||
main_bp = Blueprint('main', __name__)
|
||||
|
||||
|
||||
def _resolve_asset_filename(filename):
|
||||
"""Resolve hashed Vite assets without maintaining hardcoded alias tables."""
|
||||
safe_name = os.path.basename(filename)
|
||||
exact_path = os.path.join(ASSETS_DIR, safe_name)
|
||||
if os.path.isfile(exact_path):
|
||||
return safe_name
|
||||
|
||||
base_name, ext = os.path.splitext(safe_name)
|
||||
if not base_name or not ext:
|
||||
return safe_name
|
||||
|
||||
parts = base_name.split('-')
|
||||
if len(parts) < 2:
|
||||
return safe_name
|
||||
|
||||
try:
|
||||
asset_names = os.listdir(ASSETS_DIR)
|
||||
except OSError:
|
||||
return safe_name
|
||||
|
||||
for prefix_length in range(len(parts) - 1, 0, -1):
|
||||
prefix = '-'.join(parts[:prefix_length])
|
||||
matches = [
|
||||
asset_name for asset_name in asset_names
|
||||
if asset_name.endswith(ext) and asset_name.startswith(prefix)
|
||||
]
|
||||
if len(matches) == 1:
|
||||
return matches[0]
|
||||
|
||||
return safe_name
|
||||
main_bp = Blueprint('main', __name__)
|
||||
|
||||
|
||||
@main_bp.route('/')
|
||||
@@ -82,42 +50,10 @@ def wb():
|
||||
return _render_html('index.html')
|
||||
|
||||
|
||||
@main_bp.route('/brand')
|
||||
@login_required
|
||||
def brand_page():
|
||||
repo_brand_path = os.path.abspath(os.path.join(BASE_DIR, '..', 'web_source', 'brand.html'))
|
||||
if os.path.isfile(repo_brand_path):
|
||||
try:
|
||||
with open(repo_brand_path, 'rb') as f:
|
||||
raw = f.read()
|
||||
try:
|
||||
from html_crypto import decrypt
|
||||
content = decrypt(raw).decode('utf-8')
|
||||
except Exception:
|
||||
if raw[:7] == b'gAAAAAB':
|
||||
raise
|
||||
content = raw.decode('utf-8', errors='replace')
|
||||
return render_template_string(content, user_id=session.get('user_id'))
|
||||
except Exception:
|
||||
pass
|
||||
return _render_html('brand.html', user_id=session.get('user_id'))
|
||||
|
||||
|
||||
@main_bp.route('/brand/legacy')
|
||||
@login_required
|
||||
def brand_page_legacy():
|
||||
legacy_path = os.path.join(BASE_DIR, 'web_source', 'templates_backup', 'brand.html')
|
||||
if not os.path.isfile(legacy_path):
|
||||
return '', 404
|
||||
with open(legacy_path, 'rb') as f:
|
||||
content = f.read().decode('utf-8', errors='replace')
|
||||
content = content.replace(
|
||||
'<header class="top-bar">',
|
||||
'<header class="top-bar" style="display:none !important;">',
|
||||
1,
|
||||
)
|
||||
content = content.replace('height: calc(100vh - 56px);', 'height: 100vh;', 1)
|
||||
return render_template_string(content, user_id=session.get('user_id'))
|
||||
@main_bp.route('/brand')
|
||||
@login_required
|
||||
def brand_page():
|
||||
return _render_html('brand.html', user_id=session.get('user_id'))
|
||||
|
||||
|
||||
|
||||
@@ -133,11 +69,10 @@ def serve_static(filename):
|
||||
return send_file(file_abs, as_attachment=False)
|
||||
|
||||
|
||||
@main_bp.route('/assets/<path:filename>')
|
||||
def serve_assets(filename):
|
||||
"""提供 static 目录及子目录下的静态文件访问。"""
|
||||
filename = _resolve_asset_filename(filename)
|
||||
filepath = os.path.normpath(os.path.join(ASSETS_DIR, filename))
|
||||
@main_bp.route('/assets/<path:filename>')
|
||||
def serve_assets(filename):
|
||||
"""提供 static 目录及子目录下的静态文件访问。"""
|
||||
filepath = os.path.normpath(os.path.join(ASSETS_DIR, filename))
|
||||
static_abs = os.path.abspath(ASSETS_DIR)
|
||||
file_abs = os.path.abspath(filepath)
|
||||
if not file_abs.startswith(static_abs) or not os.path.isfile(file_abs):
|
||||
@@ -147,19 +82,14 @@ def serve_assets(filename):
|
||||
|
||||
@main_bp.route('/new_web_source/<path:filename>')
|
||||
def serve_new_web_source(filename):
|
||||
"""提供 new_web_source 目录下的静态页面文件访问。"""
|
||||
candidate_dirs = [
|
||||
os.path.abspath(os.path.join(BASE_DIR, 'new_web_source')),
|
||||
os.path.abspath(os.path.join(BASE_DIR, '..', 'new_web_source')),
|
||||
]
|
||||
for static_abs in candidate_dirs:
|
||||
filepath = os.path.normpath(os.path.join(static_abs, filename))
|
||||
file_abs = os.path.abspath(filepath)
|
||||
if not file_abs.startswith(static_abs):
|
||||
continue
|
||||
if os.path.isfile(file_abs):
|
||||
return send_file(file_abs, as_attachment=False)
|
||||
return '', 404
|
||||
"""提供 static 目录及子目录下的静态文件访问。"""
|
||||
filepath = os.path.normpath(os.path.join("new_web_source", filename))
|
||||
static_abs = os.path.abspath("new_web_source")
|
||||
file_abs = os.path.abspath(filepath)
|
||||
if not file_abs.startswith(static_abs) or not os.path.isfile(file_abs):
|
||||
return '', 404
|
||||
return send_file(file_abs, as_attachment=False)
|
||||
|
||||
|
||||
|
||||
@main_bp.route('/logo.jpg', methods=['GET'])
|
||||
@@ -231,4 +161,4 @@ def proxy(path):
|
||||
return Response("无法连接到后端服务", status=502)
|
||||
except Exception as e:
|
||||
print(f"代理请求失败: {e}")
|
||||
return Response(f"代理错误: {str(e)}", status=500)
|
||||
return Response(f"代理错误: {str(e)}", status=500)
|
||||
|
||||
Reference in New Issue
Block a user