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")