fix:ipv6 result
This commit is contained in:
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"'
|
||||
|
Loading…
x
Reference in New Issue
Block a user