server_ping = False
playlist = []
lp = 1
- player_mode = 0
+ player_mode = 1
osc_control_mode = 0
twitter_mode = 0
jingles_mode = 0
f.close()
except:
pass
-
+
if 'station_dir' in self.station:
self.station_dir = self.station['station_dir']
self.record_callback('/record', [1])
self.valid = True
-
+
def _log(self, level, msg):
try:
obj = {}
self.logqueue.put(obj)
except:
pass
-
+
def _info(self, msg):
self._log('info', msg)
-
+
def _err(self, msg):
self._log('err', msg)
-
+
def run_callback(self, path, value):
value = value[0]
self.run_mode = value
self.recorder.close()
except:
pass
-
+
if self.type == 'icecast':
date = datetime.datetime.now().strftime("%Y")
if self.channel.format == 'mp3':
else:
media = self.playlist[self.id]
self.id = (self.id + 1) % self.lp
-
+
self.q.get(1)
try:
f = open(self.statusfile, 'w')
def update_feeds(self, media_list, rss_file, sub_title):
if not self.feeds_mode:
return
-
+
rss_item_list = []
if not os.path.exists(self.feeds_dir):
os.makedirs(self.feeds_dir)
media_description = '<table>'
media_description_item = '<tr><td>%s: </td><td><b>%s</b></td></tr>'
-
+
for key in media.metadata.keys():
if media.metadata[key] != '':
media_description += media_description_item % (key.capitalize(),
def channel_open(self):
if self.channelIsOpen:
return True
-
+
try:
self.channel.open()
self.channel_delay = self.channel.delay()
return True
except:
self.err('channel could not be opened')
-
+
return False
def channel_close(self):
self._err('has no media to stream !')
return False
self.set_read_mode()
-
+
return True
except Exception, e:
self_err('icecastloop_nextmedia: Error: ' + str(e))
return False
-
+
def icecastloop_metadata(self):
try:
if (not (self.jingles_mode and (self.counter % self.jingles_frequency)) or \
while self.run_mode:
if not self.channel_open():
return
-
+
if not self.icecastloop_nextmedia():
self._info('Something wrong happened in icecastloop_nextmedia. Ending.')
return
-
+
self.icecastloop_metadata()
# TEST MODE: Jump thru only the first chunk of each file
# first = False
# else:
# break
-
+
if self.next_media or not self.run_mode:
break
-
+
if self.record_mode:
try:
# Record the chunk
self.recorder.write(self.chunk)
except:
self._err('could not write the buffer to the file')
-
+
try:
# Send the chunk to the stream
self.channel.send(self.chunk)
if self.record_mode:
self.recorder.close()
return
-
+
# send chunk loop end
# while run_mode loop end
-
+
self._info("Play mode ended. Stopping stream.")
-
+
if self.record_mode:
self.recorder.close()