Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try to shorten the code length #45

Open
Seekladoom opened this issue Apr 19, 2022 · 0 comments
Open

Try to shorten the code length #45

Seekladoom opened this issue Apr 19, 2022 · 0 comments

Comments

@Seekladoom
Copy link

Seekladoom commented Apr 19, 2022

As follows, I am trying to shorten my python scripts' code.

for line in lines:
    _lstart = line.start_time
    _lend = line.end_time
    for syl in line.syls: # Syllable split mode: simplify inline variables (used as global variables)
        _si = syl.i
        _sstart = syl.start_time
        _send = syl.end_time
        _sdur = syl.duration
        _syln = len(line.syls)+1
        _center = syl.center
        _middle = syl.middle
        _text = syl.text
        # Generating lines
        if line.styleref.alignment == 8: # line partition judgment (OPJP)
            Princess_OPJP(line, line.copy())

The main purpose of this is to shorten code length in def Princess_OPJP(line, l).

def Princess_OPJP(line, l):
    if line.style == "Princess_OPJP":
        shape = "m 0 0 l 2 0 l 2 50 l 0 50 l 0 0","m 100 0 b 100 -55 55 -100 0 -100 b -55 -100 -100 -55 -100 0 b -100 55 -55 100 0 100 b 55 100 100 55 100 0","m -5 0 l -5 0 l 5 0 l 5 22 l -5 22"
        
        # circle
        for j in range(3):
            l.layer = 1
            
            # syl
            l.start_time = _lstart + _sstart + (-j-1)*100
            l.end_time = _lstart + _send + 1000
            
            l.text = "{\\an5\\move(%.f,%.f,%.f,%.f)\\1a%s\\blur%.f\\bord0\\shad0\\fad(200,500)\\p%.f}%s" % (
            _center - randint(0,50), _middle - randint(0,50), _center + randint(0,50), _middle + randint(0,50), 
            Convert.alpha_dec_to_ass(randint(50,150)), randint(1,2), randint(4,6), shape[1])
            io.write_line(l)

But doing this like the above, every time I write a script, I have to drag a long list of such codes.

    for syl in line.syls: # Syllable split mode: simplify inline variables (used as global variables)
        _si = syl.i
        _sstart = syl.start_time
        _send = syl.end_time
        _sdur = syl.duration
        _syln = len(line.syls)+1
        _center = syl.center
        _middle = syl.middle
        _text = syl.text

If I want to write _si = syl.i into ass_core.py of pyonfx,
What should I do to ensure that every script I write in the future can read the value of syl.i by writing only one _si?

When I learn Python better, I want to help you update PyonFX with more PRs.

@Seekladoom Seekladoom changed the title Try to shorten the code Try to shorten the code length Apr 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant