From 5930f22b6ed0bbc465185abdae9fe195a30bb8d8 Mon Sep 17 00:00:00 2001 From: achbed Date: Sat, 24 Jan 2015 01:54:41 -0600 Subject: [PATCH] Updates for relative paths Added base_dir parameter to station definition (issue #10) Added default station short_name to auto-created stations Removed previously-mandatory tags from example XML config stationfolder tag Signed-off-by: achbed --- deefuzzer/core.py | 6 ++++++ deefuzzer/station.py | 25 ++++++++++++++----------- example/deefuzzer_doc.xml | 19 +++++++++++++------ 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/deefuzzer/core.py b/deefuzzer/core.py index e394c92..ab95474 100644 --- a/deefuzzer/core.py +++ b/deefuzzer/core.py @@ -169,6 +169,11 @@ class DeeFuzzer(Thread): # This makes the log file a lot more verbose. Commented out since we report on new stations anyway. # self._info('Scanning folder ' + folder + ' for stations') + if not 'infos' in options.keys(): + options['infos'] = {} + if not 'short_name' in options['infos'].keys(): + options['infos']['short_name'] = '[name]' + files = os.listdir(folder) for file in files: filepath = os.path.join(folder, file) @@ -205,6 +210,7 @@ class DeeFuzzer(Thread): if not 'media' in s.keys(): s['media'] = {} s['media']['source'] = folder + self.add_station(s) def load_stations_fromconfig(self, folder): diff --git a/deefuzzer/station.py b/deefuzzer/station.py index 566b8e5..5804866 100644 --- a/deefuzzer/station.py +++ b/deefuzzer/station.py @@ -74,7 +74,6 @@ class Station(Thread): relay_mode = 0 record_mode = 0 run_mode = 1 - station_dir = None appendtype = 1 feeds_json = 0 feeds_rss = 1 @@ -87,6 +86,7 @@ class Station(Thread): starting_id = -1 jingles_frequency = 2 statusfile = '' + base_directory = '' def __init__(self, station, q, logqueue, m3u): Thread.__init__(self) @@ -105,21 +105,21 @@ class Station(Thread): except: pass - if 'station_dir' in self.station: - self.station_dir = self.station['station_dir'] - + if 'base_dir' in self.station: + self.base_directory = self.station['base_dir'].strip() + # Media if 'm3u' in self.station['media'].keys(): if not self.station['media']['m3u'].strip() == '': - self.media_source = self.station['media']['m3u'] + self.media_source = self._path_add_base(self.station['media']['m3u']) if 'dir' in self.station['media'].keys(): if not self.station['media']['dir'].strip() == '': - self.media_source = self.station['media']['dir'] + self.media_source = self._path_add_base(self.station['media']['dir']) if 'source' in self.station['media'].keys(): if not self.station['media']['source'].strip() == '': - self.media_source = self.station['media']['source'] + self.media_source = self._path_add_base(self.station['media']['source']) self.media_format = self.station['media']['format'] self.shuffle_mode = int(self.station['media']['shuffle']) @@ -188,7 +188,7 @@ class Station(Thread): if 'rss' in self.station: if 'mode' in self.station['rss']: self.feeds_mode = int(self.station['rss']['mode']) - self.feeds_dir = self.station['rss']['dir'] + self.feeds_dir = self._path_add_base(self.station['rss']['dir']) self.feeds_enclosure = int(self.station['rss']['enclosure']) if 'json' in self.station['rss']: self.feeds_json = int(self.station['rss']['json']) @@ -248,7 +248,7 @@ class Station(Thread): if 'frequency' in self.station['jingles']: self.jingles_frequency = int(self.station['jingles']['frequency']) if 'dir' in self.station['jingles']: - self.jingles_dir = self.station['jingles']['dir'] + self.jingles_dir = self._path_add_base(self.station['jingles']['dir']) if self.jingles_mode == 1: self.jingles_callback('/jingles', [1]) @@ -279,12 +279,15 @@ class Station(Thread): # Recording if 'record' in self.station: self.record_mode = int(self.station['record']['mode']) - self.record_dir = self.station['record']['dir'] + self.record_dir = self._path_add_base(self.station['record']['dir']) if self.record_mode: self.record_callback('/record', [1]) self.valid = True - + + def _path_add_base(self, a): + return os.path.join(self.base_directory, a) + def _log(self, level, msg): try: obj = {} diff --git a/example/deefuzzer_doc.xml b/example/deefuzzer_doc.xml index 93dcc3e..193e9b5 100644 --- a/example/deefuzzer_doc.xml +++ b/example/deefuzzer_doc.xml @@ -39,6 +39,18 @@ + + /path/to/station/folder @@ -171,9 +183,7 @@ 1 - @@ -181,9 +191,6 @@ [name] [name] - - [path] -