20260123最后备份
This commit is contained in:
62
back/main.py
62
back/main.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user