from flask import request, jsonify from utils.database import get_db from utils.helpers import error_response, success_response from utils.auth import admin_required def register_sensitive_word_routes(app): @app.route('/api/admin/sensitive-words', methods=['GET']) @admin_required def get_sensitive_words(): conn = get_db() cursor = conn.cursor() try: cursor.execute('SELECT * FROM sensitive_words ORDER BY created_at DESC') rows = cursor.fetchall() items = [dict(row) for row in rows] return jsonify(items) finally: conn.close() @app.route('/api/admin/sensitive-words', methods=['POST']) @admin_required def create_sensitive_word(): data = request.json word = (data.get('word') or '').strip() if not word: return error_response('敏感词不能为空') if len(word) > 50: return error_response('敏感词不能超过50个字') conn = get_db() cursor = conn.cursor() try: cursor.execute('INSERT INTO sensitive_words (word) VALUES (?)', (word,)) conn.commit() return jsonify({'id': cursor.lastrowid, 'word': word, 'success': True}) except Exception as e: conn.rollback() if 'UNIQUE' in str(e): return error_response('该敏感词已存在') raise e finally: conn.close() @app.route('/api/admin/sensitive-words/', methods=['DELETE']) @admin_required def delete_sensitive_word(word_id): conn = get_db() cursor = conn.cursor() try: cursor.execute('DELETE FROM sensitive_words WHERE id = ?', (word_id,)) conn.commit() if cursor.rowcount == 0: return error_response('敏感词不存在') return jsonify({'success': True, 'message': '删除成功'}) except Exception as e: conn.rollback() raise e finally: conn.close()