20260123最后备份

This commit is contained in:
2026-01-23 16:19:08 +08:00
parent 7d76e9a7e9
commit ba4e4024ed
2 changed files with 130 additions and 13 deletions

View File

@@ -92,18 +92,16 @@ def load_config():
NEED_AUDIT = settings.need_audit
except Exception as e:
print(f"Warning: Failed to load settings: {e}")
def load_deny_words():
global DENY_WORDS_CACHE
with app.app_context():
try:
words = db.session.query(DenyWord.word).all()
# words 是 list of tuples [('word1',), ('word2',)]
DENY_WORDS_CACHE = [w[0] for w in words]
print(f"Loaded {len(DENY_WORDS_CACHE)} deny words.")
except Exception as e:
print(f"Warning: Failed to load deny words: {e}")
global DENY_WORDS_CACHE
with app.app_context():
try:
words = db.session.query(DenyWord.word).all()
# words 是 list of tuples [('word1',), ('word2',)]
DENY_WORDS_CACHE = [w[0] for w in words]
print(f"Loaded {len(DENY_WORDS_CACHE)} deny words.")
except Exception as e:
print(f"Warning: Failed to load deny words: {e}")
# --- 用户普通api端点 ---
@app.route('/api/settings', methods=['GET'])
def get_settings():
@@ -367,6 +365,45 @@ def get_statics():
except Exception as e:
return jsonify({"code": 2003, "data": str(e)})
@app.route('/api/10_info', methods=['GET'])
def get_10_info():
try:
page = request.args.get("page", 1, type=int)
if page < 1:
page = 1
per_page = 10
# 相比v1的优化使用数据库层面的过滤和分页避免一次性加载所有数据
pagination = Submission.query.filter_by(status='Pass')\
.order_by(Submission.id.desc())\
.paginate(page=page, per_page=per_page, error_out=False)
page_posts = pagination.items
data = []
for s in page_posts:
data.append({
"id": s.id,
"content": s.content,
"upvotes": s.upvotes,
"downvotes": s.downvotes,
"created_at": s.created_at.isoformat() if s.created_at else None,
"comment_count": len(s.comments),
"total_pages": pagination.total,
})
return jsonify({
"code": 1000,
"data": data
})
except Exception as e:
return jsonify({"code": 2003, "data": str(e)})
# --- 菜单 ---
@app.route('/get/teapot', methods=['GET'])
def return_418():
abort(418)
# --- 用户的管理api端点 ---
# TODO: 用户管理端点
@@ -377,5 +414,4 @@ def get_statics():
if __name__ == '__main__':
init_db()
load_config()
load_deny_words()
app.run(debug=True, port=5000)