コード例 #1
0
    def get(self):  #pylint: disable=E0202,W0221
        self.write(
            self.render_string("bare_header.html",
                               title="%s Power Hours" %
                               config.station_id_friendly[self.sid]))
        self.write("<h2>%s Power Hours</h2>" %
                   config.station_id_friendly[self.sid])
        self.write("<script>window.top.current_sched_id = null;</script>\n\n")
        self.write(
            "<script>\nwindow.top.refresh_all_screens = false;\n</script>")

        self.write("<div>Input date and time in YOUR timezone.<br>")
        self.write("Name: <input id='new_ph_name' type='text' /><br>")
        self.write("URL: <input id='new_ph_url' type='text' /><br>")
        index.write_html_time_form(self, "new_ph")
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/create_producer', "
        )
        self.write(
            "{ 'producer_type': 'OneUpProducer', 'end_utc_time': document.getElementById('new_ph_timestamp').value, 'start_utc_time': document.getElementById('new_ph_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\""
        )
        self.write(">Create new, empty Power Hour</button></div>")
        self.write("<div>(based on above form with...)<br>")
        self.write(
            "Length: <select id='unrated_length'><option value='1800'>30m</option><option value='3600' selected>1h</option><option value='5400'>1.5h</option><option value='7200'>2h</option></select>"
        )
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/create_producer', "
        )
        self.write(
            "{ 'fill_unrated': true, 'producer_type': 'OneUpProducer', 'end_utc_time': parseInt(document.getElementById('new_ph_timestamp').value) + parseInt(document.getElementById('unrated_length').value), 'start_utc_time': document.getElementById('new_ph_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\""
        )
        self.write(">Create new PH w/unrated songs</button></div><hr>")

        if self.return_name in self._output and type(
                self._output[self.return_name]) == types.ListType and len(
                    self._output[self.return_name]) > 0:
            self.write("<ul>")
            for producer in self._output[self.return_name]:
                self.write(
                    "<li><div><b><a href='power_hour_detail?sid=%s&sched_id=%s'>%s</a></b></div>"
                    % (self.sid, producer['id'], producer['name']))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'US/Eastern'))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'US/Pacific'))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'Europe/London'))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'Asia/Tokyo'))
                self.write("</div></li>")
        self.write(self.render_string("basic_footer.html"))
コード例 #2
0
    def get(self):
        self.write(
            self.render_string(
                "bare_header.html",
                title="%s Create Producer" %
                config.station_id_friendly[self.sid],
            ))
        self.write("<h2>%s: Create Producer</h2>" %
                   config.station_id_friendly[self.sid])
        self.write(
            "<script>\nwindow.top.refresh_all_screens = true;\n</script>")

        # it says 'ph' because I super-lazily copy/pasted this from the power hour creator code
        self.write("<div>Type: <select id='new_ph_type'/>")
        for producer_type in event.get_admin_creatable_producers():
            self.write("<option value='%s'>%s</option>" %
                       (producer_type, producer_type))
        self.write("</select><br>")
        self.write("Name: <input id='new_ph_name' type='text' /><br>")
        self.write(
            "<br>Input date and time in YOUR timezone.<br><u>Start Time</u>:<br> "
        )
        index.write_html_time_form(self, "new_ph_start")
        self.write("<br><br><u>End Time</u>:<br> ")
        index.write_html_time_form(self, "new_ph_end")
        self.write(
            "<br><br><button onclick=\"window.top.call_api('admin/create_producer', "
        )
        self.write(
            "{ 'producer_type': document.getElementById('new_ph_type').value, 'end_utc_time': document.getElementById('new_ph_end_timestamp').value, 'start_utc_time': document.getElementById('new_ph_start_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url' '', 'dj_user_id': '' });\""
        )
        self.write(">Create new Producer</button></div>")
        self.write(self.render_string("basic_footer.html"))
コード例 #3
0
    def get(self):
        p = event.BaseProducer.load_producer_by_id(
            self.get_argument("sched_id"))
        self.write(self.render_string("bare_header.html", title="%s" % p.name))
        self.write("<h2>%s %s - %s</h2>" %
                   (config.station_id_friendly[self.sid], p.type, p.name))
        self.write(
            "<script>\nwindow.top.refresh_all_screens = true;\n</script>")

        self.write(
            "Name: <input id='new_ph_name' type='text' value=\"%s\"/><br>" %
            p.name)
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button><br><hr>"
            % p.id)
        self.write(
            "<div>Input date and time in YOUR timezone.<br><br><u>Start Time</u>:<br> "
        )
        index.write_html_time_form(self, "new_ph_start", p.start)
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/change_producer_start_time', { 'sched_id': %s, 'utc_time': document.getElementById('new_ph_start_timestamp').value });\">Change Start Time</button><br><hr>"
            % p.id)
        self.write("<u>End Time</u>:<br> ")
        index.write_html_time_form(self, "new_ph_end", p.end)
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/change_producer_end_time', { 'sched_id': %s, 'utc_time': document.getElementById('new_ph_end_timestamp').value });\">Change End Time</button><br><hr>"
            % p.id)
        self.write(self.render_string("basic_footer.html"))
コード例 #4
0
ファイル: power_hours.py プロジェクト: Abchrisabc/rainwave
	def get(self):	#pylint: disable=E0202,W0221
		self.write(self.render_string("bare_header.html", title="%s Power Hours" % config.station_id_friendly[self.sid]))
		self.write("<h2>%s Power Hours</h2>" % config.station_id_friendly[self.sid])
		self.write("<script>window.top.current_sched_id = null;</script>\n\n")
		self.write("<script>\nwindow.top.refresh_all_screens = false;\n</script>")

		self.write("<div>Input date and time in YOUR timezone.<br>")
		self.write("Name: <input id='new_ph_name' type='text' /><br>")
		self.write("URL: <input id='new_ph_url' type='text' /><br>")
		index.write_html_time_form(self, "new_ph")
		self.write("<br><button onclick=\"window.top.call_api('admin/create_producer', ")
		self.write("{ 'producer_type': 'OneUpProducer', 'end_utc_time': document.getElementById('new_ph_timestamp').value, 'start_utc_time': document.getElementById('new_ph_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\"")
		self.write(">Create new, empty Power Hour</button></div>")
		self.write("<div>(based on above form with...)<br>")
		self.write("Length: <select id='unrated_length'><option value='1800'>30m</option><option value='3600' selected>1h</option><option value='5400'>1.5h</option><option value='7200'>2h</option></select>")
		self.write("<br><button onclick=\"window.top.call_api('admin/create_producer', ")
		self.write("{ 'fill_unrated': true, 'producer_type': 'OneUpProducer', 'end_utc_time': parseInt(document.getElementById('new_ph_timestamp').value) + parseInt(document.getElementById('unrated_length').value), 'start_utc_time': document.getElementById('new_ph_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\"")
		self.write(">Create new PH w/unrated songs</button></div><hr>")

		if self.return_name in self._output and type(self._output[self.return_name]) == types.ListType and len(self._output[self.return_name]) > 0:
			self.write("<ul>")
			for producer in self._output[self.return_name]:
				self.write("<li><div><b><a href='power_hour_detail?sid=%s&sched_id=%s'>%s</a></b></div>" % (self.sid, producer['id'], producer['name']))
				self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(producer['start'], producer['end'], 'US/Eastern'))
				self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(producer['start'], producer['end'], 'US/Pacific'))
				self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(producer['start'], producer['end'], 'Europe/London'))
				self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(producer['start'], producer['end'], 'Asia/Tokyo'))
				self.write("</div></li>")
		self.write(self.render_string("basic_footer.html"))
コード例 #5
0
ファイル: power_hours.py プロジェクト: Abchrisabc/rainwave
	def get(self):	#pylint: disable=E0202,W0221
		ph = self._output[self.return_name]
		self.write(self.render_string("bare_header.html", title="%s" % ph['name']))
		self.write("<script>\nwindow.top.refresh_all_screens = false;\n</script>")
		self.write("<h2>%s</h2>" % ph['name'])
		self.write("<span>Times from the server:</span><br>")
		self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(ph['start'], ph['end'], 'US/Eastern'))
		self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(ph['start'], ph['end'], 'US/Pacific'))
		self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(ph['start'], ph['end'], 'Europe/London'))
		self.write("<div style='font-family: monospace;'>%s</div>" % get_ph_formatted_time(ph['start'], ph['end'], 'Asia/Tokyo'))

		total_len = 0
		for i, song in enumerate(ph['songs']):
			total_len += song['length']
		self.write("<br><div>Total length of songs: <b>%d:%02d</b></div>" % (int(total_len / 3600), (total_len / 60) % 60))

		self.write("<br><span>Change time.  Use YOUR timezone.</span><br>")
		index.write_html_time_form(self, "power_hour", ph['start'])
		self.write("<br><button onclick=\"window.top.call_api('admin/change_producer_start_time', ")
		self.write("{ 'utc_time': document.getElementById('power_hour_timestamp').value, 'sched_id': %s });\"" % ph['id'])
		self.write(">Change Time</button></div><hr>")

		self.write("<button onclick=\"window.top.call_api('admin/delete_producer', { 'sched_id': %s });\">Delete This Power Hour</button><hr>" % ph['id'])

		self.write("Name: <input type='text' id='new_ph_name' value='%s'><br>" % ph['name'])
		self.write("<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button><hr>" % ph['id'])

		self.write("URL: <input type='text' id='new_ph_url' value='%s'><br>" % (ph['url'] or ""))
		self.write("<button onclick=\"window.top.call_api('admin/change_producer_url', { 'sched_id': %s, 'url': document.getElementById('new_ph_url').value });\">Change URL</button><hr>" % ph['id'])

		self.write("<button onclick=\"window.top.call_api('admin/shuffle_power_hour', { 'sched_id': %s });\">Shuffle the Song Order</button><hr>\n\n" % ph['id'])

		try:
			self.write("<ol>")
			for song in ph['songs']:
				self.write("<li><div>%s" % song['title'])
				if song['one_up_used']:
					self.write(" <b>(PLAYED)</b>")
				elif song['one_up_queued']:
					self.write(" (queued)")
				self.write("</div><div>%s</div>\n" % song['albums'][0]['name'])
				self.write("<div>")
				self.write("<a onclick=\"window.top.call_api('admin/remove_from_power_hour', { 'one_up_id': %s });\">Delete</a> - " % song['one_up_id'])
				self.write("<a onclick=\"window.top.call_api('admin/move_up_in_power_hour', { 'one_up_id': %s });\">Move Up</a>" % song['one_up_id'])
				self.write("</div></li>\n")
			self.write("</ol>\n")
			self.write("<script>window.top.current_sched_id = %s;</script>\n\n" % ph['id'])
		except Exception as e:
			self.write("</ol>")
			self.write("<div>ERROR DISPLAYING SONG LIST.  Something is wrong.  Consult Rob.  Do not play this Power Hour.</div>")
			log.exception("admin", "Could not display song list.", e)
		self.write(self.render_string("basic_footer.html"))
コード例 #6
0
ファイル: power_hours.py プロジェクト: khakionion/rainwave
    def get(self):
        self.write(
            self.render_string("bare_header.html",
                               title="%s Power Hours" %
                               config.station_id_friendly[self.sid]))
        self.write("<h2>%s Power Hours</h2>" %
                   config.station_id_friendly[self.sid])
        self.write("<script>window.top.current_sched_id = null;</script>\n\n")
        self.write(
            "<script>\nwindow.top.refresh_all_screens = false;\n</script>")

        self.write("<div>Input date and time in YOUR timezone.<br>")
        self.write("Name: <input id='new_ph_name' type='text' /><br>")
        self.write("URL: <input id='new_ph_url' type='text' /><br>")
        index.write_html_time_form(self, "new_ph")
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/create_producer', "
        )
        self.write(
            "{ 'producer_type': 'OneUpProducer', 'end_utc_time': document.getElementById('new_ph_timestamp').value, 'start_utc_time': document.getElementById('new_ph_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\""
        )
        self.write(">Create new Power Hour</button></div><hr>")

        if self.return_name in self._output and type(
                self._output[self.return_name]) == types.ListType and len(
                    self._output[self.return_name]) > 0:
            self.write("<ul>")
            for producer in self._output[self.return_name]:
                self.write(
                    "<li><div><b><a href='power_hour_detail?sid=%s&sched_id=%s'>%s</a></b></div>"
                    % (self.sid, producer['id'], producer['name']))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'US/Eastern'))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'US/Pacific'))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'Europe/London'))
                self.write(
                    "<div style='font-family: monospace;'>%s</div>" %
                    get_ph_formatted_time(producer['start'], producer['end'],
                                          'Asia/Tokyo'))
                self.write("</div></li>")
        self.write(self.render_string("basic_footer.html"))
コード例 #7
0
ファイル: power_hours.py プロジェクト: khakionion/rainwave
    def get(self):
        self.write(
            self.render_string("bare_header.html", title="%s Power Hours" % config.station_id_friendly[self.sid])
        )
        self.write("<h2>%s Power Hours</h2>" % config.station_id_friendly[self.sid])
        self.write("<script>window.top.current_sched_id = null;</script>\n\n")
        self.write("<script>\nwindow.top.refresh_all_screens = false;\n</script>")

        self.write("<div>Input date and time in YOUR timezone.<br>")
        self.write("Name: <input id='new_ph_name' type='text' /><br>")
        self.write("URL: <input id='new_ph_url' type='text' /><br>")
        index.write_html_time_form(self, "new_ph")
        self.write("<br><button onclick=\"window.top.call_api('admin/create_producer', ")
        self.write(
            "{ 'producer_type': 'OneUpProducer', 'end_utc_time': document.getElementById('new_ph_timestamp').value, 'start_utc_time': document.getElementById('new_ph_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\""
        )
        self.write(">Create new Power Hour</button></div><hr>")

        if (
            self.return_name in self._output
            and type(self._output[self.return_name]) == types.ListType
            and len(self._output[self.return_name]) > 0
        ):
            self.write("<ul>")
            for producer in self._output[self.return_name]:
                self.write(
                    "<li><div><b><a href='power_hour_detail?sid=%s&sched_id=%s'>%s</a></b></div>"
                    % (self.sid, producer["id"], producer["name"])
                )
                self.write(
                    "<div style='font-family: monospace;'>%s</div>"
                    % get_ph_formatted_time(producer["start"], producer["end"], "US/Eastern")
                )
                self.write(
                    "<div style='font-family: monospace;'>%s</div>"
                    % get_ph_formatted_time(producer["start"], producer["end"], "US/Pacific")
                )
                self.write(
                    "<div style='font-family: monospace;'>%s</div>"
                    % get_ph_formatted_time(producer["start"], producer["end"], "Europe/London")
                )
                self.write(
                    "<div style='font-family: monospace;'>%s</div>"
                    % get_ph_formatted_time(producer["start"], producer["end"], "Asia/Tokyo")
                )
                self.write("</div></li>")
        self.write(self.render_string("basic_footer.html"))
コード例 #8
0
ファイル: producers.py プロジェクト: MagnusVortex/rainwave
	def get(self):
		p = event.BaseProducer.load_producer_by_id(self.get_argument("sched_id"))
		self.write(self.render_string("bare_header.html", title="%s" % p.name))
		self.write("<h2>%s %s - %s</h2>" % (config.station_id_friendly[self.sid], p.type, p.name))
		self.write("<script>\nwindow.top.refresh_all_screens = true;\n</script>")

		self.write("Name: <input id='new_ph_name' type='text' value=\"%s\"/><br>" % p.name)
		self.write("<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button><br><hr>" % p.id)
		self.write("URL: <input id='new_ph_url' type='text' value=\"%s\"/><br>" % (p.url or ""))
		self.write("<button onclick=\"window.top.call_api('admin/change_producer_url', { 'sched_id': %s, 'url': document.getElementById('new_ph_url').value });\">Change URL</button><br><hr>" % p.id)
		self.write("<div>Input date and time in YOUR timezone.<br><br><u>Start Time</u>:<br> ")
		index.write_html_time_form(self, "new_ph_start", p.start)
		self.write("<br><button onclick=\"window.top.call_api('admin/change_producer_start_time', { 'sched_id': %s, 'utc_time': document.getElementById('new_ph_start_timestamp').value });\">Change Start Time</button><br><hr>" % p.id)
		self.write("<u>End Time</u>:<br> ")
		index.write_html_time_form(self, "new_ph_end", p.end)
		self.write("<br><button onclick=\"window.top.call_api('admin/change_producer_end_time', { 'sched_id': %s, 'utc_time': document.getElementById('new_ph_end_timestamp').value });\">Change End Time</button><br><hr>" % p.id)
		self.write(self.render_string("basic_footer.html"))
コード例 #9
0
ファイル: producers.py プロジェクト: DarkLink1108/rainwave
	def get(self):
		self.write(self.render_string("bare_header.html", title="%s Create Producer" % config.station_id_friendly[self.sid]))
		self.write("<h2>%s: Create Producer</h2>" % config.station_id_friendly[self.sid])
		self.write("<script>\nwindow.top.refresh_all_screens = true;\n</script>")

		# it says 'ph' because I super-lazily copy/pasted this from the power hour creator code
		self.write("<div>Type: <select id='new_ph_type'/>")
		for producer_type in event.get_admin_creatable_producers():
			self.write("<option value='%s'>%s</option>" % (producer_type, producer_type))
		self.write("</select><br>")
		self.write("Name: <input id='new_ph_name' type='text' /><br>")
		self.write("URL: <input id='new_ph_url' type='text' /><br><br>Input date and time in YOUR timezone.<br><u>Start Time</u>:<br> ")
		index.write_html_time_form(self, "new_ph_start")
		self.write("<br><br><u>End Time</u>:<br> ")
		index.write_html_time_form(self, "new_ph_end")
		self.write("<br><br><button onclick=\"window.top.call_api('admin/create_producer', ")
		self.write("{ 'producer_type': document.getElementById('new_ph_type').value, 'end_utc_time': document.getElementById('new_ph_end_timestamp').value, 'start_utc_time': document.getElementById('new_ph_start_timestamp').value, 'name': document.getElementById('new_ph_name').value, 'url': document.getElementById('new_ph_url').value });\"")
		self.write(">Create new Producer</button></div>")
		self.write(self.render_string("basic_footer.html"))
コード例 #10
0
    def get(self):  # pylint: disable=E0202
        ph = self._output[self.return_name]
        self.write(self.render_string("bare_header.html", title="%s" % ph["name"]))
        self.write("<script>\nwindow.top.refresh_all_screens = false;\n</script>")
        self.write("<h2>%s</h2>" % ph["name"])
        self.write("<span>Times from the server:</span><br>")
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "US/Eastern")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "US/Pacific")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "Europe/London")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "Asia/Tokyo")
        )

        total_len = 0
        for song in ph["songs"]:
            total_len += song["length"]
        self.write(
            "<br><div>Total length of songs: <b>%d:%02d</b></div>"
            % (int(total_len / 3600), (total_len / 60) % 60)
        )

        self.write("<br><span>Change time.  Use YOUR timezone.</span><br>")
        index.write_html_time_form(self, "power_hour", ph["start"])
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/change_producer_start_time', "
        )
        self.write(
            "{ 'utc_time': document.getElementById('power_hour_timestamp').value, 'sched_id': %s });\""
            % ph["id"]
        )
        self.write(">Change Time</button></div><hr>")

        self.write(
            "<button onclick=\"window.top.call_api('admin/delete_producer', { 'sched_id': %s });\">Delete This Power Hour</button><hr>"
            % ph["id"]
        )

        self.write(
            "Name: <input type='text' id='new_ph_name' value='%s'><br>" % ph["name"]
        )
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button><hr>"
            % ph["id"]
        )

        self.write(
            "URL: <input type='text' id='new_ph_url' value='%s'><br>"
            % (ph["url"] or "")
        )
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_url', { 'sched_id': %s, 'url': document.getElementById('new_ph_url').value });\">Change URL</button><hr>"
            % ph["id"]
        )

        self.write(
            "<button onclick=\"window.top.call_api('admin/shuffle_power_hour', { 'sched_id': %s });\">Shuffle the Song Order</button><hr>\n\n"
            % ph["id"]
        )

        try:
            self.write("<ol>")
            for song in ph["songs"]:
                self.write("<li><div>%s" % song["title"])
                if song["one_up_used"]:
                    self.write(" <b>(PLAYED)</b>")
                elif song["one_up_queued"]:
                    self.write(" (queued)")
                self.write("</div><div>%s</div>\n" % song["albums"][0]["name"])
                self.write("<div>")
                self.write(
                    "<a onclick=\"window.top.call_api('admin/remove_from_power_hour', { 'one_up_id': %s });\">Delete</a> - "
                    % song["one_up_id"]
                )
                self.write(
                    "<a onclick=\"window.top.call_api('admin/move_up_in_power_hour', { 'one_up_id': %s });\">Move Up</a>"
                    % song["one_up_id"]
                )
                self.write("</div></li>\n")
            self.write("</ol>\n")
            self.write(
                "<script>window.top.current_sched_id = %s;</script>\n\n" % ph["id"]
            )
        except Exception as e:
            self.write("</ol>")
            self.write(
                "<div>ERROR DISPLAYING SONG LIST.  Something is wrong.  Consult Rob.  Do not play this Power Hour.</div>"
            )
            log.exception("admin", "Could not display song list.", e)
        self.write(self.render_string("basic_footer.html"))
コード例 #11
0
ファイル: power_hours.py プロジェクト: khakionion/rainwave
    def get(self):
        ph = self._output[self.return_name]
        self.write(self.render_string("bare_header.html", title="%s" % ph["name"]))
        self.write("<script>\nwindow.top.refresh_all_screens = false;\n</script>")
        self.write("<h2>%s</h2>" % ph["name"])
        self.write("<span>Times from the server:</span><br>")
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "US/Eastern")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "US/Pacific")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "Europe/London")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "Asia/Tokyo")
        )

        self.write("<br><span>Change time.  Use YOUR timezone.</span><br>")
        index.write_html_time_form(self, "power_hour", ph["start"])
        self.write("<br><button onclick=\"window.top.call_api('admin/change_producer_start_time', ")
        self.write(
            "{ 'utc_time': document.getElementById('power_hour_timestamp').value, 'sched_id': %s });\"" % ph["id"]
        )
        self.write(">Change Time</button></div><hr>")

        self.write(
            "<button onclick=\"window.top.call_api('admin/delete_producer', { 'sched_id': %s });\">Delete This Power Hour</button><hr>"
            % ph["id"]
        )

        self.write("Name: <input type='text' id='new_ph_name' value='%s'><br>" % ph["name"])
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button><hr>"
            % ph["id"]
        )

        self.write("URL: <input type='text' id='new_ph_url' value='%s'><br>" % (ph["url"] or ""))
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_url', { 'sched_id': %s, 'url': document.getElementById('new_ph_url').value });\">Change URL</button><hr>"
            % ph["id"]
        )

        self.write(
            "<button onclick=\"window.top.call_api('admin/shuffle_power_hour', { 'sched_id': %s });\">Shuffle the Song Order</button><hr>\n\n"
            % ph["id"]
        )

        try:
            self.write("<ol>")
            for song in ph["songs"]:
                self.write("<li><div>%s" % song["title"])
                if song["one_up_used"]:
                    self.write(" <b>(PLAYED)</b>")
                elif song["one_up_queued"]:
                    self.write(" (queued)")
                self.write("</div><div>%s</div>\n" % song["albums"][0]["name"])
                self.write(
                    "<div><a onclick=\"window.top.call_api('admin/remove_from_power_hour', { 'one_up_id': %s });\">Delete</a></div></li>\n"
                    % song["one_up_id"]
                )
            self.write("</ol>\n")
            self.write("<script>window.top.current_sched_id = %s;</script>\n\n" % ph["id"])
        except Exception as e:
            self.write("</ol>")
            self.write(
                "<div>ERROR DISPLAYING SONG LIST.  Something is wrong.  Consult Rob.  Do not play this Power Hour.</div>"
            )
            log.exception("admin", "Could not display song list.", e)
        self.write(self.render_string("basic_footer.html"))
コード例 #12
0
ファイル: power_hours.py プロジェクト: khakionion/rainwave
    def get(self):
        ph = self._output[self.return_name]
        self.write(
            self.render_string("bare_header.html", title="%s" % ph['name']))
        self.write(
            "<script>\nwindow.top.refresh_all_screens = false;\n</script>")
        self.write("<h2>%s</h2>" % ph['name'])
        self.write("<span>Times from the server:</span><br>")
        self.write("<div style='font-family: monospace;'>%s</div>" %
                   get_ph_formatted_time(ph['start'], ph['end'], 'US/Eastern'))
        self.write("<div style='font-family: monospace;'>%s</div>" %
                   get_ph_formatted_time(ph['start'], ph['end'], 'US/Pacific'))
        self.write(
            "<div style='font-family: monospace;'>%s</div>" %
            get_ph_formatted_time(ph['start'], ph['end'], 'Europe/London'))
        self.write("<div style='font-family: monospace;'>%s</div>" %
                   get_ph_formatted_time(ph['start'], ph['end'], 'Asia/Tokyo'))

        self.write("<br><span>Change time.  Use YOUR timezone.</span><br>")
        index.write_html_time_form(self, "power_hour", ph['start'])
        self.write(
            "<br><button onclick=\"window.top.call_api('admin/change_producer_start_time', "
        )
        self.write(
            "{ 'utc_time': document.getElementById('power_hour_timestamp').value, 'sched_id': %s });\""
            % ph['id'])
        self.write(">Change Time</button></div><hr>")

        self.write(
            "<button onclick=\"window.top.call_api('admin/delete_producer', { 'sched_id': %s });\">Delete This Power Hour</button><hr>"
            % ph['id'])

        self.write(
            "Name: <input type='text' id='new_ph_name' value='%s'><br>" %
            ph['name'])
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button><hr>"
            % ph['id'])

        self.write("URL: <input type='text' id='new_ph_url' value='%s'><br>" %
                   (ph['url'] or ""))
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_url', { 'sched_id': %s, 'url': document.getElementById('new_ph_url').value });\">Change URL</button><hr>"
            % ph['id'])

        self.write(
            "<button onclick=\"window.top.call_api('admin/shuffle_power_hour', { 'sched_id': %s });\">Shuffle the Song Order</button><hr>\n\n"
            % ph['id'])

        try:
            self.write("<ol>")
            for song in ph['songs']:
                self.write("<li><div>%s" % song['title'])
                if song['one_up_used']:
                    self.write(" <b>(PLAYED)</b>")
                elif song['one_up_queued']:
                    self.write(" (queued)")
                self.write("</div><div>%s</div>\n" % song['albums'][0]['name'])
                self.write(
                    "<div><a onclick=\"window.top.call_api('admin/remove_from_power_hour', { 'one_up_id': %s });\">Delete</a></div></li>\n"
                    % song['one_up_id'])
            self.write("</ol>\n")
            self.write(
                "<script>window.top.current_sched_id = %s;</script>\n\n" %
                ph['id'])
        except Exception as e:
            self.write("</ol>")
            self.write(
                "<div>ERROR DISPLAYING SONG LIST.  Something is wrong.  Consult Rob.  Do not play this Power Hour.</div>"
            )
            log.exception("admin", "Could not display song list.", e)
        self.write(self.render_string("basic_footer.html"))
コード例 #13
0
    def get(self):  # pylint: disable=E0202
        ph = self._output[self.return_name]
        self.write(self.render_string("bare_header.html", title="%s" % ph["name"]))
        self.write("<script>\nwindow.top.refresh_all_screens = false;\n</script>")
        self.write("<h2>")
        self.write("<div style=\"float: right; position: relative; top: -4px; \">")
        self.write(
            "<a onclick=\"window.top.call_api('admin/delete_producer', { 'sched_id': %s });\">🚮</a>"
            % ph["id"]
        )
        self.write("</div>")
        self.write(ph["name"])
        self.write("</h2>")

        ######

        self.write(f"<div class=\"power_hour\">")
        self.write(f"<div class=\"power_hour__row\">")

        self.write("<div class=\"power_hour__left\">")
        self.write("<span>Times from the server:</span><br>")
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "US/Eastern")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "US/Pacific")
        )
        self.write(
            "<div style='font-family: monospace;'>%s</div>"
            % get_ph_formatted_time(ph["start"], ph["end"], "Europe/London")
        )
        self.write("</div>")

        self.write("<div class=\"power_hour__right\">")
        total_len = 0
        for song in ph["songs"]:
            total_len += song["length"]
        self.write(
            "<div>Total length of songs: <b>%d:%02d</b></div>"
            % (int(total_len / 3600), (total_len / 60) % 60)
        )
        self.write("</div>")

        self.write("</div>")

        self.write("</div>")

        ####

        self.write(f"<div class=\"power_hour\">")
        self.write(f"<div class=\"power_hour__row\">")

        self.write("<div class=\"power_hour__left\">")
        self.write("<span>Your TZ:</span>")
        index.write_html_time_form(self, "power_hour", ph["start"])
        self.write("</div>")

        self.write("<div class=\"power_hour__right\">")
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_start_time', "
        )
        self.write(
            "{ 'utc_time': document.getElementById('power_hour_timestamp').value, 'sched_id': %s });\""
            % ph["id"]
        )
        self.write(">Change Time</button></div>")

        self.write("</div>")
        self.write("</div>")

        ######

        self.write(f"<div class=\"power_hour\">")
        self.write(f"<div class=\"power_hour__row\">")

        self.write("<div class=\"power_hour__left\">")
        self.write(
            "Name: <input type='text' id='new_ph_name' value='%s'>" % ph["name"]
        )
        self.write("</div>")

        self.write("<div class=\"power_hour__right\">")
        self.write(
            "<button onclick=\"window.top.call_api('admin/change_producer_name', { 'sched_id': %s, 'name': document.getElementById('new_ph_name').value });\">Change Name</button>"
            % ph["id"]
        )
        self.write("</div>")
        self.write("</div>")
        self.write("</div>")

        #####

        self.write(f"<div class=\"power_hour\" style=\"margin-bottom: 24px;\">")
        self.write(f"<div class=\"power_hour__row\">")
        self.write("<div class=\"power_hour__left\">")
        self.write(
            "<button onclick=\"window.top.call_api('admin/shuffle_power_hour', { 'sched_id': %s });\">Shuffle the Song Order</button>\n\n"
            % ph["id"]
        )
        self.write("</div>")
        self.write("</div>")
        self.write("</div>")
        #####

        try:
            for song_index, song in enumerate(ph["songs"]):
                song_origin = config.station_id_friendly[song["origin_sid"]]
                song_class_modifiers = []
                if song["one_up_used"]:
                    song_class_modifiers.append("used")
                song_classes = "power_hour--".join(song_class_modifiers)
                length_seconds = "{:02d}".format(song["length"] % 60)
                length_minutes = math.floor(song["length"] / 60)
                length = f"{length_minutes}:{length_seconds}"

                ## Totality

                self.write(f"<div class=\"power_hour {song_classes}\">")

                ## First row

                self.write(f"<div class=\"power_hour__row\">")

                self.write(f"<div class=\"power_hour__left\">{song_index + 1}. {song['title']}</div>")

                self.write(f"<div class=\"power_hour__right\">({song['rating']})</div>")

                self.write(f"<div class=\"power_hour__right\">{length}</div>")

                self.write(f"<div class=\"power_hour__right\">{song_origin}</div>")

                self.write("</div>")

                ## Second row

                self.write(f"<div class=\"power_hour__row\">")

                self.write(f"<div class=\"power_hour__left power_hour__album\">{song['albums'][0]['name']}</div>")

                self.write("<div class=\"power_hour__right\">")
                self.write(
                    "<a class=\"power_hour__button\" onclick=\"window.top.call_api('admin/remove_from_power_hour', { 'one_up_id': %s });\">🚮</a>"
                    % song["one_up_id"]
                )
                self.write(
                    "<a class=\"power_hour__button\" onclick=\"window.top.call_api('admin/move_up_in_power_hour', { 'one_up_id': %s });\">🔼</a>"
                    % song["one_up_id"]
                )
                self.write("</div>")

                self.write("</div>")

                ## Totality

                self.write("</div>")

            self.write(
                "<script>window.top.current_sched_id = %s;</script>\n\n" % ph["id"]
            )
        except Exception as e:
            self.write("</ol>")
            self.write(
                "<div>ERROR DISPLAYING SONG LIST.  Something is wrong.  Consult Rob.  Do not play this Power Hour.</div>"
            )
            log.exception("admin", "Could not display song list.", e)
        self.write(self.render_string("basic_footer.html"))