forked from Next-Flip/Momentum-Firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfix_ir_universals.py
executable file
·40 lines (38 loc) · 1.26 KB
/
fix_ir_universals.py
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
#!/usr/bin/env python3
import pathlib
universals = (
pathlib.Path(__file__).parent
/ "../applications/main/infrared/resources/infrared/assets"
)
for universal in universals.glob("*.ir"):
text = universal.read_text()
lines = text.splitlines()
signal = []
comment = []
signals = []
for line in lines[2:]:
if line.startswith("#"):
comment.append(line)
continue
signal.append(line)
if line.startswith(("data: ", "command: ")): # Last line of this signal
signals.append(("\n".join(signal), "\n".join(comment)))
signal.clear()
comment.clear()
found = dict()
for signal, comment in signals:
if signal in found:
if (
universal.stem == "projectors"
and found[signal] == 1
and signal.startswith("name: Power")
):
# Projectors need double press of power to confirm shutdown, so 1 dupe is fine
found[signal] += 1
continue
replace = f"\n{comment}\n{signal}"
pos = text.rfind(replace)
text = text[:pos] + text[pos + len(replace) :]
continue
found[signal] = 1
universal.write_text(text)