-initial changes for CC-1944
This commit is contained in:
parent
9759efc6cf
commit
2346be671e
|
@ -126,7 +126,12 @@ class ApiController extends Zend_Controller_Action
|
||||||
$from = $this->_getParam("from");
|
$from = $this->_getParam("from");
|
||||||
$to = $this->_getParam("to");
|
$to = $this->_getParam("to");
|
||||||
if (Schedule::ValidPypoTimeFormat($from) && Schedule::ValidPypoTimeFormat($to)) {
|
if (Schedule::ValidPypoTimeFormat($from) && Schedule::ValidPypoTimeFormat($to)) {
|
||||||
echo Schedule::ExportRangeAsJson($from, $to);
|
$result = Schedule::ExportRangeAsJson($from, $to);
|
||||||
|
$result['stream_metadata'] = array();
|
||||||
|
$result['stream_metadata']['format'] = "2";
|
||||||
|
$result['stream_metadata']['station_name'] = "z103";
|
||||||
|
$result['stream_metadata']['show_name'] = "dj danny D";
|
||||||
|
echo json_encode($result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -688,7 +688,7 @@ class Schedule {
|
||||||
$result['playlists'] = $playlists;
|
$result['playlists'] = $playlists;
|
||||||
$result['check'] = 1;
|
$result['check'] = 1;
|
||||||
|
|
||||||
print json_encode($result);
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import pickle
|
||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
import json
|
import json
|
||||||
|
import telnetlib
|
||||||
|
|
||||||
from api_clients import api_client
|
from api_clients import api_client
|
||||||
from util import CueFile
|
from util import CueFile
|
||||||
|
@ -82,11 +83,21 @@ class PypoFetch:
|
||||||
if status == 1:
|
if status == 1:
|
||||||
logger.info("dump serialized schedule to %s", self.schedule_file)
|
logger.info("dump serialized schedule to %s", self.schedule_file)
|
||||||
schedule = response['playlists']
|
schedule = response['playlists']
|
||||||
|
stream_metadata = response['stream_metadata']
|
||||||
try:
|
try:
|
||||||
schedule_file = open(self.schedule_file, "w")
|
schedule_file = open(self.schedule_file, "w")
|
||||||
pickle.dump(schedule, schedule_file)
|
pickle.dump(schedule, schedule_file)
|
||||||
schedule_file.close()
|
schedule_file.close()
|
||||||
|
|
||||||
|
tn = telnetlib.Telnet(LS_HOST, LS_PORT)
|
||||||
|
|
||||||
|
#encode in latin-1 due to this bug: http://bugs.python.org/issue1772794
|
||||||
|
tn.write(('vars.stream_metadata_type %s\n' % stream_metadata['format']).encode('latin-1'))
|
||||||
|
tn.write(('vars.show_name %s\n' % stream_metadata['show_name']).encode('latin-1'))
|
||||||
|
tn.write(('vars.station_name %s\n' % stream_metadata['station_name']).encode('latin-1'))
|
||||||
|
tn.write('exit\n')
|
||||||
|
logger.debug(tn.read_all())
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
logger.critical("Exception %s", e)
|
logger.critical("Exception %s", e)
|
||||||
status = 0
|
status = 0
|
||||||
|
|
|
@ -130,7 +130,7 @@ class PypoPush:
|
||||||
logger.debug('sleeping for %s s' % (sleep_time))
|
logger.debug('sleeping for %s s' % (sleep_time))
|
||||||
time.sleep(sleep_time)
|
time.sleep(sleep_time)
|
||||||
|
|
||||||
tn = telnetlib.Telnet(LS_HOST, 1234)
|
tn = telnetlib.Telnet(LS_HOST, LS_PORT)
|
||||||
|
|
||||||
#skip the currently playing song if any.
|
#skip the currently playing song if any.
|
||||||
logger.debug("source.skip\n")
|
logger.debug("source.skip\n")
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
def notify(m)
|
||||||
|
system("./notify.sh --data='#{!pypo_data}' --media-id=#{m['schedule_table_id']}")
|
||||||
|
print("./notify.sh --data='#{!pypo_data}' --media-id=#{m['schedule_table_id']}")
|
||||||
|
end
|
||||||
|
|
||||||
|
# A function applied to each metadata chunk
|
||||||
|
def append_title(m) =
|
||||||
|
if !stream_metadata_type == 1 then
|
||||||
|
[("artist","#{!show_name} - #{m['title']}")]
|
||||||
|
elsif !stream_metadata_type == 2 then
|
||||||
|
[("artist", ""), ("title", !show_name)]
|
||||||
|
elsif !stream_metadata_type == 3 then
|
||||||
|
[("artist",!station_name), ("title", !show_name)]
|
||||||
|
else
|
||||||
|
[]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def crossfade(s)
|
||||||
|
s = fade.in(type="log", s)
|
||||||
|
s = fade.out(type="log", s)
|
||||||
|
fader = fun (a,b) -> add(normalize=false,[b,a])
|
||||||
|
cross(fader,s)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Define a transition that fades out the
|
||||||
|
# old source, adds a single, and then
|
||||||
|
# plays the new source
|
||||||
|
def to_live(old,new) =
|
||||||
|
# Fade out old source
|
||||||
|
old = fade.final(old)
|
||||||
|
# Compose this in sequence with
|
||||||
|
# the new source
|
||||||
|
sequence([old,new])
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a skip function to a source
|
||||||
|
# when it does not have one
|
||||||
|
# by default
|
||||||
|
def add_skip_command(s)
|
||||||
|
# A command to skip
|
||||||
|
def skip(_)
|
||||||
|
source.skip(s)
|
||||||
|
"Done!"
|
||||||
|
end
|
||||||
|
# Register the command:
|
||||||
|
server.register(namespace="source",
|
||||||
|
usage="skip",
|
||||||
|
description="Skip the current song.",
|
||||||
|
"skip",skip)
|
||||||
|
end
|
|
@ -10,48 +10,18 @@ queue = audio_to_stereo(queue)
|
||||||
|
|
||||||
pypo_data = ref '0'
|
pypo_data = ref '0'
|
||||||
web_stream_enabled = ref false
|
web_stream_enabled = ref false
|
||||||
|
stream_metadata_type = ref 0
|
||||||
|
station_name = ref ''
|
||||||
|
show_name = ref ''
|
||||||
|
|
||||||
def notify(m)
|
%include "lib.liq"
|
||||||
system("./notify.sh --data='#{!pypo_data}' --media-id=#{m['schedule_table_id']}")
|
|
||||||
print("./notify.sh --data='#{!pypo_data}' --media-id=#{m['schedule_table_id']}")
|
|
||||||
end
|
|
||||||
|
|
||||||
def crossfade(s)
|
server.register(namespace="vars", "pypo_data", fun (s) -> begin pypo_data := s "Done" end)
|
||||||
s = fade.in(type="log", s)
|
server.register(namespace="vars", "web_stream_enabled", fun (s) -> begin web_stream_enabled := (s == "true") string_of(!web_stream_enabled) end)
|
||||||
s = fade.out(type="log", s)
|
server.register(namespace="vars", "stream_metadata_type", fun (s) -> begin stream_metadata_type := int_of_string(s) s end)
|
||||||
fader = fun (a,b) -> add(normalize=false,[b,a])
|
server.register(namespace="vars", "show_name", fun (s) -> begin show_name := s s end)
|
||||||
cross(fader,s)
|
server.register(namespace="vars", "station_name", fun (s) -> begin station_name := s s end)
|
||||||
end
|
|
||||||
|
|
||||||
# Define a transition that fades out the
|
|
||||||
# old source, adds a single, and then
|
|
||||||
# plays the new source
|
|
||||||
def to_live(old,new) =
|
|
||||||
# Fade out old source
|
|
||||||
old = fade.final(old)
|
|
||||||
# Compose this in sequence with
|
|
||||||
# the new source
|
|
||||||
sequence([old,new])
|
|
||||||
end
|
|
||||||
|
|
||||||
# Add a skip function to a source
|
|
||||||
# when it does not have one
|
|
||||||
# by default
|
|
||||||
def add_skip_command(s)
|
|
||||||
# A command to skip
|
|
||||||
def skip(_)
|
|
||||||
source.skip(s)
|
|
||||||
"Done!"
|
|
||||||
end
|
|
||||||
# Register the command:
|
|
||||||
server.register(namespace="source",
|
|
||||||
usage="skip",
|
|
||||||
description="Skip the current song.",
|
|
||||||
"skip",skip)
|
|
||||||
end
|
|
||||||
|
|
||||||
server.register(namespace="vars", "pypo_data", fun (s) -> begin pypo_data := s "Done" end)
|
|
||||||
server.register(namespace="vars", "web_stream_enabled", fun (s) -> begin web_stream_enabled := (s == "true") string_of(!web_stream_enabled) end)
|
|
||||||
|
|
||||||
default = single(conservative=true, "/opt/pypo/files/basic/silence.mp3")
|
default = single(conservative=true, "/opt/pypo/files/basic/silence.mp3")
|
||||||
default = rewrite_metadata([("artist","Airtime"), ("title", "offline")],default)
|
default = rewrite_metadata([("artist","Airtime"), ("title", "offline")],default)
|
||||||
|
@ -60,7 +30,6 @@ s = fallback(track_sensitive=false, [queue, default])
|
||||||
|
|
||||||
s = on_metadata(notify, s)
|
s = on_metadata(notify, s)
|
||||||
s = crossfade(s)
|
s = crossfade(s)
|
||||||
|
|
||||||
# Attach a skip command to the source s:
|
# Attach a skip command to the source s:
|
||||||
add_skip_command(s)
|
add_skip_command(s)
|
||||||
|
|
||||||
|
@ -78,6 +47,9 @@ s = switch(track_sensitive = false,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
s = map_metadata(append_title, s)
|
||||||
|
|
||||||
|
|
||||||
if output_sound_device then
|
if output_sound_device then
|
||||||
out_device = out(s)
|
out_device = out(s)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue