fix:ipv6 result

This commit is contained in:
guorong.zheng 2024-12-11 15:27:11 +08:00
parent bd6a7c65b2
commit e6650be126

@ -1,19 +1,21 @@
from time import time
import datetime
import os
import urllib.parse
import ipaddress
import socket
from utils.config import config
import utils.constants as constants
import logging
import os
import re
import shutil
import socket
import sys
import urllib.parse
from logging.handlers import RotatingFileHandler
from time import time
import requests
from bs4 import BeautifulSoup
from flask import render_template_string, send_file
import shutil
import requests
import sys
import logging
from logging.handlers import RotatingFileHandler
import utils.constants as constants
from utils.config import config
def get_logger(path, level=logging.ERROR, init=False):
@ -144,8 +146,8 @@ def get_total_urls_from_info_list(infoList, ipv6=False):
Get the total urls from info list
"""
ipv_type_prefer = list(config.ipv_type_prefer)
if "自动" in ipv_type_prefer or "auto" in ipv_type_prefer or not ipv_type_prefer:
ipv_type_prefer = ["ipv6", "ipv4"] if ipv6 else ["ipv4", "ipv6"]
if any(pref in ipv_type_prefer for pref in ["自动", "auto"]) or not ipv_type_prefer:
ipv_type_prefer = ["ipv6", "ipv4"] if (ipv6 or os.environ.get("GITHUB_ACTIONS")) else ["ipv4", "ipv6"]
origin_type_prefer = config.origin_type_prefer
categorized_urls = {
origin: {"ipv4": [], "ipv6": []} for origin in origin_type_prefer
@ -204,8 +206,8 @@ def get_total_urls_from_info_list(infoList, ipv6=False):
break
if ipv_num[ipv_type] < config.ipv_limit[ipv_type]:
limit = min(
config.source_limits[origin] - ipv_num[ipv_type],
config.ipv_limit[ipv_type] - ipv_num[ipv_type],
max(config.source_limits[origin] - ipv_num[ipv_type], 0),
max(config.ipv_limit[ipv_type] - ipv_num[ipv_type], 0),
)
urls = categorized_urls[origin][ipv_type][:limit]
total_urls.extend(urls)
@ -222,8 +224,8 @@ def get_total_urls_from_info_list(infoList, ipv6=False):
if len(total_urls) >= urls_limit:
break
extra_urls = categorized_urls[origin][ipv_type][
: config.source_limits[origin]
]
: config.source_limits[origin]
]
total_urls.extend(extra_urls)
total_urls = list(dict.fromkeys(total_urls))[:urls_limit]
@ -283,10 +285,10 @@ def check_url_ipv_type(url):
ipv6 = is_ipv6(url)
ipv_type = config.ipv_type
return (
(ipv_type == "ipv4" and not ipv6)
or (ipv_type == "ipv6" and ipv6)
or ipv_type == "全部"
or ipv_type == "all"
(ipv_type == "ipv4" and not ipv6)
or (ipv_type == "ipv6" and ipv6)
or ipv_type == "全部"
or ipv_type == "all"
)
@ -382,7 +384,7 @@ def convert_to_m3u():
processed_channel_name = re.sub(
r"(CCTV|CETV)-(\d+)(\+.*)?",
lambda m: f"{m.group(1)}{m.group(2)}"
+ ("+" if m.group(3) else ""),
+ ("+" if m.group(3) else ""),
original_channel_name,
)
m3u_output += f'#EXTINF:-1 tvg-name="{processed_channel_name}" tvg-logo="https://live.fanmingming.com/tv/{processed_channel_name}.png"'