iptv-api icon indicating copy to clipboard operation
iptv-api copied to clipboard

[Bug]: 将订阅地址添加到whitelist.txt中,排序结果没有将订阅地址中的频道排到第一

Open raynlong opened this issue 1 year ago • 7 comments

Don't skip these steps | 不要跳过这些步骤

  • [X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field | 我明白,如果我“故意”删除或跳过任何强制性的*字段,我将被封锁
  • [X] I have checked through the search that there are no similar issues that already exist | 我已经通过搜索仔细检查过没有存在已经创建的相似问题
  • [X] I will not submit any issues that are not related to this project | 我不会提交任何与本项目无关的问题

Occurrence environment | 触发环境

  • [ ] Workflow | 工作流
  • [ ] GUI | 软件
  • [X] Docker
  • [ ] Command line | 命令行

Bug description | 具体描述

环境:X86-64-deepin-1panel-docker,whitelist.txt如下图: image 订阅地址打开如下: image 输出结果如下: image 输出结果的第一位不是订阅地址的CCTV-1对应的地址。请问whitelist.txt是这样用的吗?感谢大佬解惑。

白名单地址:https://m3u.ibert.me/txt/fmml_ipv6.txt

Error log | 报错日志

No response

raynlong avatar Dec 23 '24 06:12 raynlong

你的操作没有问题,经排查,是因为多个订阅地址中同时都含有了相同的白名单接口,导致白名单接口被覆盖而失效,我已经修复该问题,等下一版本更新即可。

Guovin avatar Dec 23 '24 08:12 Guovin

没想到这么快回复,感谢大佬,让父母能安稳看电视。我自己试着用linux脚本把fmml_ipv6.txt下载下来,然后插到最终结果之前有了暂时的解决方案。代码用豆包生成,有需要的也可以试试。 #!/bin/bash

定义目标网址

url="https://m3u.ibert.me/txt/fmml_ipv6.txt"

定义原始文件保存的本地目录及文件名

original_file_path="/home/Rayn/docker/iptv-api/output/fmml_ipv6.txt"

定义修改后文件保存的本地目录及新文件名

new_file_path="/home/Rayn/docker/iptv-api/output/zb-fmm.txt"

定义zb.txt文件路径

zb_file="/home/Rayn/docker/iptv-api/output/zb.txt"

定义合并后输出文件路径

output_file="/home/Rayn/docker/iptv-api/output/zb-cs.txt"

步骤1:使用wget命令并强制指定使用IPv4地址下载指定网址的txt文件到指定本地目录

wget --inet4-only -O $original_file_path $url

步骤2:使用sed命令进行文本修改操作,删除文件里面以"_"开头,到","之间的全部字符

sed -i 's/_[^,]*//g' $original_file_path

步骤3:使用sed命令删除以特定频道开头的整行字符,多个频道使用|进行分隔表示或的关系

sed -i '/^CGTN|^三沙卫视|^农林卫视|^延边卫视|^安多卫视|^康巴卫视|^大湾区卫视/d' $original_file_path

步骤4:使用sed命令删除包含"内蒙频道"所在行及后面所有行的内容

sed -i '/内蒙频道/,$d' $original_file_path

步骤5:使用sed命令,当一行数据中包含"http"字符时,在行末尾增加字符"$-fmm源"

sed -i '/http/s/$/$fmm源/' $original_file_path

步骤6:将修改后的文件另存为新文件名到指定目录

cp $original_file_path $new_file_path

步骤7:删除原始文件

rm $original_file_path

使用awk进行文件合并操作

awk -F ',' ' NR == FNR { # 处理zb-fmm.txt文件,将数据存储到数组中,以频道名为索引 channel_data[$1] = $0; next; } { # 处理zb.txt文件 if ($1 in channel_data) { print channel_data[$1]; } print $0; }' $new_file_path $zb_file > $output_file

使用awk删除zb-cs.txt中的重复行

awk '!seen[$0]++' $output_file > /home/Rayn/docker/iptv-api/output/temp_zb-cs.txt mv /home/Rayn/docker/iptv-api/output/temp_zb-cs.txt $output_file

raynlong avatar Dec 23 '24 08:12 raynlong

更新镜像后就无需这样操作了

Guovin avatar Dec 23 '24 09:12 Guovin

好的,坐等更新,大佬有计划什么时候更新吗?

raynlong avatar Dec 23 '24 09:12 raynlong

好的,坐等更新,大佬有计划什么时候更新吗?

预计今晚到明天上午

Guovin avatar Dec 23 '24 10:12 Guovin

好的,坐等更新,大佬有计划什么时候更新吗?

预计今晚到明天上午

CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010011/1.m3u8$LR•IPV6『线路3』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/1000000001000021973/1.m3u8$LR•IPV6『线路4』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000004000002226/1.m3u8$LR•IPV6『线路5』 CCTV1,http://101.66.199.47:9901/tsfile/live/0001_1.m3u8$LR•IPV4『线路6』 CCTV1,http://221.213.69.82:9901/tsfile/live/0001_1.m3u8$LR•IPV4『线路7』 CCTV1,http://101.66.199.73:9901/tsfile/live/0001_1.m3u8$LR•IPV4『线路8』


可以增加变成 线路几 这样的 格式嘛。电视手动换线路的时候在右下角可以 清楚看见换到线路几了。目前电视右下角换线路全部都显示IPV6

buzhixihuan2021 avatar Dec 23 '24 12:12 buzhixihuan2021

你的操作没有问题,经排查,是因为多个订阅地址中同时都含有了相同的白名单接口,导致白名单接口被覆盖而失效,我已经修复该问题,等下一版本更新即可。

大佬,下一版本能增加重命令规则吗?单独出一个规则表进行自定义频道名称。很多订阅源频道频道名称多样化,导致无法获取。加载完接口数据添加重命令,逻辑格式这样:CCTV1(CCTV-1,CCTV1_电信,CCTV01),历遍后将()里所有频道名称重命令再测速,这样用户即可以定制频道名称,又不缺失频道接口

w1365258 avatar Dec 23 '24 13:12 w1365258

好的,坐等更新,大佬有计划什么时候更新吗?

预计今晚到明天上午

更新了docker,运行日志里有浙江地方频道数据,实际输出无浙江频道数据。然后我发现输出结果文件里,加入白名单的订阅地址在输出cctv1时是排在首位,输出cctv2等后面频道的时候就不是首位了。 IPTV-API-20241224083129.log image image image image

raynlong avatar Dec 24 '24 00:12 raynlong

你的操作没有问题,经排查,是因为多个订阅地址中同时都含有了相同的白名单接口,导致白名单接口被覆盖而失效,我已经修复该问题,等下一版本更新即可。

大佬,下一版本能增加重命令规则吗?单独出一个规则表进行自定义频道名称。很多订阅源频道频道名称多样化,导致无法获取。加载完接口数据添加重命令,逻辑格式这样:CCTV1(CCTV-1,CCTV1_电信,CCTV01),历遍后将()里所有频道名称重命令再测速,这样用户即可以定制频道名称,又不缺失频道接口

请不要在非本问题下讨论其它内容,若有需求请新建讨论

Guovin avatar Dec 24 '24 01:12 Guovin

好的,坐等更新,大佬有计划什么时候更新吗?

预计今晚到明天上午

CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010011/1.m3u8$LR•IPV6『线路3』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/1000000001000021973/1.m3u8$LR•IPV6『线路4』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000004000002226/1.m3u8$LR•IPV6『线路5』 CCTV1,http://101.66.199.47:9901/tsfile/live/0001_1.m3u8$LR•IPV4『线路6』 CCTV1,http://221.213.69.82:9901/tsfile/live/0001_1.m3u8$LR•IPV4『线路7』 CCTV1,http://101.66.199.73:9901/tsfile/live/0001_1.m3u8$LR•IPV4『线路8』

可以增加变成 线路几 这样的 格式嘛。电视手动换线路的时候在右下角可以 清楚看见换到线路几了。目前电视右下角换线路全部都显示IPV6

请不要在非本问题下讨论其它内容,若有需求请新建讨论

Guovin avatar Dec 24 '24 01:12 Guovin

好的,坐等更新,大佬有计划什么时候更新吗?

预计今晚到明天上午

更新了docker,运行日志里有浙江地方频道数据,实际输出无浙江频道数据。然后我发现输出结果文件里,加入白名单的订阅地址在输出cctv1时是排在首位,输出cctv2等后面频道的时候就不是首位了。 IPTV-API-20241224083129.log image image image image

docker完整版还没有上传更新,lite版本已经更新

Guovin avatar Dec 24 '24 01:12 Guovin

最新镜像已经全部上传,可进行拉取了

Guovin avatar Dec 24 '24 02:12 Guovin

最新镜像已经全部上传,可进行拉取了

最新1.6.1中,本地源和白名单中的CCTV直播源格式错误的话将不会被识别,比如这样的格式不会识别到最终结果内: CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 经过测试,必须这样才能识别到: CCTV-1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV-1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』

也就是必须填入CCTV-1而不是CCTV1,请问这是BUG吗?很多源都不会带上-,手动加上感觉比较麻烦,如果可以的话,希望优化,谢谢

xiaoxiongweihu avatar Feb 27 '25 17:02 xiaoxiongweihu

最新镜像已经全部上传,可进行拉取了

最新1.6.1中,本地源和白名单中的CCTV直播源格式错误的话将不会被识别,比如这样的格式不会识别到最终结果内: CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 经过测试,必须这样才能识别到: CCTV-1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV-1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』

也就是必须填入CCTV-1而不是CCTV1,请问这是BUG吗?很多源都不会带上-,手动加上感觉比较麻烦,如果可以的话,希望优化,谢谢

这是因为你的模板文件demo填写的是CCTV-1,白名单执行的是精确匹配

Guovin avatar Feb 28 '25 00:02 Guovin

最新镜像已经全部上传,可进行拉取了

最新1.6.1中,本地源和白名单中的CCTV直播源格式错误的话将不会被识别,比如这样的格式不会识别到最终结果内: CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 经过测试,必须这样才能识别到: CCTV-1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV-1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 也就是必须填入CCTV-1而不是CCTV1,请问这是BUG吗?很多源都不会带上-,手动加上感觉比较麻烦,如果可以的话,希望优化,谢谢

这是因为你的模板文件demo填写的是CCTV-1,白名单执行的是精确匹配

好的,如果可以的话,可以优化一下,增加转换逻辑

xiaoxiongweihu avatar Feb 28 '25 02:02 xiaoxiongweihu

最新镜像已经全部上传,可进行拉取了

最新1.6.1中,本地源和白名单中的CCTV直播源格式错误的话将不会被识别,比如这样的格式不会识别到最终结果内: CCTV1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 经过测试,必须这样才能识别到: CCTV-1,http://[2409:8087:5e00:24::1e]:6060/000000001000/5000000010000030810/1.m3u8$LR•IPV6『线路1』 CCTV-1,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010144/1.m3u8$LR•IPV6『线路2』 也就是必须填入CCTV-1而不是CCTV1,请问这是BUG吗?很多源都不会带上-,手动加上感觉比较麻烦,如果可以的话,希望优化,谢谢

这是因为你的模板文件demo填写的是CCTV-1,白名单执行的是精确匹配

好的,如果可以的话,可以优化一下,增加转换逻辑

因为白名单是一个高优先级的操作,影响较大,暂不考虑加入模糊匹配等处理。同时一般白名单中单个频道不会有太多接口,如果这些白名单频道你是从其它地方复制过来,手动批量重命名成模板中的频道名称即可。

Guovin avatar Feb 28 '25 02:02 Guovin