# -*- coding: utf-8 -*- """ Flask Web 服务 对外提供 m3u 文件访问,并支持手动触发更新 """ import os from flask import Flask, send_file, jsonify from updater import update, OUTPUT_FILE app = Flask(__name__) @app.route("/") def index(): """首页,返回简单说明""" return jsonify({ "name": "tubo-live-source", "description": "途播播放器专用直播源", "m3u": "/tubo.m3u", "update": "/update", }) @app.route("/tubo.m3u") def m3u(): """返回 m3u 文件;若不存在则先更新一次""" if not os.path.exists(OUTPUT_FILE): update() return send_file( OUTPUT_FILE, mimetype="audio/x-mpegurl", as_attachment=False, download_name="tubo.m3u", ) @app.route("/update") def manual_update(): """手动触发更新""" path = update() return jsonify({"status": "ok", "file": path}) if __name__ == "__main__": # 启动前确保 m3u 存在 if not os.path.exists(OUTPUT_FILE): update() app.run(host="0.0.0.0", port=8000)