#!/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)