123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import logging
- import os
- import sys
- import time
- import traceback
- from api_clients.api_client import AirtimeApiClient
- def generate_liquidsoap_config(ss):
- data = ss['msg']
- fh = open('/etc/airtime/liquidsoap.cfg', 'w')
- fh.write("################################################\n")
- fh.write("# THIS FILE IS AUTO GENERATED. DO NOT CHANGE!! #\n")
- fh.write("################################################\n")
- for d in data:
- key = d['keyname']
- str_buffer = d[u'keyname'] + " = "
- if d[u'type'] == 'string':
- val = '"%s"' % d['value']
- else:
- val = d[u'value']
- val = val if len(val) > 0 else "0"
- str_buffer = "%s = %s\n" % (key, val)
- fh.write(str_buffer.encode('utf-8'))
- auth_path = os.path.dirname(os.path.realpath(__file__))
- fh.write('log_file = "/var/log/airtime/pypo-liquidsoap/<script>.log"\n')
- fh.write('auth_path = "%s/liquidsoap_auth.py"\n' % auth_path)
- fh.close()
-
- def run():
- logging.basicConfig(format='%(message)s')
- attempts = 0
- max_attempts = 10
- successful = False
-
- while not successful:
- try:
- ac = AirtimeApiClient(logging.getLogger())
- ss = ac.get_stream_setting()
- generate_liquidsoap_config(ss)
- successful = True
- except Exception, e:
- print "Unable to connect to the Airtime server."
- logging.error(str(e))
- logging.error("traceback: %s", traceback.format_exc())
- if attempts == max_attempts:
- logging.error("giving up and exiting...")
- sys.exit(1)
- else:
- time.sleep(3)
- attempts += 1
|