diff --git a/README.md b/README.md index 85c468cfbda..b4b53524455 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,11 @@
- 🏠广东频道: 广东珠江, 广东体育, 广东新闻, 广东民生, 广东卫视, 大湾区卫视, 广州综合, 广州影视, 广州竞赛, 江门综合, 江门侨乡生活, 佛山综合, 深圳卫视, 汕头综合, 汕头经济, 汕头文旅, 茂名综合, 茂名公共 + ☘️广东频道: 广东珠江, 广东体育, 广东新闻, 广东民生, 广东卫视, 大湾区卫视, 广州综合, 广州影视, 广州竞赛, 江门综合, 江门侨乡生活, 佛山综合, 深圳卫视, 汕头综合, 汕头经济, 汕头文旅, 茂名综合, 茂名公共 +
+
+
+ ☘️各省份地方台

@@ -152,23 +156,29 @@ pipenv run ui 建议都试用一次,选择自己合适的版本 1. 拉取镜像: + - driver: + ```bash docker pull guovern/tv-driver:latest ``` - requests: + ```bash docker pull guovern/tv-requests:latest ``` 2. 运行容器: + - driver: + ```bash docker run -d -p 8000:8000 guovern/tv-driver ``` - requests: + ```bash docker run -d -p 8000:8000 guovern/tv-requests ``` @@ -176,13 +186,16 @@ docker run -d -p 8000:8000 guovern/tv-requests 卷挂载参数(可选): 实现宿主机文件与容器文件同步,修改模板、配置、获取更新结果文件可直接在宿主机文件夹下操作 -以宿主机路径/etc/docker为例: +以宿主机路径/etc/docker 为例: + - driver: + ```bash docker run -v /etc/docker/config:/tv-driver/config -v /etc/docker/output:/tv-driver/output -d -p 8000:8000 guovern/tv-driver ``` - requests: + ```bash docker run -v /etc/docker/config:/tv-requests/config -v /etc/docker/output:/tv-requests/output -d -p 8000:8000 guovern/tv-requests ``` diff --git a/README_en.md b/README_en.md index 64c7cf1ba4e..ecec908325c 100644 --- a/README_en.md +++ b/README_en.md @@ -21,7 +21,11 @@

- 🏠Guangdong Channel: 广东珠江, 广东体育, 广东新闻, 广东民生, 广东卫视, 大湾区卫视, 广州综合, 广州影视, 广州竞赛, 江门综合, 江门侨乡生活, 佛山综合, 深圳卫视, 汕头综合, 汕头经济, 汕头文旅, 茂名综合, 茂名公共 + ☘️Guangdong Channel: 广东珠江, 广东体育, 广东新闻, 广东民生, 广东卫视, 大湾区卫视, 广州综合, 广州影视, 广州竞赛, 江门综合, 江门侨乡生活, 佛山综合, 深圳卫视, 汕头综合, 汕头经济, 汕头文旅, 茂名综合, 茂名公共 +
+
+
+ ☘️Local channels in each province

@@ -152,23 +156,29 @@ pipenv run ui It's recommended to try each one and choose the version that suits you 1. Pull the image: + - driver + ```bash docker pull guovern/tv-driver:latest ``` - requests + ```bash docker pull guovern/tv-requests:latest ``` 2. Run the container: + - driver + ```bash docker run -d -p 8000:8000 guovern/tv-driver ``` - requests + ```bash docker run -d -p 8000:8000 guovern/tv-requests ``` @@ -179,14 +189,16 @@ This allows synchronization of files between the host machine and the container. Taking the host path /etc/docker as an example: - driver: + ```bash docker run -v /etc/docker/config:/tv-driver/config -v /etc/docker/output:/tv-driver/output -d -p 8000:8000 guovern/tv-driver ``` - requests: + ```bash docker run -v /etc/docker/config:/tv-requests/config -v /etc/docker/output:/tv-requests/output -d -p 8000:8000 guovern/tv-requests -```` +``` 3. Update results: - API address: ip:8000 diff --git a/config/config.ini b/config/config.ini index 0e688d45ee5..e7529ba5955 100644 --- a/config/config.ini +++ b/config/config.ini @@ -5,8 +5,8 @@ open_use_old_result = True source_file = config/demo.txt final_file = output/result.txt open_online_search = False -online_search_page_num = 3 -urls_limit = 30 +online_search_page_num = 1 +urls_limit = 10 open_keep_all = False open_sort = True sort_timeout = 10 @@ -18,9 +18,9 @@ resolution_weight = 0.5 recent_days = 30 ipv_type = 全部 ipv_type_prefer = 自动 -ipv4_num = 15 -ipv6_num = 15 -domain_blacklist = epg.pw,skype.serv00.net,iptv.yjxfz.com,live-hls-web-ajb.getaj.net,live.goodiptv.club,hc73k3dhwo5gfkt.wcetv.com,stream1.freetv.fun +ipv4_num = 5 +ipv6_num = 5 +domain_blacklist = epg.pw,skype.serv00.net,iptv.yjxfz.com,live-hls-web-ajb.getaj.net,live.goodiptv.club,hc73k3dhwo5gfkt.wcetv.com,stream1.freetv.fun,zw9999.cnstream.top open_m3u_result = True url_keywords_blacklist = open_subscribe = True @@ -40,9 +40,9 @@ hotel_page_num = 1 open_update_time = True request_timeout = 10 origin_type_prefer = hotel,multicast,subscribe,online_search -hotel_num = 10 -multicast_num = 10 -subscribe_num = 10 +hotel_num = 4 +multicast_num = 3 +subscribe_num = 3 online_search_num = 0 open_url_info = True -open_empty_category = True \ No newline at end of file +open_empty_category = False \ No newline at end of file diff --git a/config/demo.txt b/config/demo.txt index 1a9fea875af..32c400526e1 100644 --- a/config/demo.txt +++ b/config/demo.txt @@ -72,7 +72,7 @@ CETV5 新疆卫视 云南卫视 -🏠广东频道,#genre# +☘️广东频道,#genre# 广东珠江 广东体育 广东新闻 @@ -92,6 +92,1325 @@ CETV5 茂名综合 茂名公共 +☘️浙江频道,#genre# +浙江钱江 +浙江钱江都市 +浙江钱江台 +浙江生活 +浙江经济生活 +浙江教育 +浙江民生 +浙江新闻 +浙江少儿 +杭州综合 +杭州明珠 +杭州西湖明珠 +杭州生活 +杭州影视 +杭州青少 +杭州少体 +杭州导视 +宁波TV1 +宁波TV2 +宁波TV3 +宁波TV4 +宁波TV5 +宁波电视台1套 +宁波电视台2套 +宁波电视台3套 +宁波电视台4套 +宁波4套影视 +NBTV-1 +NBTV-2 +NBTV-3 +NBTV-4 +浙江教科 +浙江经济 +之江纪录 +浙江国际 +嘉兴新闻综合 +嘉兴公共 +嘉兴文化影视 +丽水公共 +丽水新闻 +湖州公共 +湖州新闻综合 +湖州文化娱乐 +衢州公共 +衢州新闻综合 +金华教育科技 +金华新闻综合 +金华公共 +舟山新闻综合 +舟山公共 +温州新闻综合 +浙江经视 +浙江留学 +浙江民生休闲 +浙江松阳 +浙江数码时代 +浙江教科影院 +浙江教科影视 +浙江公共新闻 +浙江休闲台 +浙江龙泉 +浙江青田 +浙江遂昌 +诸暨新闻综合 +龙游生活娱乐 +龙游新闻综合 +龙泉新闻综合 +青田电视台 +镇海先锋影院 +金华都市农村 +金华公共 +鄞州二套 +鄞州一套 +遂昌综合 +遂昌新闻综合 +象山综合 +象山电视台新闻综合 +象山新闻综合 +衢江新闻综合 +萧山生活 +萧山新闻综合 +苍南新闻综合 +舟山群岛旅游 +舟山公共生活 +缙云综合 +缙云新闻综合 +绍兴电视台公共 +绍兴新闻综合 +绍兴文化影院 +绍兴文化影视 +绍兴公共 +湖州公共民生 +温州都市生活 +温州经济科教 +淳安电视台 +海盐新闻 +海宁生活服务 +海宁新闻综合 +洞头综合 +永嘉新闻综合 +武义新闻综合 +桐庐综合 +桐乡新闻综合 +松阳综合 +松阳新闻综合 +普陀电视台 +普陀新闻综合 +新昌生活 +新昌新闻综合 +文成综合 +文成新闻综合 +数码时代 +德清新闻综合 +德清文化生活 +开化新闻综合 +开化国家公园 +庆元综合 +庆元新闻综合 +平湖民生休闲 +平湖新闻综合 +嵊泗综合 +嵊泗新闻综合 +嵊州新闻综合 +北仑电视台 +兰溪新闻综合 +余杭综合 +余杭未来E +余姚综合 +余姚新闻综合 +余姚姚江文化 +云和新闻综合 +义乌新闻综合 +中国蓝新闻 +东阳影视生活 +上虞新闻综合 +上虞新商都 +上虞文化影院 +上虞文化影视 +舟山公共生活 +舟山新闻综合 +舟山群岛旅游 + +☘️北京频道,#genre# +北京卡酷少儿 +北京影院 +北京新闻 +北京生活 +北京科教 +北京财经 +北京青年 +BTV纪实 +清华大学电视台 +石景山有线 +通州电视台 + +☘️上海频道,#genre# +七彩戏剧 +上海外语 +上海教育 +上海新闻综合 +上海点掌财经 +上海第一财经 +上海纪实 +上海都市 +上海金山电视台 +上视外语 +上视新闻 +东方影视 +东方财经 +全纪实 +动漫秀场 +哈哈炫动 +嘉定电视台 +天水公共 +崇明电视台 +新闻综合 +欢笑剧场 +法治天地 +生活时尚 +第一财经 +纪实人文 +都市剧场 +金山电视台 +金色频道 + +☘️重庆频道,#genre# +璧山综合 +万源新闻综合 +铜梁综合 +重庆汽摩 +荣昌综合 +璧山综合 +潼南综合 +涪陵电视台 +江津新闻综合 +武隆综合 +大足综合 +垫江综合 +北碚综合 +中国交通重庆 +万州综合 +万州三峡移民 +重庆新闻 +重庆时尚购物 + +☘️江苏频道,#genre# +东台综合 +东海新闻 +仪征新闻综合 +仪征生活 +优漫卡通 +六合新闻综合 +南京信息 +南京十八 +南京娱乐 +南京娱乐 +南京少儿 +南京教科 +南京新闻综合 +南京生活 +南通三套公共 +南通二套社教 +南通崇川综合 +南通影院娱乐 +南通新闻综合 +南通电视台一套 +南通都市生活 +句容党建 +句容影院 +句容新闻综合 +句容生活 +大丰公共 +如东一套新闻综合 +如东新闻综合 +姜堰新闻综合 +宜兴新闻 +宜兴紫砂 +宿迁公共 +常州公共 +常州新闻综合 +常州生活 +常州都市 +常熟新闻 +常熟民生 +张家港新闻综合 +张家港民生 +徐州-1 +徐州-3 +徐州-4 +徐州公共頻道 +徐州公共 +徐州文艺影院 +徐州新聞綜合 +徐州經濟生活 +徐州贾汪旅游 +扬中党建民生 +扬中新闻 +扬州城市 +扬州新闻 +扬州生活 +扬州邗江 +新沂新闻 +新沂生活 +无锡娱乐 +无锡新闻综合 +无锡生活 +无锡经济 +无锡都市资讯 +武进新闻 +武进生活 +江宁新闻 +江宁电视台综合 +江苏体育 +江苏公共 +江苏城市 +江苏影视 +江苏教育 +沛县新闻综合 +沭阳综合 +泗洪新闻综合 +泗阳综合 +泗阳资讯 +泰州一套新闻综合 +泰州三套影视娱乐 +海安新闻综合 +涟水电视台综合 +涟水综合 +淮安公共 +淮安影院娱乐 +淮安新闻综合 +淮阴影院 +淮阴综合 +溧水影视娱乐 +溧水新闻综合 +滨海新闻综合 +盐都综合 +睢宁三农 +睢宁生活教育 +睢宁综合 +睢宁资讯 +苏州4k +苏州文化生活 +苏州新闻综合 +苏州生活资讯 +苏州电影娱乐 +苏州社会经济 +贾汪新闻 +贾汪旅游 +赣榆新闻综合 +连云港公共 +连云港新闻综合 +金坛新闻 +镇江二套社会民生 +镇江新闻综合 +靖江新闻综合 +高邮一套新闻综合 +高邮综合 + +☘️辽宁频道,#genre# +朝阳教育 +朝阳新闻综合 +辽宁北方 +辽宁影视剧 +辽宁教育青少 +辽宁生活 +辽宁经济 +辽宁都市 +锦州一套新闻综合 +锦州二套教育 + +☘️湖南频道,#genre# +湖南都市 +湖南视剧 +湖南经视 +湖南电视剧 +湖南电影 +湖南爱晚 +湖南教育 +湖南娱乐 +湖南国际 +湖南公共 +金鹰纪实 +湖南金鹰纪实 +长沙新闻综合 +长沙新闻 +长沙政法 +长沙影视 +长沙女性 +醴陵综合 +衡阳新闻综合 +衡阳公共 +茶陵新闻综合 +益阳新闻综合 +益阳教育 +益阳公共 +湘潭新闻综合 +湘潭县综合 +湘潭公共 +湘潭公共都市 +洪江市综合 +泸溪电视台 +汨罗新闻综合 +江华综合 +汝城综合 +永顺综合 +桑植新闻综合 +新化新闻综合 +屈原综合 +宁乡综合 +娄底综合 +保靖时政 +云溪新闻综合 + +☘️湖北频道,#genre# +湖北新闻综合 +湖北综合 +湖北经视 +湖北生活 +湖北教育 +湖北影视 +湖北公共新闻 +湖北公共 +湖北经济 +湖北垄上 +武汉一台新闻综合 +武汉二台电视剧 +武汉三台科技生活 +武汉四台经济 +武汉五台文体 +武汉六台外语 +武汉1新闻综合 +武汉2电视剧 +武汉3科技生活 +武汉教育 +湖北武汉教育 +武汉经济 +武汉新闻综合 +武汉文体 +武汉外语 +江夏经济生活 +江夏新闻综合 +建始综合 +崇阳新闻综合 +十堰新闻 +十堰公共 +保康新闻综合 +仙桃生活文体 +仙桃新闻综合 +麻城综合 +郧阳新闻综合 +荆门新闻综合 +云梦综合 +云梦党建农业 +武汉生活 +武汉新闻 +武汉经济 +荆门新闻综合 +崇阳综合 +十堰新闻 +潜江综合 +湖北生活 +湖北教育 +湖北影视 +湖北垄上 + +☘️广西频道,#genre# +乐业综合 +凌云综合 +凭祥综合 +北海新闻综合 +北海经济科教 +南宁公共 +南宁影娱乐 +南宁新闻综合 +南宁都市生活 +博白综合 +天等综合 +宾阳综合 +岑溪综合 +崇左综合 +巴马综合 +昭平综合 +来宾综合 +桂平综合 +灌阳新闻综合 +灵川综合 +田东综合 +田阳综合 +罗城综合 +融水综合 +西林综合 +贺州综合 +资源电视台 +那坡综合 +都安综合 +钦州公共 +钦州综合 +靖西综合 +龙州综合 +广西新闻 +罗城综合 +北海新闻 +桂林新闻 +广西贺州 +广西国际 +广西乐思购 +南宁新闻综合 +南宁都市生活 +南宁影视娱乐 +南宁公共 + +☘️天津频道,#genre# +宁河新闻 +滨海新闻 +滨海综艺 +滨海影院 +津南一套 +武清综合 +天津都市 +天津新闻 +天津文艺 +天津卫视 + +☘️四川频道,#genre# +万源新闻综合 +东兴综合 +乐山公共 +乐山新闻综合 +乐至综合 +九寨沟新闻综合 +井研综合 +什邡新闻 +仁和综合 +仁寿综合 +凉山新闻综合 +凉山语 +利州综合 +前锋电视台 +剑阁综合 +北川电视一套 +南充公共 +南充新闻 +南充科教 +双流综合 +叙州新闻综合 +叙永综合 +名山综合 +四川科教 +大竹新闻综合 +大竹阳光政务 +夹江新闻综合 +威远新闻综合 +宁南综合 +安岳综合 +宜宾公共 +宜宾新闻综合 +宝兴综合 +小金综合 +岳池新闻综合 +峨边电视台 +平昌新闻综合 +平武综合 +广元公共 +广元综合 +广安公共 +康定综合 +康巴卫视 +开江新闻综合 +德阳公共 +德阳新闻综合 +成都高新电视 +攀枝花新闻综合 +新都综合 +旺苍新闻综合 +昭化综合 +朝天综合 +松潘新闻综合 +梓潼新闻综合 +武胜综合 +汉源综合 +江油新闻综合 +汶川新闻综合 +沐川综合 +沙湾综合 +泸县新闻综合 +渠县新闻综合 +珙县综合 +甘孜综合 +甘洛综合 +盐亭综合 +石棉综合 +筠连综合 +纳溪新闻 +绵阳科技 +绵阳综合 +茂县综合 +荥经综合 +营山电视台 +蓬安新闻综合 +蓬溪新闻综合 +西昌综合 +遂宁公共 +遂宁新闻综合 +邻水新闻综合 +金口河综合 +金堂电视台 +金川乡村 +金川新闻综合 +金阳综合 +长宁综合 +阿坝文艺 +阿坝综合 +隆昌新闻综合 +雅安公共 +雅安新闻综合 +雅安雨城 +青川综合 +青神综合 +马尔康综合 +马边电视台 +龙泉驿新闻综合 + +☘️陕西频道,#genre# +陕西一套新闻资讯 +陕西二套都市青春 +陕西三套生活 +陕西五套公共 +陕西七套体育休闲 +陕西农林卫视 +延安一套新闻综合 +延安二套公共 +陕西农林 +陕西新闻资讯 +陕西都市青春 +陕西生活 +陕西公共 +陕西购物 +陕西体育休闲 +陕西生活 +陕西影视 +陕西公共 +汉中综合 +洋县电视台 + +☘️福建频道,#genre# +三明公共 +三明新闻综合 +云霄综合 +厦门卫视 +宁化电视一套 +将乐综合 +建宁综合 +德化新闻综合 +新罗电视一套 +晋江电视台 +永安综合 +永泰综合 +泰宁新闻 +漳州新闻综合 +漳浦综合 +石狮综合 +福州少儿 +福州影院 +福州生活 +福州综合 +霞浦综合 +龙岩公共 +龙岩新闻综合 +福建文体 +福建新闻 +福建电视剧 +福建经济 +福建综合 +福建公共 +福建电视剧 +福建旅游 +福建经视 +福建体育 +福建少儿 +福建海峡卫视 +云霄综合 +建宁综合 +漳州新闻 +龙岩公共 +龙岩综合 + +☘️海南频道,#genre# +海南新闻 +海南自贸 +海南文旅 +海南少儿 +海南公共 +海南电视台经济 +海口一套综合 +海口二套生活娱乐 +海口三套城乡经济 + +☘️河南频道,#genre# +梨园 +临颍综合 +义马新闻综合 +光山综合 +兰考新闻 +卫辉综合 +叶县 +周口扶沟 +唐河一套 +固始综合 +宝丰综合 +巩义新闻综合 +扶沟综合 +新乡县电视台 +新县综合 +新蔡综合 +桐柏新闻综合 +泌阳新闻综合 +淅川电视 +渑池新闻综合 +温县综合 +潢川综合 +焦作综合 +登封综合 +禹州综合 +西华综合 +郏县综合 +郸城新闻综合 +鄢陵综合 +项城新闻 +鹤壁综合 +邓州新闻 +许昌农业科教 +许昌公共 +荥阳综合 +禹州综合 +禹州公共 +睛彩许昌 +睛彩焦作 +焦作教育 +焦作公共 +灵宝新闻综合 +濮阳公共 +滑县新闻 +济源电视一套 +洛阳综合 +洛阳科教 +洛阳文旅 +河南都市 +河南民生 +沁阳新闻综合 +永城综合 +永城卫建 +桐柏新闻综合 +方城一套 +新野综合 +新安新闻综合 +新乡县电视台 +开封新闻综合 +开封文化旅游 +嵩县综合新闻 +宜阳综合 +唐河一套 +周口新闻综合 +内黄综合 +内乡综合 +偃师新闻 + +☘️河北频道,#genre# +鹿泉一套 +邯郸科技教育 +邯郸公共 +邯郸新闻 +邯郸科教 +邢台综合 +邢台城生 +衡水公共 +石家庄都市 +石家庄生活 +石家庄新闻综合 +石家庄娱乐 +滦平新闻 +河北都市 +河北农民 +昌黎综合 +任丘文娱 +任丘综合 +兴隆综合 +大厂一套 +平泉影视 +平泉综合 +昌黎 +清河新闻综合 +清河经济综艺 +衡山 +邯郸公共 +邯郸新闻 +邯郸科教 +鹿泉一套 + +☘️辽宁频道,#genre# +朝阳教育 +朝阳新闻综合 +辽宁北方 +辽宁影视剧 +辽宁教育青少 +辽宁生活 +辽宁经济 +辽宁都市 +锦州一套新闻综合 +锦州二套教育 + +☘️贵州频道,#genre# +松桃新闻 +石阡新闻 +七星关电视台 +道真新闻综合 +凤冈综合 +黔南一套 +黔南二套 +安顺新闻 +清镇新闻综合 +思南综合 +松新闻 +罗甸综合 +七星关电视台 +湄潭综合 +仁怀新闻 +贵州2 +贵州3 +贵州4 +贵州5 +贵州6 +贵州移动电视 +遵义新闻综合 +遵义公共 + +☘️甘肃频道,#genre# +崆峒综合 +甘肃经济 +甘肃公共 +甘肃都市 +甘肃文化 +临夏州公共 +临夏州综合 +临夏市电视台 +临洮综合 +临潭综合 +华亭综合 +华池综合 +卓尼综合 +合水综合 +嘉峪关综合 +夏河综合 +天水公共 +天水新闻综合 +天祝综合 +宁县综合 +定西公共 +定西综合 +岷县综合 +崆峒综合 +崇信综合 +平凉公共 +平凉新闻综合 +庆城综合 +张掖公共 +张掖新闻综合 +徽县综合 +成县综合 +敦煌综合 +景泰综合 +正宁综合 +武威凉州 +武威新闻 +武山综合 +武都综合 +民乐新闻 +民勤综合 +永昌综合 +永靖综合 +泾川综合 +渭源新闻 +漳县新闻综合 +灵台综合 +玉门综 +玛曲综合 +环县综合 +瓜州综合 +甘南综合 +甘南藏语 +甘肃少儿 +白银公共 +白银文化教育 +白银综合 +皋兰综合 +碌曲综合 +礼县综合 +秦安综合 +积石山综合 +肃北综合 +肃州综合 +舟曲新闻 +西和综合 +西峰综合 +迭部综合 +通渭综合 +酒泉公共 +酒泉综合 +金塔综合 +金川综合 +金昌综合 +镇原综合 +阿克塞综合 +陇西综合 +靖远综合 +静宁综合 +高台综合 + +☘️新疆频道,#genre# +克拉玛依汉语综合 +克拉玛依维语综合 +克拉玛依影剧场 +克拉玛依生活娱乐 +克拉玛依新闻 +哈密一套 +哈密二套 +哈密三套 +伊犁汉语综合 +伊犁维吾尔 +伊犁哈萨克 +伊犁经济法制 +裕民汉语 +裕民哈语 +兵团四师可克达拉综合 +兵团五师双河新闻综合 +兵团七师胡杨河新闻综合 +兵团八师石河子新闻综合 +兵团八师石河子影视文体 +兵团八师石河子经济生活 +兵团八师石河子教育 +兵团十三师新星综合 +兵团十四师昆玉综合 +奎屯哈萨克语 +伊宁汉语综合 +伊宁维吾尔语 +昭苏哈语 +昭苏汉语 +霍尔果斯综合 +玛纳斯综合 +新疆卫视 +伊犁哈萨克 +伊犁汉语综合 +伊犁经济法制 +伊犁维吾尔 +兵团四师可克达拉综合 +兵团八师石河子教育 +兵团八师石河子新闻综合 +兵团八师石河子经济生活 +克拉玛依维语综合 +克拉玛依影视 +可克达拉综合 +奎屯哈萨克语 +奎屯汉语综合 +巴音郭楞州 +玛纳斯综合 +石河子影视文体 +石河子教育 +石河子新闻综合 +石河子经济生活 +裕民哈语 +裕民汉语 + +☘️山东频道,#genre# +山东少儿 +山东新闻 +山东国际 +山东教育 +山东居家购物 +山东农科 +山东齐鲁 +山东生活 +山东体育 +山东文旅 +山东综艺 +济南综合 +济南新闻综合 +济南都市 +济南生活 +济南影视 +济南娱乐 +济南少儿 +济南商务 +济南教育 +济南鲁中 +青岛城阳 +青州电视台文化旅游 +青州电视台新闻综合 +青州电视台生活 +青州综合 +济宁公共 +济宁图文 +济宁教育 +济宁新闻综合 +济宁综合 +威海一套新闻综合 +威海三套海洋 +威海二套公共 +威海二套公共 +威海三套海洋 +东营综合 +中华美食 +临沂公共 +临沂农科 +临沂新闻综合 +垦利新闻 +岱岳综合 +日照公共 +日照新闻综合 +日照科教 +枣庄公共 +枣庄教育 +枣庄新闻综合 +泰安新闻综合 +淄博生活 +淄博都市 +滨州公共 +滨州新闻综合 +潍坊三套公共 +潍坊二套经济生活 +潍坊公共 +潍坊四套科教 +潍坊新闻综合 +潍坊滨海新闻综合 +烟台公共 +烟台新闻综合 +烟台经济科技 +菏泽一套新闻综合 +菏泽二套经济生活 +菏泽三套影视 +菏泽影 +菏泽新闻综合 +菏泽经济生活 + +☘️山西频道,#genre# +万荣综合 +五台综合 +优购物电视购物 +原平综合 +古县综合 +吉县新闻综合 +大同1套新闻综合 +大同2套公共 +大同3套煤都生活 +大宁综合 +太谷新闻综合 +宁武综合 +定襄综合 +屯留综合 +山西影视 +山西影院 +山西文体 +山西文体生活 +山西法治 +山西社会与法治 +山西经济 +山西经济与科技 +山西经济与科教 +平遥新闻综合 +怀仁综合 +昔阳电视台 +柳林综合 +武乡新闻综合 +汾西综合 +潞城新闻综合 +灵石新闻综合 +祁县新闻综合 +离石综合 +襄垣电视 +襄汾综合 +运城一套新闻综合 +运城三套科教 +运城二套公共 +运城公共 +运城新闻综合 +运城科技教育 +长子综合 +长治公共 +长治教育 +长治新闻综合 +闻喜综合 +阳曲综合 +高平综合 +黄河电视台 +黎城综合 + +☘️安徽频道,#genre# +安徽国际 +安徽影视 +安徽经济生活 +安徽综艺体育 +安徽导视 +合肥公共 +合肥新闻 +固镇新闻 +歙县综合 +肥西新闻 +肥西综合 +黟县综合 +黄山新闻综合 +黄山公共生活 +霍邱新闻综合 +霍山综合 +阜南新闻综合 +铜陵新闻综合 +铜陵公共 +金寨综合 +芜湖生活 +芜湖新闻综合 +芜湖公共 +肥西综合 +肥东经济生活 +繁昌新闻综合 +繁昌文体娱乐 +祁门综合 +石台综合 +灵璧综合 +潜山新闻综合 +滁州科教 +滁州新闻综合 +滁州市广播电视台 科教 +滁州市广播电视台 新闻综合 +滁州市广播电视台 公共 +滁州公共 +湾沚区新闻综合 +淮南新闻综合 +淮南公共 +涡阳新闻综合 +池州新闻综合 +池州公共 +歙县综合 +桐城新闻 +枞阳综合 +当涂新闻综合 +广德生活 +广德新闻综合 +岳西综合 +屯溪融媒 +宿松新闻综合 +宿州科教 +宿州新闻综合 +宿州公共 +定远综合 +定远新闻综合 +安徽综艺体育 +安徽经济生活 +安徽影院 +安徽影视 +铜陵综合 +铜陵公共 +郎溪综合台 +淮北综合 +淮北公共 +安庆教育 +安庆公共 +太和新闻综合 +固镇新闻 +南陵新闻综合 +利辛综合 +利辛影 +凤台综合 +凤台文化生活 +六安新闻综合 +六安公共 +全椒综合 +全椒生活 +休宁新闻综合 +亳州新闻 +亳州农村 +临泉新闻 +东至新闻综合 + +☘️宁夏频道,#genre# +宁夏公共 +宁夏经济 +银川生活 +银川公共 +银川文体 +吴忠综合 +吴忠公共 +中宁综合 +宁夏公共 +宁夏经济 +宁夏少儿 +宁夏电视台影视 +石嘴山综合 +安多卫视 +门源综合 +化隆综合 +民和综合 +兴海综合 +大通电视台 +湟中电视台 +西宁新闻综合 +西宁生活服务 +青海经视 +青海都市 +青海综合 + +☘️吉林频道,#genre# +延边卫视 +吉林都市 +吉林生活 +吉林影院 +吉林乡村 +吉林公共 +吉林7频道 +东北戏曲频道 +延边-1 +延边-2 +延边朝鲜语综合 +延边汉语综合 +长白山电视台 +德惠综合 +九台综合 +长白新闻综合 +长白朝语 +靖宇综合 +敦化一套 +珲春新闻综合 +龙井综合 +梅河口综合 +桦甸综合 +磐石综合 +舒兰新闻综合 +东丰综合 +双辽综合 +辉南新闻综合 +柳河综合 +通化县综合 +汪清综合 + +☘️内蒙古频道,#genre# +内蒙新闻 +内蒙经济 +内蒙少儿 +内蒙文体 +内蒙农牧 +蒙语文化 +内蒙古综合 +内蒙古经济生活 +内蒙古少儿 +内蒙古文体娱乐 +内蒙古农牧 +内蒙古蒙语文化 + +☘️云南频道,#genre# +丘北电视台 +元阳综合 +安宁综合 +宾川一套 +屏边综合 +峨山电视 +巧家综合 +广南电视台 +开远综合 +彝良综合 +文山州公共 +文山州新闻综合 +施甸综合 +昆明公共 +昆明影综艺 +昆明新闻综合 +昆明科学教育 +昆明经济生活 +易门综合 +普洱公共 +普洱新闻综合 +梁河综合 +永善综合 +江川综合 +泸水综合 +瑞丽综合 +盈江综合 +石屏综合 +砚山电视台 +福贡综合 +红塔电视台 +红河县综合 +红河州新闻综合 +绥江综合 +美丽云南 +腾冲综合 +芒市综合 +蒙自综合 +西双版纳公共 +西双版纳综合 +贡山综合 +通海电视台 +金平综合 +陇川综合 +马关电视台 +麻栗坡电视台 +云南都市 +云南娱乐 +云南公共 +云南少儿 +云南澜湄国际 +西双版纳一套 +西双版纳二套 + +☘️青海频道,#genre# +安多卫视 +西宁新闻综合 +西宁生活服务 +玉树新闻 +海西州综合 +德令哈综合 +门源综合 +贵南综合 +化隆综合 + +☘️黑龙江频道,#genre# +黑龙江文体 +黑龙江新闻法治 +黑龙江公共农业 +黑龙江影视 +黑龙江都市 +黑龙江少儿 +黑龙江新闻 +黑龙江科教 +哈尔滨新闻综合 +哈尔滨影视 +哈尔滨资讯 +哈尔滨生活 +哈尔滨娱乐 +哈尔滨新闻综合 +大庆新闻综合 +大庆公共 +鹤岗新闻综合 +鹤岗公共 +七台河新闻综合 +七台河公共 +佳木斯新闻综合 +萝北综合 +甘南县综合 +哈尔滨新闻综合 +哈尔滨影视 +哈尔滨生活 +哈尔滨娱乐 +哈尔滨都市资讯 +鹤岗新闻综合 +佳木斯新闻综合 +齐齐哈尔新闻综合 +齐齐哈尔经济法制 +双鸭山综合 +大庆新闻综合 +七台河新闻综合 +七台河民生社教 + 🌊港·澳·台,#genre# 翡翠台 明珠台 diff --git a/docs/config.md b/docs/config.md index 5845d5631c6..a58a429cfd2 100644 --- a/docs/config.md +++ b/docs/config.md @@ -8,11 +8,11 @@ | source_file | config/demo.txt | 模板文件路径 | | final_file | output/result.txt | 生成结果文件路径 | | open_online_search | False | 开启关键字搜索源功能 | -| online_search_page_num | 3 | 关键字搜索频道获取分页数量 | -| urls_limit | 15 | 单个频道接口数量 | +| online_search_page_num | 1 | 关键字搜索频道获取分页数量 | +| urls_limit | 10 | 单个频道接口数量 | | open_keep_all | False | 保留所有检索结果,会保留非模板频道名称的结果,推荐手动维护时开启 | | open_sort | True | 开启排序功能(响应速度、日期、分辨率) | -| sort_timeout | 5 | 单个接口测速超时时长,单位秒(s);数值越大测速所属时间越长,能提高获取接口数量,但质量会有所下降;数值越小测速所需时间越短,能获取低延时的接口,质量较好;调整此值能优化更新时间 | +| sort_timeout | 10 | 单个接口测速超时时长,单位秒(s);数值越大测速所属时间越长,能提高获取接口数量,但质量会有所下降;数值越小测速所需时间越短,能获取低延时的接口,质量较好;调整此值能优化更新时间 | | open_ffmpeg | True | 开启使用 FFmpeg 进行测速,获取更准确的速度与分辨率信息,需要提前手动安装 | | open_m3u_result | True | 开启转换生成 m3u 文件类型结果链接,支持显示频道图标 | | open_filter_resolution | True | 开启分辨率过滤,低于最小分辨率(min_resolution)的接口将会被过滤 | @@ -20,10 +20,10 @@ | response_time_weight | 0.5 | 响应时间权重值(所有权重值总和应为 1) | | resolution_weight | 0.5 | 分辨率权重值 (所有权重值总和应为 1) | | recent_days | 30 | 获取最近时间范围内更新的接口(单位天),适当减小可避免出现匹配问题 | -| ipv_type | ipv4 | 生成结果中接口的协议类型,可选值:ipv4、ipv6、全部 | -| ipv_type_prefer | IPv4 | 接口协议类型偏好,优先将该类型的接口排在结果前面,可选值:IPv4、IPv6、自动 | -| ipv4_num | 15 | 结果中偏好的 IPv4 接口数量 | -| ipv6_num | 15 | 结果中偏好的 IPv6 接口数量 | +| ipv_type | 全部 | 生成结果中接口的协议类型,可选值:ipv4、ipv6、全部、all | +| ipv_type_prefer | 自动 | 接口协议类型偏好,优先将该类型的接口排在结果前面,可选值:IPv4、IPv6、自动、auto | +| ipv4_num | 5 | 结果中偏好的 IPv4 接口数量 | +| ipv6_num | 5 | 结果中偏好的 IPv6 接口数量 | | domain_blacklist | epg.pw | 接口域名黑名单,用于过滤低质量含广告类域名的接口 | | url_keywords_blacklist | | 接口关键字黑名单,用于过滤含特定字符的接口 | | open_subscribe | False | 开启订阅源功能 | @@ -32,17 +32,17 @@ | open_multicast_foodie | True | 开启 Foodie 组播源工作模式 | | open_multicast_fofa | True | 开启 FOFA 组播源工作模式 | | multicast_region_list | 全部 | 组播源地区列表,[更多地区](../updates/multicast/multicast_map.json),"全部"表示所有地区 | -| multicast_page_num | 3 | 组播地区获取分页数量 | +| multicast_page_num | 1 | 组播地区获取分页数量 | | open_hotel | True | 开启酒店源功能,关闭后所有酒店源工作模式都将关闭 | -| open_hotel_foodie | False | 开启 Foodie 酒店源工作模式 | +| open_hotel_foodie | True | 开启 Foodie 酒店源工作模式 | | open_hotel_fofa | True | 开启 FOFA、ZoomEye 酒店源工作模式 | | hotel_region_list | 全部 | 酒店源地区列表,[更多地区](../updates/fofa/fofa_map.py),"全部"表示所有地区 | -| hotel_page_num | 3 | 酒店地区获取分页数量 | +| hotel_page_num | 1 | 酒店地区获取分页数量 | | request_timeout | 10 | 查询请求超时时长,单位秒(s),用于控制查询接口文本链接的超时时长以及重试时长,调整此值能优化更新时间 | | origin_type_prefer | hotel,multicast,subscribe,online_search | 结果偏好的接口来源,结果优先按该顺序进行排序,hotel:酒店源,multicast:组播源,subscribe:订阅源,online_search:关键字搜索 | -| hotel_num | 10 | 结果中偏好的酒店源接口数量 | -| multicast_num | 10 | 结果中偏好的组播源接口数量 | -| subscribe_num | 10 | 结果中偏好的订阅源接口数量 | -| online_search_num | 10 | 结果中偏好的关键字搜索接口数量 | +| hotel_num | 4 | 结果中偏好的酒店源接口数量 | +| multicast_num | 3 | 结果中偏好的组播源接口数量 | +| subscribe_num | 3 | 结果中偏好的订阅源接口数量 | +| online_search_num | 0 | 结果中偏好的关键字搜索接口数量 | | open_url_info | True | 开启显示接口说明信息,用于控制是否显示分辨率、接口协议类型等信息,为$符号后的内容,播放软件使用该信息对接口进行描述 | -| open_empty_category | True | 开启无结果频道分类,自动归类至底部 | +| open_empty_category | False | 开启无结果频道分类,自动归类至底部 | diff --git a/docs/config_en.md b/docs/config_en.md index 210ef54900d..5da6e322612 100644 --- a/docs/config_en.md +++ b/docs/config_en.md @@ -8,11 +8,11 @@ | source_file | config/demo.txt | Template file path | | final_file | output/result.txt | Generated result file path | | open_online_search | False | Enable keyword search source feature | -| online_search_page_num | 3 | Page retrieval quantity for keyword search channels | -| urls_limit | 15 | Number of interfaces per channel | +| online_search_page_num | 1 | Page retrieval quantity for keyword search channels | +| urls_limit | 10 | Number of interfaces per channel | | open_keep_all | False | Retain all search results, retain results with non-template channel names, recommended to be turned on when manually maintaining | | open_sort | True | Enable the sorting function (response speed, date, resolution) | -| sort_timeout | 5 | The timeout duration for speed testing of a single interface, in seconds (s). A larger value means a longer testing period, which can increase the number of interfaces obtained but may decrease their quality. A smaller value means a shorter testing time, which can obtain low-latency interfaces with better quality. Adjusting this value can optimize the update time. | +| sort_timeout | 10 | The timeout duration for speed testing of a single interface, in seconds (s). A larger value means a longer testing period, which can increase the number of interfaces obtained but may decrease their quality. A smaller value means a shorter testing time, which can obtain low-latency interfaces with better quality. Adjusting this value can optimize the update time. | | open_ffmpeg | True | Enable speed testing using FFmpeg to obtain more accurate speed and resolution information. Manual installation is required in advance. | | open_m3u_result | True | Enable the conversion to generate m3u file type result links, supporting the display of channel icons | | open_filter_resolution | True | Enable resolution filtering, interfaces with resolution lower than the minimum resolution (min_resolution) will be filtered | @@ -20,29 +20,29 @@ | response_time_weight | 0.5 | Response time weight value (the sum of all weight values should be 1) | | resolution_weight | 0.5 | Resolution weight value (the sum of all weight values should be 1) | | recent_days | 30 | Retrieve interfaces updated within a recent time range (in days), reducing appropriately can avoid matching issues | -| ipv_type | ipv4 | The protocol type of interface in the generated result, optional values: ipv4, ipv6, all | -| ipv_type_prefer | IPv4 | Interface protocol type preference, prioritize interfaces of this type in the results, optional values: IPv4, IPv6, auto | -| ipv4_num | 15 | The preferred number of IPv4 interfaces in the result | -| ipv6_num | 15 | The preferred number of IPv6 interfaces in the result | -| domain_blacklist | epg.pw | Interface domain blacklist, used to filter out interfaces with low-quality, ad-inclusive domains | +| ipv_type | all | The protocol type of interface in the generated result, optional values: ipv4, ipv6, all | +| ipv_type_prefer | auto | Interface protocol type preference, prioritize interfaces of this type in the results, optional values: IPv4, IPv6, auto | +| ipv4_num | 5 | The preferred number of IPv4 interfaces in the result | +| ipv6_num | 5 | The preferred number of IPv6 interfaces in the result | +| domain_blacklist | | Interface domain blacklist, used to filter out interfaces with low-quality, ad-inclusive domains | | url_keywords_blacklist | | Interface keyword blacklist, used to filter out interfaces containing specific characters | -| open_subscribe | False | Enable subscription source feature | +| open_subscribe | True | Enable subscription source feature | | subscribe_urls | | Subscription source, please enter the subscription link (supports txt and m3u links), multiple links should be separated by commas | | open_multicast | True | Enable the multicast source function, after disabling it all multicast sources will stop working | | open_multicast_foodie | True | Enable Foodie multicast source work mode | | open_multicast_fofa | True | Enable FOFA multicast source work mode | | multicast_region_list | all | Multicast source region list, [more regions](../updates/multicast/multicast_map.json, all means all regions) | -| multicast_page_num | 3 | Number of pages to retrieve for multicast regions | +| multicast_page_num | 1 | Number of pages to retrieve for multicast regions | | open_hotel | True | Enable the hotel source function, after closing it all hotel source working modes will be disabled | -| open_hotel_foodie | False | Enable Foodie hotel source work mode | +| open_hotel_foodie | True | Enable Foodie hotel source work mode | | open_hotel_fofa | True | Enable FOFA、ZoomEye hotel source work mode | | hotel_region_list | all | List of hotel source regions, [more regions](../updates/fofa/fofa_map.py), 'all' indicates all regions | -| hotel_page_num | 3 | Number of pages to retrieve for hotel regions | +| hotel_page_num | 1 | Number of pages to retrieve for hotel regions | | request_timeout | 10 | Query request timeout duration, in seconds (s), used to control the timeout and retry duration for querying interface text links. Adjusting this value can optimize update time. | | origin_type_prefer | hotel, multicast, subscribe, online_search | Result preference for the source of the interface, results are prioritized in this order: hotel: hotel source, multicast: multicast source, subscribe: subscription source, online_search: keyword search | -| hotel_num | 10 | The number of preferred hotel source interfaces in the results | -| multicast_num | 10 | The number of preferred multicast source interfaces in the results | -| subscribe_num | 10 | The number of preferred subscribe source interfaces in the results | -| online_search_num | 10 | The number of preferred keyword search interfaces in the results | +| hotel_num | 4 | The number of preferred hotel source interfaces in the results | +| multicast_num | 3 | The number of preferred multicast source interfaces in the results | +| subscribe_num | 3 | The number of preferred subscribe source interfaces in the results | +| online_search_num | 0 | The number of preferred keyword search interfaces in the results | | open_url_info | True | Enable display of API description information, used to control whether to show resolution, API protocol type, etc., the content after the $ symbol, playback software uses this information to describe the API | -| open_empty_category | True | Enable the No Results Channel Category, which will automatically categorize channels without results to the bottom | +| open_empty_category | False | Enable the No Results Channel Category, which will automatically categorize channels without results to the bottom | diff --git a/updates/fofa/fofa_hotel_region_result.pkl b/updates/fofa/fofa_hotel_region_result.pkl index b6d8fe42af5..41a975587dd 100644 Binary files a/updates/fofa/fofa_hotel_region_result.pkl and b/updates/fofa/fofa_hotel_region_result.pkl differ diff --git a/utils/channel.py b/utils/channel.py index b7d368c884f..ae0ae0e60fe 100644 --- a/utils/channel.py +++ b/utils/channel.py @@ -7,6 +7,7 @@ add_url_info, remove_cache_info, resource_path, + write_content_into_txt, ) from utils.speed import ( sort_urls_by_speed_and_resolution, @@ -145,6 +146,8 @@ def format_channel_name(name): return name cc = OpenCC("t2s") name = cc.convert(name) + for region in constants.region_list: + name = name.replace(f"{region}|", "") name = re.sub(constants.sub_pattern, "", name) for old, new in constants.replace_dict.items(): name = name.replace(old, new) @@ -167,11 +170,7 @@ def get_channel_results_by_name(name, data): Get channel results from data by name """ format_name = format_channel_name(name) - cc = OpenCC("s2t") - name_s2t = cc.convert(format_name) - result1 = data.get(format_name, []) - result2 = data.get(name_s2t, []) - results = list(dict.fromkeys(result1 + result2)) + results = data.get(format_name, []) return results @@ -408,32 +407,6 @@ def get_results_from_multicast_soup_requests(soup, hotel=False): return results -def update_channel_urls_txt(cate, name, urls, callback=None): - """ - Update the category and channel urls to the final file - """ - genre_line = cate + ",#genre#\n" - filename = "output/result_new.txt" - - if not os.path.exists(filename): - open(filename, "w").close() - - with open(filename, "r", encoding="utf-8") as f: - content = f.read() - - with open(filename, "a", encoding="utf-8") as f: - if genre_line not in content: - f.write(genre_line) - if urls: - for url in urls: - if url is not None: - f.write(f"{name},{url}\n") - if callback: - callback() - else: - f.write(f"{name},url\n") - - def get_channel_url(text): """ Get the url from text @@ -727,16 +700,19 @@ def write_channel_to_file(data, ipv6=False, callback=None): """ Write channel to file """ + path = "output/result_new.txt" if config.open_update_time: now = datetime.datetime.now() if os.environ.get("GITHUB_ACTIONS"): now += datetime.timedelta(hours=8) update_time = now.strftime("%Y-%m-%d %H:%M:%S") - update_channel_urls_txt("更新时间", f"{update_time}", ["url"]) + write_content_into_txt(f"更新时间,#genre#", path, newline=False) + write_content_into_txt(f"{update_time},url", path) no_result_name = [] open_empty_category = config.open_empty_category for cate, channel_obj in data.items(): print(f"\n{cate}:", end=" ") + write_content_into_txt(f"{cate},#genre#", path) channel_obj_keys = channel_obj.keys() names_len = len(list(channel_obj_keys)) for i, name in enumerate(channel_obj_keys): @@ -748,14 +724,17 @@ def write_channel_to_file(data, ipv6=False, callback=None): if open_empty_category: no_result_name.append(name) continue - update_channel_urls_txt(cate, name, channel_urls, callback=callback) + for url in channel_urls: + write_content_into_txt(f"{name},{url}", path, callback=callback) print() + write_content_into_txt("", path) if open_empty_category and no_result_name: print("\n🈳 No result channel name:") + write_content_into_txt("🈳无结果频道,#genre#", path) for i, name in enumerate(no_result_name): end_char = ", " if i < len(no_result_name) - 1 else "" print(name, end=end_char) - update_channel_urls_txt("🈳无结果频道", name, []) + write_content_into_txt(f"{name},url", path) print() diff --git a/utils/constants.py b/utils/constants.py index 24190d05fd7..97a667bf866 100644 --- a/utils/constants.py +++ b/utils/constants.py @@ -16,7 +16,7 @@ m3u_pattern = r"^#EXTINF:-1.*?(?:,|,)(.*?)\n" + r"(" + url_pattern + r")" -sub_pattern = r"-|_|\((.*?)\)|\((.*?)\)|\[(.*?)\]|\「(.*?)\」| |||频道|普清|标清|高清|HD|hd|超清|超高|超高清|中央|央视|台|电信|联通|移动" +sub_pattern = r"-|_|\((.*?)\)|\((.*?)\)|\[(.*?)\]|\「(.*?)\」| |||频道|普清|标清|高清|HD|hd|超清|超高|超高清|中央|央视|电视台|台|电信|联通|移动" replace_dict = { "plus": "+", @@ -52,6 +52,36 @@ "CCTV17农业": "CCTV17", } +region_list = [ + "广东", + "北京", + "湖南", + "湖北", + "浙江", + "上海", + "天津", + "江苏", + "山东", + "河南", + "河北", + "山西", + "陕西", + "安徽", + "重庆", + "福建", + "江西", + "辽宁", + "黑龙江", + "吉林", + "四川", + "云南", + "香港", + "内蒙古", + "甘肃", + "海南", + "云南", +] + origin_map = { "hotel": "酒店源", "multicast": "组播源", diff --git a/utils/tools.py b/utils/tools.py index 3019749db62..f38f2052942 100644 --- a/utils/tools.py +++ b/utils/tools.py @@ -499,3 +499,20 @@ def resource_path(relative_path, persistent=False): return os.path.join(base_path, relative_path) except Exception: return total_path + + +def write_content_into_txt(content, path=None, newline=True, callback=None): + """ + Write content into txt file + """ + if not path: + return + + with open(path, "a", encoding="utf-8") as f: + if newline: + f.write(f"\n{content}") + else: + f.write(content) + + if callback: + callback()