import fHDHR.exceptions class OriginEPG_StandIN(): def __init__(self): pass def update_epg(self, channels): return {} class OriginChannels_StandIN(): def __init__(self): pass def get_channels(self): return [] def get_channel_stream(self, chandict): return None class OriginServiceWrapper(): def __init__(self, fhdhr, origin): self.fhdhr = fhdhr self.origin = origin self.servicename = fhdhr.config.dict["main"]["servicename"] self.setup_success = None self.setup() def setup(self): try: self.originservice = self.origin.OriginService(self.fhdhr) self.setup_success = True self.fhdhr.logger.info("%s Setup Success" % self.servicename) except fHDHR.exceptions.OriginSetupError as e: self.fhdhr.logger.error(e) self.setup_success = False if self.setup_success: self.channels = self.origin.OriginChannels(self.fhdhr, self.originservice) self.epg = self.origin.OriginEPG(self.fhdhr) else: self.channels = OriginChannels_StandIN() self.epg = OriginEPG_StandIN() def get_channels(self): return self.channels.get_channels() def get_channel_stream(self, chandict): return self.channels.get_channel_stream(chandict) def update_epg(self, channels): return self.epg.update_epg(channels) def get_status_dict(self): if self.setup_success: status_dict = { "Setup": "Success", } try: full_status_dict = self.origin.get_status_dict() for status_key in list(full_status_dict.keys()): status_dict[status_key] = full_status_dict[status_key] return status_dict except AttributeError: return status_dict else: return { "Setup": "Failed", } def __getattr__(self, name): ''' will only get called for undefined attributes ''' if hasattr(self.fhdhr, name): return eval("self.fhdhr." + name) if hasattr(self.originservice, name): return eval("self.originservice." + name) elif hasattr(self.channels, name): return eval("self.channels." + name) elif hasattr(self.epg, name): return eval("self.epg." + name) else: raise AttributeError(name)