diff options
Diffstat (limited to 'icy-info.py')
| -rwxr-xr-x | icy-info.py | 93 | 
1 files changed, 0 insertions, 93 deletions
| diff --git a/icy-info.py b/icy-info.py deleted file mode 100755 index 14ed558..0000000 --- a/icy-info.py +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/python2 -# -# This script parses the mplayer standard output and -# extracts ICY info for the mot-encoder. -# -# Usage: -# mplayer <blablabla> | icy-info.py file.dls file-with-default.dls -# -# the file-with-default.dls contains DLS text to be sent when there -# is no ICY info - -import re -import select -import sys -import time - -re_icy = re.compile(r"""ICY Info: StreamTitle='([^']*)'.*""") - -if len(sys.argv) < 3: -    print("Please specify dls output file, and file containing default text") -    sys.exit(1) - -dls_file = sys.argv[1] - -default_textfile = sys.argv[2] - -def new_dlstext(text): -    if text.strip() == "": -        try: -            fd = open(default_textfile, "r") -            text = fd.read().strip() -            fd.close() -        except Exception as e: -            print("Could not read default text from {}: {}".format(default_textfile, e)) - -    print("New Text: {}".format(text)) - -    fd = open(dls_file, "w") -    fd.write(text) -    fd.close() - -wait_timeout = 5 -nodls_timeout = 0 - - -while True: -    # readline is blocking, therefore we cannot send a default text -    # after some timeout -    new_data = sys.stdin.readline() -    if not new_data: -        break - -    match = re_icy.match(new_data) - -    if match: -        artist_title = match.groups()[0] -        new_dlstext(artist_title) -    else: -        print("{}".format(new_data.strip())) - -if False: -    # The select call creates a one ICY delay, and it's not clear why... -    while True: -        rfds, wfds, efds = select.select( [sys.stdin], [], [], wait_timeout) - -        if rfds: -            # new data available on stdin -            print("SELECT !") -            new_data = sys.stdin.readline() -            print("DATA ! {}".format(new_data)) - -            if not new_data: -                break - -            match = re_icy.match(new_data) - -            if match: -                artist_title = match.groups()[0] -                new_dlstext(artist_title) -            else: -                print("{}".format(new_data.strip())) - -        else: -            # timeout reading stdin -            nodls_timeout += 1 - -            if nodls_timeout == 100: -                new_dlstext("") -                nodls_timeout = 0 - -        time.sleep(.1) - - | 
