gdlib 0.2.5

Rust library for editing Geometry Dash savefiles
import pyperclip, time

inp = ""
prevpaste = pyperclip.paste()
skip_counter = 0

next_skip = 0
def wait_until_new(skip):
    global prevpaste, skip_counter
    while True:
        paste = pyperclip.paste()
        if paste != prevpaste:
            prevpaste = paste
            skip_counter += 1
            
            if skip_counter > skip:
                print(f"detected new paste: {paste}")
                skip_counter = 0
                return
        else:
            time.sleep(0.02)

while True:
    wait_until_new(next_skip)
    inp = prevpaste

    try:
        out_str = ""

        for line in inp.splitlines():
            stripped = line.strip().strip(",")

            if stripped == "json!({":
                out_str += "vec![\n"
                continue
            elif stripped == "});":
                out_str += "];"
                continue

            id, var = stripped.split("\": ")
            out_str += f"    ({id[1:]}, GDValue::Int({var})),\n"

        print(f"pasting string: {out_str}")
        pyperclip.copy(out_str)
        next_skip = 1

    except:
        print(f"failed to refactor: {inp}")
        next_skip = 0