IR: Basic script to remove dupes

had this lying around from last week PRs and could come useful again,
code is meh but works
This commit is contained in:
Willy-JL
2024-10-19 01:31:00 +01:00
parent 060a92fefb
commit 9865a9367f
3 changed files with 41 additions and 24 deletions

View File

@@ -76,30 +76,6 @@ address: 80 02 20 00
command: 70 00 00 00
#
name: POWER
type: parsed
protocol: RC6
address: 00 00 00 00
command: 0C 00 00 00
#
name: SOURCE
type: parsed
protocol: RC6
address: 00 00 00 00
command: 38 00 00 00
#
name: PLAY
type: parsed
protocol: RC6
address: 00 00 00 00
command: 2C 00 00 00
#
name: STOP
type: parsed
protocol: RC6
address: 00 00 00 00
command: 31 00 00 00
#
name: POWER
type: raw
frequency: 38000
duty_cycle: 0.330000

40
scripts/fix_ir_universals.py Executable file
View File

@@ -0,0 +1,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:
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)

1
scripts/fix_mfc_dict.py Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import pathlib
import string