diff options
| -rwxr-xr-x | .local/share/bin/labels2lrc | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/.local/share/bin/labels2lrc b/.local/share/bin/labels2lrc index 38630c1..c8abc1c 100755 --- a/.local/share/bin/labels2lrc +++ b/.local/share/bin/labels2lrc @@ -1,17 +1,30 @@ -#!/bin/gawk -f -BEGIN { FS = "\t" } -{ - time = $1 - time = gensub(/([0-9]+)\.([0-9]{,2})([0-9]*)/, "\\1\\2.\\3", "g", time) - time = int(time + 0.5) +#!/bin/python3 + +import re +import sys + +for line in sys.stdin: + line = line.rstrip("\n") + fields = line.split("\t") + + if len(fields) < 3: + continue + + time = fields[0] + + # Equivalent of: + # gensub(/([0-9]+)\.([0-9]{,2})([0-9]*)/, "\\1\\2.\\3", "g", time) + time = re.sub(r'(\d+)\.(\d{0,2})(\d*)', r'\1\2.\3', time) + + # AWK rounds by adding 0.5 then truncating. + time = int(float(time) + 0.5) millis = time % 100 - time = int(time / 100) + time //= 100 seconds = time % 60 - time = int(time / 60) + time //= 60 minutes = time % 100 - printf("[%02d:%02d.%02d]%s\n", minutes, seconds, millis, $3) -} + print(f"[{minutes:02d}:{seconds:02d}.{millis:02d}]{fields[2]}") |