1
0
mirror of https://github.com/vladmandic/sdnext.git synced 2026-01-27 15:02:48 +03:00
Files
sdnext/modules/shared_helpers.py
2025-07-12 13:35:41 -04:00

75 lines
2.0 KiB
Python

import os
from types import SimpleNamespace
from modules import paths
from installer import log
dir_timestamps = {}
dir_cache = {}
def listdir(path):
if not os.path.exists(path):
return []
mtime = os.path.getmtime(path)
if path in dir_timestamps and mtime == dir_timestamps[path]:
return dir_cache[path]
else:
dir_cache[path] = [os.path.join(path, f) for f in os.listdir(path)]
dir_timestamps[path] = mtime
return dir_cache[path]
def walk_files(path, allowed_extensions=None):
if not os.path.exists(path):
return
if allowed_extensions is not None:
allowed_extensions = set(allowed_extensions)
for root, _dirs, files in os.walk(path, followlinks=True):
for filename in files:
if allowed_extensions is not None:
_, ext = os.path.splitext(filename)
if ext not in allowed_extensions:
continue
yield os.path.join(root, filename)
def html_path(filename):
return os.path.join(paths.script_path, "html", filename)
def html(filename):
path = html_path(filename)
if os.path.exists(path):
with open(path, encoding="utf8") as file:
return file.read()
return ""
def req(url_addr, headers = None, **kwargs):
import requests
if headers is None:
headers = { 'Content-type': 'application/json' }
try:
res = requests.get(url_addr, timeout=30, headers=headers, verify=False, allow_redirects=True, **kwargs)
except Exception as err:
log.error(f'HTTP request error: url={url_addr} {err}')
res = { 'status_code': 500, 'text': f'HTTP request error: url={url_addr} {err}' }
res = SimpleNamespace(**res)
return res
class TotalTQDM: # compatibility with previous global-tqdm
# import tqdm
def __init__(self):
pass
def reset(self):
pass
def update(self):
pass
def updateTotal(self, new_total):
pass
def clear(self):
pass
total_tqdm = TotalTQDM()