stream listener backup upstream
This commit is contained in:
parent
2445bd1e83
commit
8bf430e040
2
radio.py
2
radio.py
@ -76,8 +76,6 @@ def queue():
|
|||||||
return str(list(r.queue.queue))
|
return str(list(r.queue.queue))
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
r.addToQueue('https://www.youtube.com/watch?v=BaW_jenozKc')
|
|
||||||
r.playIfSongAvailable()
|
|
||||||
app.run(host="0.0.0.0")
|
app.run(host="0.0.0.0")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -11,10 +11,11 @@ from time import sleep
|
|||||||
#
|
#
|
||||||
class StreamListener(Thread):
|
class StreamListener(Thread):
|
||||||
|
|
||||||
def __init__(self, upstream, downstream):
|
def __init__(self, upstream, downstream, backupUpstream=None):
|
||||||
Thread.__init__(self)
|
Thread.__init__(self)
|
||||||
self.setUpstream(upstream)
|
self.setUpstream(upstream)
|
||||||
self.setDownstream(downstream)
|
self.setDownstream(downstream)
|
||||||
|
self.setBackupUpstream(backupUpstream)
|
||||||
self.quit = False
|
self.quit = False
|
||||||
|
|
||||||
def setUpstream(self, upstream):
|
def setUpstream(self, upstream):
|
||||||
@ -23,6 +24,12 @@ class StreamListener(Thread):
|
|||||||
else:
|
else:
|
||||||
self.stream = None
|
self.stream = None
|
||||||
|
|
||||||
|
def setBackupUpstream(self, upstream):
|
||||||
|
if not upstream is None:
|
||||||
|
self.backupStream = upstream.getStream()
|
||||||
|
else:
|
||||||
|
self.backupStream = None
|
||||||
|
|
||||||
def setDownstream(self, downstream):
|
def setDownstream(self, downstream):
|
||||||
self.listener = downstream
|
self.listener = downstream
|
||||||
|
|
||||||
@ -44,6 +51,11 @@ class StreamListener(Thread):
|
|||||||
if not self.stream is None:
|
if not self.stream is None:
|
||||||
output = non_block_read(self.stream)
|
output = non_block_read(self.stream)
|
||||||
if output == None or output == b'':
|
if output == None or output == b'':
|
||||||
|
if not self.backupStream is None:
|
||||||
|
output = non_block_read(self.backupStream)
|
||||||
|
if output == None or output == b'':
|
||||||
|
break
|
||||||
|
else:
|
||||||
break
|
break
|
||||||
self.listener.write(output)
|
self.listener.write(output)
|
||||||
sleep(0.1)
|
sleep(0.1)
|
@ -2,6 +2,7 @@ import ffmpeg
|
|||||||
from logger import logger
|
from logger import logger
|
||||||
import sys
|
import sys
|
||||||
from stream_listener import StreamListener
|
from stream_listener import StreamListener
|
||||||
|
import nullsrc
|
||||||
|
|
||||||
class Uploader(object):
|
class Uploader(object):
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ class Uploader(object):
|
|||||||
.run_async(pipe_stdin=True, pipe_stderr=True)
|
.run_async(pipe_stdin=True, pipe_stderr=True)
|
||||||
)
|
)
|
||||||
logger.add(self.process.stderr, "uploader.log")
|
logger.add(self.process.stderr, "uploader.log")
|
||||||
self.listener = StreamListener(None, self)
|
self.listener = StreamListener(None, self, backupUpstream=nullsrc.NullSrc())
|
||||||
self.listener.start()
|
self.listener.start()
|
||||||
|
|
||||||
def reconnect(self):
|
def reconnect(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user