From 2e05854f9d4e0fa049451ca43985ebb557f4b464 Mon Sep 17 00:00:00 2001 From: DelLevin-Home Date: Tue, 16 Jun 2026 03:46:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=99=BB=E5=BD=95=E9=AA=8C=E8=AF=81=202.?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=89=93=E5=BC=80=E9=BB=98=E8=AE=A4=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flask-dev-api/app.py | 48 +++++++++-- flask-dev-api/config.py | 12 ++- .../dv_cookies/bilibili.com_cookies.txt | 2 - flask-dev-api/stats.db | Bin 131072 -> 131072 bytes flask-dev-api/templates/login.html | 75 ++++++++++++++++++ 5 files changed, 128 insertions(+), 9 deletions(-) create mode 100644 flask-dev-api/templates/login.html diff --git a/flask-dev-api/app.py b/flask-dev-api/app.py index d54103e..e2e9f6b 100644 --- a/flask-dev-api/app.py +++ b/flask-dev-api/app.py @@ -7,9 +7,9 @@ import sys import os import time from datetime import datetime -from flask import Flask, render_template, jsonify, g, request +from flask import Flask, render_template, jsonify, g, request, session, redirect -from config import PORT +from config import PORT, LOGIN_ENABLED, LOGIN_USERNAME, LOGIN_PASSWORD, SECRET_KEY from blueprints import pin_tu_bp, base64_bp, down_video_bp, fen_ci_bp, content_tag_bp, chmod_calc_bp, json_format_bp, qr_code_bp, http_status_bp, url_parser_bp, token_gen_bp, sovits_tts_bp, stt_bp, ai_dubbing_bp, rvc_bp from utils.stats_db import init_db, record_call, get_total_count, get_avg_duration, get_daily_counts, get_monthly_counts, get_available_years, get_available_months, get_daily_counts_by_month, get_hourly_counts, get_endpoint_stats, get_today_count, get_yesterday_count, get_month_count, get_success_rate, get_duration_distribution, get_slowest_endpoints, get_week_compare, get_recent_calls, get_active_days from utils.stats_db import ALLOWED_TABLES, get_table_info, get_table_rows, get_table_count, insert_row, update_row, delete_rows, clear_table @@ -28,6 +28,24 @@ def create_app(): app = Flask(__name__) init_db() + app.secret_key = SECRET_KEY + + # 登录/登出 + @app.route('/login', methods=['GET', 'POST']) + def login(): + if not LOGIN_ENABLED: + return redirect('/') + if request.method == 'POST': + if request.form.get('username') == LOGIN_USERNAME and request.form.get('password') == LOGIN_PASSWORD: + session['logged_in'] = True + return redirect('/') + return render_template('login.html', error='用户名或密码错误') + return render_template('login.html') + + @app.route('/logout') + def logout(): + session.pop('logged_in', None) + return redirect('/login') # 主页 @app.route('/') @@ -162,6 +180,19 @@ def create_app(): deleted = clear_table(table) return jsonify({'success': True, 'deleted': deleted}) + # 登录验证 + @app.before_request + def _check_auth(): + if not LOGIN_ENABLED: + return + path = request.path + if path == '/login' or path.startswith('/static/'): + return + if not session.get('logged_in'): + if path.startswith('/api/'): + return jsonify({'error': '未登录'}), 401 + return redirect('/login') + # 请求计时 @app.before_request def _start_timer(): @@ -203,12 +234,19 @@ app = create_app() def start_flask(): """供桌面启动器调用,以非调试模式运行 Flask""" + from config import AUTO_OPEN_BROWSER + if AUTO_OPEN_BROWSER: + import webbrowser + import threading as _t + _t.Timer(1, webbrowser.open, args=[f'http://127.0.0.1:{PORT}']).start() a = create_app() a.run(host='127.0.0.1', port=PORT, use_reloader=False, threaded=True) if __name__ == '__main__': - # import webbrowser - # import threading as _t - # _t.Timer(1, webbrowser.open, args=[f'http://127.0.0.1:{PORT}']).start() + from config import AUTO_OPEN_BROWSER + if AUTO_OPEN_BROWSER: + import webbrowser + import threading as _t + _t.Timer(1, webbrowser.open, args=[f'http://127.0.0.1:{PORT}']).start() app.run(debug=True, host='0.0.0.0', port=PORT, threaded=True) diff --git a/flask-dev-api/config.py b/flask-dev-api/config.py index 2d3e6ba..79d2149 100644 --- a/flask-dev-api/config.py +++ b/flask-dev-api/config.py @@ -3,10 +3,17 @@ 全局配置集中管理 """ import os - # 基础目录 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) - +# ==================== 是否自动打开浏览器 ==================== +AUTO_OPEN_BROWSER = False +# AUTO_OPEN_BROWSER = True +# ==================== 登录设置 ==================== +LOGIN_ENABLED = False +# LOGIN_ENABLED = True +LOGIN_USERNAME = 'admin' +LOGIN_PASSWORD = '123456' +SECRET_KEY = 'LQkCU9XfKjxOSfIFZP7kDhwS57o2bvI4qVwZWMet4l8X3RNKnl12bgxvAy1BaByV' # ==================== down-video 视频下载 ==================== TWITTER_COOKIE = os.path.join(BASE_DIR, "config", "dv_cookies", "x.com_cookies.txt") BILIBILI_COOKIE = os.path.join(BASE_DIR, "config", "dv_cookies", "bilibili.com_cookies.txt") @@ -21,3 +28,4 @@ JIEBA_DICT_FILE = os.path.join(BASE_DIR, 'config', 'fen_ci', 'jieba.txt') TOKEN_FILE_PATH = os.path.join(BASE_DIR, 'config', 'fen_ci', 'usertoken.json') # ==================== 服务端口 ==================== PORT = 5000 + diff --git a/flask-dev-api/config/dv_cookies/bilibili.com_cookies.txt b/flask-dev-api/config/dv_cookies/bilibili.com_cookies.txt index fc7c300..168cff7 100644 --- a/flask-dev-api/config/dv_cookies/bilibili.com_cookies.txt +++ b/flask-dev-api/config/dv_cookies/bilibili.com_cookies.txt @@ -29,8 +29,6 @@ live.bilibili.com FALSE / FALSE 1782229863 GIFT_BLOCK_COOKIE GIFT_BLOCK_COOKIE .bilibili.com TRUE / FALSE 1816004451 buvid4 D3170BA8-2910-9D9B-A608-52B60F1437AB62978-025051010-2j8K1NCxW9nraGJ2vOJv2vg3LhbmydYJolrkxpng+JQJZmNXaAoya/H8tItJHUfy .bilibili.com TRUE / FALSE 1812974025 home_feed_column 5 .bilibili.com TRUE / FALSE 1812018942 CURRENT_QUALITY 64 -.bilibili.com TRUE / FALSE 1781516479 bili_ticket eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3ODE1MTY0ODIsImlhdCI6MTc4MTI1NzIyMiwicGx0IjotMX0.eEl-svs_DNL9hArempTC7OjEOmwU5zkzh4z5lvc2JGU -.bilibili.com TRUE / FALSE 1781516479 bili_ticket_expires 1781516422 .bilibili.com TRUE / TRUE 1796809280 SESSDATA e981c0f8%2C1796809283%2C53cbf%2A61CjDSekND1lFe5TiJgnRjBVV1dsBTaBY0JP5uDZhtM2bI4WZ9FnbNW1xAQXYO7eBAH7cSVk1jUG0zLU1SWUprSFZxb0VZNl9HM05WckVCZHpYRTVqM3dFUkMwbEVjai1DWF9MbERjUDZVVExzZ2JLMjBnbFhfSjA0MUZWTThBb2tRaDZDQ1d6UHpBIIEC .bilibili.com TRUE / TRUE 1796809280 bili_jct ef487b5774b781e6ab9c18d90213d327 .bilibili.com TRUE / FALSE 0 sid 8gro2gn0 diff --git a/flask-dev-api/stats.db b/flask-dev-api/stats.db index 597acfd38ad98159fbcdaa1b86b605d6857b1264..45acc0164646ad1b852a29988dd5337d08e498a6 100644 GIT binary patch delta 272 zcmZo@;Am*zm>|vgbE1qhC(#qJ_%GkU)I)8g~KI6&; zDQ@0+2L1#54g3!L41AaPCh + + + + + + 登录 + + + + + +