- adapted files to mediaserver. - added mediaserver banner images. - added mediaserver code.
130 lines
3.5 KiB
Python
130 lines
3.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# ------------------------------------------------------------
|
|
# Mediaserver Base controller
|
|
# ------------------------------------------------------------
|
|
|
|
import threading
|
|
|
|
from platformcode import config, platformtools
|
|
|
|
|
|
class Controller(object):
|
|
pattern = ""
|
|
name = None
|
|
|
|
def __init__(self, handler=None, ID=None):
|
|
|
|
self.handler = handler
|
|
self.id = ID
|
|
|
|
if not self.id:
|
|
self.id = threading.current_thread().name
|
|
|
|
if self.handler:
|
|
self.platformtools = Platformtools()
|
|
self.host = "http://%s:%s" % (config.get_local_ip(), config.get_setting("server.port"))
|
|
|
|
def __setattr__(self, name, value):
|
|
super(Controller, self).__setattr__(name, value)
|
|
|
|
if name == "platformtools":
|
|
platformtools.controllers[self.id] = self.platformtools
|
|
|
|
def __del__(self):
|
|
from platformcode import platformtools
|
|
if self.id in platformtools.controllers:
|
|
del platformtools.controllers[self.id]
|
|
|
|
def run(self, path):
|
|
pass
|
|
|
|
def match(self, path):
|
|
if self.pattern.findall(path):
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
class Platformtools(object):
|
|
def dialog_ok(self, heading, line1, line2="", line3=""):
|
|
pass
|
|
|
|
def dialog_notification(self, heading, message, icon=0, time=5000, sound=True):
|
|
pass
|
|
|
|
def dialog_yesno(self, heading, line1, line2="", line3="", nolabel="No", yeslabel="Si", autoclose=""):
|
|
return True
|
|
|
|
def dialog_select(self, heading, list):
|
|
pass
|
|
|
|
def dialog_progress(self, heading, line1, line2="", line3=""):
|
|
class Dialog(object):
|
|
def __init__(self, heading, line1, line2, line3, PObject):
|
|
self.PObject = PObject
|
|
self.closed = False
|
|
self.heading = heading
|
|
text = line1
|
|
if line2: text += "\n" + line2
|
|
if line3: text += "\n" + line3
|
|
|
|
def iscanceled(self):
|
|
return self.closed
|
|
|
|
def update(self, percent, line1, line2="", line3=""):
|
|
pass
|
|
|
|
def close(self):
|
|
self.closed = True
|
|
|
|
return Dialog(heading, line1, line2, line3, None)
|
|
|
|
def dialog_progress_bg(self, heading, message=""):
|
|
class Dialog(object):
|
|
def __init__(self, heading, message, PObject):
|
|
self.PObject = PObject
|
|
self.closed = False
|
|
self.heading = heading
|
|
|
|
def isFinished(self):
|
|
return not self.closed
|
|
|
|
def update(self, percent=0, heading="", message=""):
|
|
pass
|
|
|
|
def close(self):
|
|
self.closed = True
|
|
|
|
return Dialog(heading, message, None)
|
|
|
|
def dialog_input(self, default="", heading="", hidden=False):
|
|
return default
|
|
|
|
def dialog_numeric(self, type, heading, default=""):
|
|
return None
|
|
|
|
def itemlist_refresh(self):
|
|
pass
|
|
|
|
def itemlist_update(self, item):
|
|
pass
|
|
|
|
def render_items(self, itemlist, parentitem):
|
|
pass
|
|
|
|
def is_playing(self):
|
|
return False
|
|
|
|
def play_video(self, item):
|
|
pass
|
|
|
|
def show_channel_settings(self, list_controls=None, dict_values=None, caption="", callback=None, item=None,
|
|
custom_button=None, channelpath=None):
|
|
pass
|
|
|
|
def show_video_info(self, data, caption="Información del vídeo", callback=None, item=None):
|
|
pass
|
|
|
|
def show_recaptcha(self, key, url):
|
|
pass
|