s
This commit is contained in:
@@ -314,8 +314,22 @@ neko_managed_policies_enabled() {
|
||||
esac
|
||||
}
|
||||
|
||||
copy_neko_tampermonkey_seed_dir() {
|
||||
local src="${1:-}" dst="${2:-}" marker="${3:-}"
|
||||
[ -e "$src" ] || return 0
|
||||
if [ -e "$dst" ]; then
|
||||
if [ -z "$marker" ] || grep -R -a -q "$marker" "$dst" 2>/dev/null; then
|
||||
return 0
|
||||
fi
|
||||
rm -rf "$dst" 2>/dev/null || true
|
||||
fi
|
||||
mkdir -p "$(dirname "$dst")"
|
||||
cp -a "$src" "$dst" 2>/dev/null || true
|
||||
rm -f "$dst/LOCK" 2>/dev/null || true
|
||||
}
|
||||
|
||||
seed_neko_tampermonkey_profile() {
|
||||
local target="${1:-}" donor="${2:-}" rel src dst
|
||||
local target="${1:-}" donor="${2:-}" rel src dst marker
|
||||
[ -n "$target" ] || return 0
|
||||
if [ -z "$donor" ] || [ ! -d "$donor/Default/Extensions/dhdgffkkebhmkfjojejmpbldmpobfkfo" ]; then
|
||||
donor="$(find_neko_tampermonkey_seed_profile "$target")"
|
||||
@@ -328,21 +342,17 @@ seed_neko_tampermonkey_profile() {
|
||||
"Local Extension Settings/dhdgffkkebhmkfjojejmpbldmpobfkfo"; do
|
||||
src="$donor/Default/$rel"
|
||||
dst="$target/Default/$rel"
|
||||
[ -e "$src" ] || continue
|
||||
[ ! -e "$dst" ] || continue
|
||||
mkdir -p "$(dirname "$dst")"
|
||||
cp -a "$src" "$dst" 2>/dev/null || true
|
||||
rm -f "$dst/LOCK" 2>/dev/null || true
|
||||
marker="Tampermonkey"
|
||||
case "$rel" in
|
||||
"Local Extension Settings/"*) marker="YouTube Studio Auto Dismiss" ;;
|
||||
esac
|
||||
copy_neko_tampermonkey_seed_dir "$src" "$dst" "$marker"
|
||||
done
|
||||
rel="Managed Extension Settings/dhdgffkkebhmkfjojejmpbldmpobfkfo"
|
||||
src="$donor/Default/$rel"
|
||||
dst="$target/Default/$rel"
|
||||
if neko_managed_policies_enabled; then
|
||||
if [ -e "$src" ] && [ ! -e "$dst" ]; then
|
||||
mkdir -p "$(dirname "$dst")"
|
||||
cp -a "$src" "$dst" 2>/dev/null || true
|
||||
rm -f "$dst/LOCK" 2>/dev/null || true
|
||||
fi
|
||||
copy_neko_tampermonkey_seed_dir "$src" "$dst" "YouTube Studio Auto Dismiss"
|
||||
else
|
||||
rm -rf "$dst" 2>/dev/null || true
|
||||
fi
|
||||
@@ -399,7 +409,22 @@ if not isinstance(source, dict):
|
||||
raise SystemExit(0)
|
||||
target = load(target_pref)
|
||||
settings = target.setdefault("extensions", {}).setdefault("settings", {})
|
||||
if ext_id not in settings:
|
||||
|
||||
def should_replace_current(value: object) -> bool:
|
||||
if not isinstance(value, dict):
|
||||
return True
|
||||
if value.get("state") != 1:
|
||||
return True
|
||||
if value.get("from_webstore") is not True:
|
||||
return True
|
||||
path = str(value.get("path") or "")
|
||||
if path.startswith("/"):
|
||||
return True
|
||||
if value.get("location") == 8:
|
||||
return True
|
||||
return False
|
||||
|
||||
if should_replace_current(settings.get(ext_id)):
|
||||
settings[ext_id] = source
|
||||
target_pref.parent.mkdir(parents=True, exist_ok=True)
|
||||
target_pref.write_text(json.dumps(target, ensure_ascii=False, separators=(",", ":")), encoding="utf-8")
|
||||
|
||||
Reference in New Issue
Block a user