示例#1
0
 def requireDelegate(self):
     if self.fanArt is None:
         from fanart import FanArt
         self.fanArt = FanArt(*self.args, **self.kwargs)
示例#2
0
 class DelayedInstantiationProxy(object):
     '''Could use a little introspection to sort this out but eh...'''
     
     def __init__(self, *args, **kwargs):
         self.args = args
         self.kwargs = kwargs
         self.fanArt = None
         
     def requireDelegate(self):
         if self.fanArt is None:
             from fanart import FanArt
             self.fanArt = FanArt(*self.args, **self.kwargs)
     
     def getSeasonAndEpisode(self, program):
         self.requireDelegate()
         return self.fanArt.getSeasonAndEpisode(program)
     
     def getRandomPoster(self, program):
         self.requireDelegate()
         return self.fanArt.getRandomPoster(program)
     
     def getPosters(self, program):
         self.requireDelegate()
         return self.fanArt.getPosters(program)
 
     def hasPosters(self, program):
         self.requireDelegate()
         return self.fanArt.hasPosters(program)
     
     def clear(self):
         self.requireDelegate()
         self.fanArt.clear() 
 
     def shutdown(self):
         self.requireDelegate()
         self.fanArt.shutdown()
         
     def configure(self, settings):
         self.requireDelegate()
         self.fanArt.configure(settings)
     
     def onEvent(self, event):
         self.requireDelegate()
         self.fanArt.onEvent(event)
示例#3
0
        class DelayedInstantiationProxy(object):
            '''Could use a little introspection to sort this out but eh...'''
            def __init__(self, *args, **kwargs):
                self.args = args
                self.kwargs = kwargs
                self.fanArt = None

            def requireDelegate(self):
                if self.fanArt is None:
                    from fanart import FanArt
                    self.fanArt = FanArt(*self.args, **self.kwargs)

            def getSeasonAndEpisode(self, program):
                self.requireDelegate()
                return self.fanArt.getSeasonAndEpisode(program)

            def getRandomPoster(self, program):
                self.requireDelegate()
                return self.fanArt.getRandomPoster(program)

            def getPosters(self, program):
                self.requireDelegate()
                return self.fanArt.getPosters(program)

            def hasPosters(self, program):
                self.requireDelegate()
                return self.fanArt.hasPosters(program)

            def clear(self):
                self.requireDelegate()
                self.fanArt.clear()

            def shutdown(self):
                self.requireDelegate()
                self.fanArt.shutdown()

            def configure(self, settings):
                self.requireDelegate()
                self.fanArt.configure(settings)

            def onEvent(self, event):
                self.requireDelegate()
                self.fanArt.onEvent(event)
示例#4
0
 def requireDelegate(self):
     if self.fanArt is None:
         from fanart import FanArt
         self.fanArt = FanArt(*self.args, **self.kwargs)
示例#5
0
    def bootstrapSettings(self):
        self.stage = 'Initializing Settings'
        from mythbox.settings import MythSettings
        self.settings = MythSettings(self.platform, self.translator,
                                     'settings.xml', self.bus)

        #from fanart import FanArt
        #self.log.debug('Settings = \n %s' % self.settings)

        class DelayedInstantiationProxy(object):
            '''Could use a little introspection to sort this out but eh...'''
            def __init__(self, *args, **kwargs):
                self.args = args
                self.kwargs = kwargs
                self.fanArt = None

            def requireDelegate(self):
                if self.fanArt is None:
                    from fanart import FanArt
                    self.fanArt = FanArt(*self.args, **self.kwargs)

            def getSeasonAndEpisode(self, program):
                self.requireDelegate()
                return self.fanArt.getSeasonAndEpisode(program)

            def getRandomPoster(self, program):
                self.requireDelegate()
                return self.fanArt.getRandomPoster(program)

            def getPosters(self, program):
                self.requireDelegate()
                return self.fanArt.getPosters(program)

            def hasPosters(self, program):
                self.requireDelegate()
                return self.fanArt.hasPosters(program)

            def clear(self):
                self.requireDelegate()
                self.fanArt.clear()

            def shutdown(self):
                self.requireDelegate()
                self.fanArt.shutdown()

            def configure(self, settings):
                self.requireDelegate()
                self.fanArt.configure(settings)

            def onEvent(self, event):
                self.requireDelegate()
                self.fanArt.onEvent(event)

        from fanart import FanArt
        self.fanArt = FanArt(self.platform, self.httpCache, self.settings,
                             self.bus)
        #self.fanArt = DelayedInstantiationProxy(self.platform, self.httpCache, self.settings, self.bus)

        try:
            import socket
            socket.setdefaulttimeout(float(os.getenv('MYTHBOX_TIMEOUT', '30')))
        except:
            self.log.exception('Error setting socket timeout')

        self.bus.register(self)

        # Generate fake event to reflect value in settings.xml instead of mythbox_log.ini
        from bus import Event
        self.onEvent({
            'id': Event.SETTING_CHANGED,
            'tag': 'logging_enabled',
            'old': 'DontCare',
            'new': self.settings.get('logging_enabled')
        })