Files
ai-app-database/app/utils/filters.py
T
huty f103148ebf feat: 初始化个人资料库 Web 应用
基于 Flask + MySQL + Bootstrap 5 的全栈个人资料库管理系统。

主要功能:
- 管理员/普通用户双角色权限体系,全站登录保护
- 资源管理:文本、图片、音频、视频四类资源
- 三种添加方式:本地上传(拖拽)、URL 后台下载、磁力下载(aria2c)
- 在线预览:文本、图片、HTML5 音视频播放器
- 安全:bcrypt 加盐密码哈希、CSRF 防护、SQLAlchemy ORM 防注入

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 00:16:59 +09:00

33 lines
900 B
Python

from datetime import datetime
def register_filters(app):
@app.template_filter('datetime_fmt')
def datetime_fmt(value, fmt='%Y-%m-%d %H:%M'):
if not value:
return ''
if isinstance(value, str):
try:
value = datetime.fromisoformat(value)
except ValueError:
return value
return value.strftime(fmt)
@app.template_filter('filesize')
def filesize_filter(size):
if not size:
return ''
for unit in ['B', 'KB', 'MB', 'GB']:
if size < 1024:
return f'{size:.1f} {unit}'
size /= 1024
return f'{size:.1f} TB'
@app.template_filter('truncate_mid')
def truncate_mid(s, max_len=40):
if not s or len(s) <= max_len:
return s
half = max_len // 2
return s[:half] + '' + s[-half:]