Files
niumalll/website/check_resources.py

65 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
检查网站资源文件完整性的脚本
"""
import os
import re
from pathlib import Path
def extract_resource_links(file_path):
"""从HTML文件中提取资源链接"""
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 匹配图片链接
img_pattern = r'src="([^"]*\.(?:jpg|jpeg|png|gif|svg|ico))"'
# 匹配CSS和JS链接相对路径
resource_pattern = r'(?:src|href)="([^"]*\.(?:css|js))"'
img_links = re.findall(img_pattern, content, re.IGNORECASE)
resource_links = re.findall(resource_pattern, content, re.IGNORECASE)
# 过滤掉外部链接
local_img_links = [link for link in img_links if not link.startswith(('http://', 'https://', '//'))]
local_resource_links = [link for link in resource_links if not link.startswith(('http://', 'https://', '//'))]
return local_img_links + local_resource_links
def check_resources():
"""检查所有资源文件是否存在"""
website_dir = Path(__file__).parent
html_files = list(website_dir.glob('*.html'))
missing_resources = []
existing_resources = []
for html_file in html_files:
print(f"检查文件: {html_file.name}")
resources = extract_resource_links(html_file)
for resource in resources:
resource_path = website_dir / resource
if resource_path.exists():
existing_resources.append((html_file.name, resource, "存在"))
else:
missing_resources.append((html_file.name, resource, "缺失"))
# 输出结果
print("\n=== 资源检查结果 ===")
if missing_resources:
print("\n❌ 缺失的资源文件:")
for file, resource, status in missing_resources:
print(f" {file} -> {resource} ({status})")
else:
print("\n✅ 所有资源文件都存在")
if existing_resources:
print(f"\n✅ 存在的资源文件: {len(existing_resources)}")
return missing_resources
if __name__ == "__main__":
check_resources()