Files

55 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
"""APTV 直播源构建主入口"""
import sys
import config
from fetcher import load_sources
from filter import filter_available, dedup
from generator import generate_m3u
def main():
print("[1/4] 读取源文件...")
channels = load_sources(config.SOURCES_DIR)
print(f" 共读取 {len(channels)} 条源")
if not channels:
print("没有可用的源,请检查 sources/ 目录")
sys.exit(1)
print("[2/4] 去重...")
if config.ENABLE_DEDUP:
before = len(channels)
channels = dedup(channels)
print(f" 去重后剩余 {len(channels)} 条(移除 {before - len(channels)} 条)")
else:
print(" 已跳过")
print("[3/4] 可用性过滤...")
if config.ENABLE_FILTER:
before = len(channels)
channels = filter_available(
channels,
timeout=config.TIMEOUT,
max_workers=config.MAX_WORKERS,
)
print(f" 过滤后剩余 {len(channels)} 条(移除 {before - len(channels)} 条)")
else:
print(" 已跳过")
if not channels:
print("没有可用源,退出")
sys.exit(1)
print("[4/4] 生成 M3U...")
count = generate_m3u(
channels,
config.OUTPUT_FILE,
category_order=config.CATEGORY_ORDER,
)
print(f" 已生成 {config.OUTPUT_FILE},共 {count} 个频道")
if __name__ == "__main__":
main()