Spaces:
Running on Zero
Running on Zero
File size: 2,567 Bytes
459e2ec | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import re
with open("app.py", "r", encoding="utf-8") as f:
content = f.read()
js_injection = """
# --- AUTO-SAVE SETTINGS FEATURE ---
settings_comps = [
mode_input, sub_mask_mode, voice_input, source_lang_input, sub_style,
speed_input, vol_input, mute_original, logo_enabled, logo_preset, logo_scale,
cta_enabled, cta_preset, cta_scale
]
load_js = '''
function() {
let saved = localStorage.getItem('drippy4_settings');
if (saved) {
try {
let s = JSON.parse(saved);
return [
s.mode !== undefined ? s.mode : "asr",
s.mask !== undefined ? s.mask : "box",
s.voice !== undefined ? s.voice : "meme_male_gasp",
s.lang !== undefined ? s.lang : "zh",
s.style !== undefined ? s.style : "white_bold",
s.speed !== undefined ? s.speed : 1.15,
s.vol !== undefined ? s.vol : 100,
s.mute !== undefined ? s.mute : false,
s.logo_e !== undefined ? s.logo_e : false,
s.logo_p !== undefined ? s.logo_p : "bottom_right",
s.logo_s !== undefined ? s.logo_s : 18.0,
s.cta_e !== undefined ? s.cta_e : false,
s.cta_p !== undefined ? s.cta_p : "bottom_center",
s.cta_s !== undefined ? s.cta_s : 48.0
];
} catch(e) {}
}
return ["asr", "box", "meme_male_gasp", "zh", "white_bold", 1.0, 100, false, false, "bottom_right", 18.0, false, "bottom_center", 48.0];
}
'''
save_js = '''
function(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) {
let settings = {
mode: v1, mask: v2, voice: v3, lang: v4, style: v5, speed: v6, vol: v7, mute: v8,
logo_e: v9, logo_p: v10, logo_s: v11, cta_e: v12, cta_p: v13, cta_s: v14
};
localStorage.setItem('drippy4_settings', JSON.stringify(settings));
return [];
}
'''
demo.load(fn=None, inputs=None, outputs=settings_comps, js=load_js)
for comp in settings_comps:
comp.change(fn=None, inputs=settings_comps, outputs=None, js=save_js)
"""
if "AUTO-SAVE SETTINGS FEATURE" not in content:
content = content.replace("demo.queue(", js_injection + "\n\ndemo.queue(")
with open("app.py", "w", encoding="utf-8") as f:
f.write(content)
print("Patched successfully")
else:
print("Already patched")
|