init
This commit is contained in:
38
animex/make.py
Normal file
38
animex/make.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import os
|
||||
import re
|
||||
|
||||
# 1. Find all files, excluding .git and __pycache__
|
||||
def get_all_files(base_dir):
|
||||
file_list = []
|
||||
for root, dirs, files in os.walk(base_dir):
|
||||
# Exclude .git and __pycache__
|
||||
dirs[:] = [d for d in dirs if d not in ['.git', '__pycache__']]
|
||||
for file in files:
|
||||
abs_path = os.path.join(root, file)
|
||||
rel_path = os.path.relpath(abs_path, base_dir)
|
||||
# Convert to web root-relative path
|
||||
web_path = '/' + rel_path.replace('\\', '/').replace(' ', '%20')
|
||||
file_list.append(web_path)
|
||||
return sorted(file_list)
|
||||
|
||||
# 2. Update PRECACHE_URLS in sw.js
|
||||
def update_precache_urls(sw_path, new_urls):
|
||||
with open(sw_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
# Regex to find the PRECACHE_URLS array
|
||||
pattern = re.compile(r'(const PRECACHE_URLS = \[)(.*?)(\];)', re.DOTALL)
|
||||
# Format new URLs
|
||||
url_lines = [f" '{url}'," for url in new_urls]
|
||||
new_array = '\n' + '\n'.join(url_lines) + '\n'
|
||||
new_content = pattern.sub(r"\\1" + new_array + r"\\3", content)
|
||||
with open(sw_path, 'w', encoding='utf-8') as f:
|
||||
f.write(new_content)
|
||||
|
||||
if __name__ == '__main__':
|
||||
base_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
sw_path = os.path.join(base_dir, 'sw.js')
|
||||
files = get_all_files(base_dir)
|
||||
# Optionally filter out sw.js itself if you don't want to cache it
|
||||
files = [f for f in files if not f.endswith('/sw.js')]
|
||||
update_precache_urls(sw_path, files)
|
||||
print(f'Updated PRECACHE_URLS in {sw_path} with {len(files)} files.')
|
||||
Reference in New Issue
Block a user