From 0f5c7e834dca3cc225af1f6473859fe6bfb2aedd Mon Sep 17 00:00:00 2001 From: frxz751113 <156018267+frxz751113@users.noreply.github.com> Date: Mon, 26 Aug 2024 10:09:51 +0800 Subject: [PATCH] =?UTF-8?q?Delete=20py/=E9=AA=8C=E6=BA=90.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py/验源.py | 107 ----------------------------------------------------- 1 file changed, 107 deletions(-) delete mode 100644 py/验源.py diff --git a/py/验源.py b/py/验源.py deleted file mode 100644 index 9becfa6..0000000 --- a/py/验源.py +++ /dev/null @@ -1,107 +0,0 @@ -# 导入必要的模块 -import time -import urllib.request -import re -from urllib.error import URLError, HTTPError -import ffmpeg - -# 读取文本文件到数组的函数 -def read_txt_to_array(file_name): - try: - # 打开并读取文件,去除每行的前后空白字符 - with open(file_name, 'r', encoding='utf-8') as file: - lines = file.readlines() - lines = [line.strip() for line in lines] - return lines - except FileNotFoundError: - # 如果文件不存在,打印错误信息 - print(f"File '{file_name}' not found.") - return [] - except Exception as e: - # 其他异常情况,打印错误信息 - print(f"An error occurred: {e}") - return [] - -# 检测URL是否可访问并记录响应时间的函数 -def check_url(url, timeout=6): - headers = { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', - } - - elapsed_time = None - status_ok = False - # resolution = None # 保留分辨率变量,但当前不使用 - - try: - if "://" in url: - # 记录请求开始时间 - start_time = time.time() - req = urllib.request.Request(url, headers=headers) - # 发送请求并接收响应 - with urllib.request.urlopen(req, timeout=timeout) as response: - elapsed_time = (time.time() - start_time) * 1000 # 转换为毫秒 - if response.status == 200: - status_ok = True - # 尝试获取视频分辨率 - resolution = get_video_resolution(url) - except HTTPError as e: - # 打印HTTP错误信息 - print(f"HTTP Error: {e.code} - {e.reason},{url}") - except URLError as e: - # 打印URL错误信息 - print(f"URL Error: {e.reason},{url}") - except Exception as e: - # 打印其他错误信息 - print(f"Error checking url: {e},{url}") - - return elapsed_time, status_ok, resolution # 返回响应时间、状态和分辨率 - -# 使用ffmpeg获取视频分辨率的函数 -def get_video_resolution(url): - try: - probe = ffmpeg.probe(url) - video_streams = [stream for stream in probe['streams'] if stream['codec_type'] == 'video'] - if video_streams: - width = video_streams[0]['width'] - height = video_streams[0]['height'] - return f'{width}x{height}' - except Exception as e: - # 打印获取分辨率时的错误信息 - print(f"Error getting resolution: {e},{url}") - return None - -# 处理单行文本并检测URL的函数 -def process_line(line): - if "#genre#" in line or "://" not in line : - return None, None # 跳过包含“#genre#”的行或不是URL的行 - parts = line.split(',') - if len(parts) == 2: - name, url = parts - elapsed_time, is_valid, resolution = check_url(url.strip()) # 获取响应时间和分辨率 - if is_valid: - return elapsed_time, f"{name},{url},{resolution}" # 返回处理时间、修改后的行和分辨率 - else: - return 0.0, line.strip() - return 0.0, line.strip() - -# 读取文本文件并处理每一行 -merged_output_lines = read_txt_to_array('大杂烩.txt') -new_merged_output_lines = [] - -for line in merged_output_lines: - if "#genre#" in line or "://" not in line: - new_merged_output_lines.append(line) # 添加跳过的行 - elif "#genre#" not in line and "," in line and "://" in line: - elapsed_time, newline = process_line(line) # 处理包含URL的行 - new_merged_output_lines.append(f"{elapsed_time:.2f}ms,{newline}") # 添加处理后的行 - -# 将处理后的文本写入新文件 -output_file = "大杂烩.txt" -try: - with open(output_file, 'w', encoding='utf-8') as f: - for line in new_merged_output_lines: - f.write(line + '\n') - print(f"合并后的文本已保存到文件: {output_file}") -except SomeSpecificError as e: - print(f"Error processing line '{line}': {e}") - break # 如果出现特定错误,退出循环