Beispiel #1
0
 def select_on_filename(self, query_input):
     log.info("[DBWrapper] select_on_filename method")
     query_param = query_input.replace(" ", "%")+"%"
     res = self.select("SELECT DISTINCT name, path FROM files " +
         "WHERE path LIKE ? ORDER BY path LIMIT 51", (query_param, ))
     for row in res:
         yield row
Beispiel #2
0
def show(session, **kwargs):
    log.info("InfoBarTunerState show")
    if gInfoBarTunerState:
        try:
            gInfoBarTunerState.show(True, forceshow=True)
        except Exception, e:
            log.exception("InfoBarTunerState show exception " + str(e))
def show(session, **kwargs):
	log.info( "InfoBarTunerState show" )
	if gInfoBarTunerState:
		try:
			gInfoBarTunerState.show(True, forceshow=True)
		except Exception, e:
			log.exception( "InfoBarTunerState show exception " + str(e) )
	def start(self):
		log.reinit()
		
		log.info( "PushService start" )
		self.stopTimer()
		
		self.begin()
		self.next()
Beispiel #5
0
 def process_IN_DELETE(self, event):
     path = os.path.join(event.path, event.name)
     if event.is_dir:
         log.info("[FileProcessEvent] DELETED DIRECTORY: " + path)
         self._file_monitor.remove_dir(path)
     else:
         log.info("[FileProcessEvent] DELETED FILE: " + path)
         self._file_monitor.remove_file(event.path, event.name)
Beispiel #6
0
 def select_on_filename(self, query_input):
     log.info("[DBWrapper] select_on_filename method")
     query_param = query_input.replace(" ", "%") + "%"
     res = self.select(
         "SELECT DISTINCT name, path FROM files " +
         "WHERE path LIKE ? ORDER BY path LIMIT 51", (query_param, ))
     for row in res:
         yield row
Beispiel #7
0
    def start(self):
        log.reinit()

        log.info("PushService start")
        self.stopTimer()

        self.begin()
        self.next()
 def process_IN_DELETE(self, event):
     path = os.path.join(event.path, event.name)
     if event.is_dir:
         log.info("[FileProcessEvent] DELETED DIRECTORY: " + path)
         self._file_monitor.remove_dir(path)
     else:
         log.info("[FileProcessEvent] DELETED FILE: " + path)
         self._file_monitor.remove_file(event.path, event.name)
Beispiel #9
0
 def on_message(self, client, userdata, message):
     log.info("MQTT Message Received {} ({})".format(
         message.topic, message.payload))
     topic = message.topic
     if topic in self.Handlers:
         for _handler in self.Handlers[topic]:
             worker = Thread(target=_handler, args=(message, ))
             worker.start()
Beispiel #10
0
 def process_IN_CREATE(self, event):
     path = os.path.join(event.path, event.name)
     
     if self.is_dir(event):
         log.info("[FileProcessEvent] CREATED DIRECTORY: " + path)
         self._file_monitor.add_dir(path)
     else:
         log.info("[FileProcessEvent] CREATED FILE: " + path)
         self._file_monitor.add_file(event.path, event.name)
Beispiel #11
0
    def _set_ignore_list(self):
        log.info("[FileMonitor] Set Regexs for Ignore List")

        ignore_res = []
        # Complie Ignore list in to a list of regexs
        for ignore in self._config.get_value("IGNORE_FILE_FILETYPES"):
            ignore = ignore.replace(".", "\.")
            ignore = ignore.replace("*", ".*")
            ignore = "^" + ignore + "$"
            log.debug("[FileMonitor] Ignore Regex = %s" % ignore)
            self._ignore_regexs.append(re.compile(ignore))
Beispiel #12
0
    def _set_ignore_list(self):
        log.info("[FileMonitor] Set Regexs for Ignore List")

        ignore_res = []
        # Complie Ignore list in to a list of regexs
        for ignore in self._config.get_value("IGNORE_FILE_FILETYPES"):
            ignore = ignore.replace(".", "\.")
            ignore = ignore.replace("*", ".*")
            ignore = "^" + ignore + "$"
            log.debug("[FileMonitor] Ignore Regex = %s" % ignore)
            self._ignore_regexs.append(re.compile(ignore))
Beispiel #13
0
    def select(self, sql, params=None):
        list_result = []
        result = Queue()
        self.execute(sql, params, result=result)

        while True:
            row = result.get()
            if row == "__END__":
                break
            list_result.append(row)
        log.info("[DBWrapper] SELECT RESULT COUNT: " + str(len(list_result)))
        return list_result
def start(reason, **kwargs):
	log.info( "InfoBarTunerState start" )
	if reason == 0: # start
		if kwargs.has_key("session"):
			if config.infobartunerstate.enabled.value:
				global gInfoBarTunerState
				session = kwargs["session"]
				try:
					gInfoBarTunerState = InfoBarTunerState(session)
					gInfoBarTunerState.onInit()
				except Exception, e:
					log.exception( "InfoBarTunerState start exception " + str(e) )
Beispiel #15
0
    def select(self, sql, params=None):
        list_result = []
        result = Queue()
        self.execute(sql, params, result=result)

        while True:
            row = result.get()
            if row == '__END__':
                break
            list_result.append(row)
        log.info("[DBWrapper] SELECT RESULT COUNT: " + str(len(list_result)))
        return list_result
Beispiel #16
0
    def split(self):
        if DataStorage().memory_type == MemoryType.WithoutEcc or DataStorage(
        ).banks_type != BanksType.Separated:
            self.create_empty_hex_files(data_banks=self.banks_number)
        else:
            self.create_empty_hex_files(data_banks=self.banks_number,
                                        ecc_banks=self.ecc_banks_number)

        self.write_split_hex_files(self.banks_number)
        if DataStorage().memory_type != MemoryType.WithoutEcc and DataStorage(
        ).banks_type == BanksType.Separated:
            self.write_ecc_files()
        log.info('All files were written successfully')
Beispiel #17
0
def start(reason, **kwargs):
    log.info("InfoBarTunerState start")
    if reason == 0:  # start
        if kwargs.has_key("session"):
            if config.infobartunerstate.enabled.value:
                global gInfoBarTunerState
                session = kwargs["session"]
                try:
                    gInfoBarTunerState = InfoBarTunerState(session)
                    gInfoBarTunerState.onInit()
                except Exception, e:
                    log.exception("InfoBarTunerState start exception " +
                                  str(e))
Beispiel #18
0
    def create_dir(self, path):
        '''

        Creates dir 'path' if 'path' don't exists. If 'path' exists it removes all files in.
        '''

        if not os.path.exists(path):
            os.mkdir(path)
        else:
            for file in os.listdir(path):
                file_path = os.path.join(path, file)
                os.remove(file_path)
        log.info('Dir {} was cleared'.format(path))
def setup(session, **kwargs):
	log.info( "InfoBarTunerState setup" )
	#TODO config
	# Overwrite Skin Position
	# Show Live TV Tuners PiP LiveStream FileStream
	# alltime permanent display, needs an dynamic update service
	# Always display at least Nothing running
	# show free tuner with dvb-type
	# Used disk size
	# Event popup timeout
	# Feldbreitenbegrenzung fuer Namen ...
	# Streaming amount of data
	# Display next x timers also if deactivated
	try:
		session.open(InfoBarTunerStateConfiguration)
	except Exception, e:
		log.exception( "InfoBarTunerStateMenu exception " + str(e) )
Beispiel #20
0
def setup(session, **kwargs):
    log.info("InfoBarTunerState setup")
    #TODO config
    # Overwrite Skin Position
    # Show Live TV Tuners PiP LiveStream FileStream
    # alltime permanent display, needs an dynamic update service
    # Always display at least Nothing running
    # show free tuner with dvb-type
    # Used disk size
    # Event popup timeout
    # Feldbreitenbegrenzung fuer Namen ...
    # Streaming amount of data
    # Display next x timers also if deactivated
    try:
        session.open(InfoBarTunerStateConfiguration)
    except Exception, e:
        log.exception("InfoBarTunerStateMenu exception " + str(e))
Beispiel #21
0
    def __init__(self, session, services, *args, **kwargs):

        log.info("SeriesPluginRenamer: services, service:", str(services))

        if services and not isinstance(services, list):
            services = [services]

        self.services = services

        self.data = []
        self.counter = 0

        session.openWithCallback(self.confirm,
                                 MessageBox,
                                 _("Do You want to start renaming?"),
                                 MessageBox.TYPE_YESNO,
                                 timeout=15,
                                 default=True)
	def __init__(self, session, services, *args, **kwargs):
		
		log.info("SeriesPluginRenamer: services, service:", str(services))
		
		if services and not isinstance(services, list):
			services = [services]	
		
		self.services = services
		
		self.data = []
		self.counter = 0
		
		session.openWithCallback(
			self.confirm,
			MessageBox,
			_("Do You want to start renaming?"),
			MessageBox.TYPE_YESNO,
			timeout = 15,
			default = True
		)
Beispiel #23
0
    def _read_file(self):
        f = file(self._file_path, "rb")
        file_list = f.readlines()
        f.close()
        self._config = {}  # reset config
        for line in file_list:
            line = line.strip()
            if len(line) > 0:
                name, value = line.split("=")

                value = value.strip()

                value = value.replace("[", "")
                value = value.replace("]", "")
                value = value.replace("'", "")

                if value.find(",") > -1:
                    self.set_value(name, [v.strip() for v in value.split(',')])
                else:
                    self.set_value(name, value)
        log.info("[Config] Config Map = %s", self._config)
Beispiel #24
0
    def _read_file(self):
        f = file(self._file_path, "rb")
        file_list = f.readlines()
        f.close()
        self._config = {} # reset config
        for line in file_list:
            line = line.strip()
            if len(line) > 0:
                name, value = line.split("=")

                value = value.strip()

                value = value.replace("[", "")
                value = value.replace("]", "")
                value = value.replace("'", "")

                if value.find(",") > -1:
                    self.set_value(name, [v.strip() for v in value.split(',')])
                else:
                    self.set_value(name, value)
        log.info("[Config] Config Map = %s", self._config)
Beispiel #25
0
    def generate_ecc_and_write_to_file(self):
        file_with_ecc_name = DataStorage().file_with_ecc = path.join(
            DataStorage().programm_location,
            'ECC_from_' + DataStorage().file_name)
        ecc_file = create_and_open_file(file_with_ecc_name)
        global_adress = DataStorage().start_ecc_address
        global_adress_bin = hex_to_bin(global_adress)
        local_adress_len = 32 - len(str(global_adress_bin))

        with open(self.hex_file, 'r') as f:
            local_adress = 0
            counter = 0
            temp_buffer = ''
            for line in f:
                if counter < 4:
                    # Write new line in the start of buffer because it's more big bits
                    temp_buffer = line.replace('\n', '').replace(
                        '\r', '') + temp_buffer
                    counter += 1
                else:
                    local_adress_bin = '{0:0{1}b}'.format(
                        local_adress, local_adress_len)
                    string_for_ecc = global_adress_bin + local_adress_bin + hex_to_bin(
                        temp_buffer)
                    ecc_hex = self.prepare_and_calc_ECC(string_for_ecc)
                    data_for_file = 'adress:{local} '\
                                    'data:{data} '\
                                    'ecc:{ecc}'.format(local=bin_to_hex(local_adress_bin, min_output_lenght=len(local_adress_bin)/4),
                                             data=temp_buffer,
                                             ecc=ecc_hex
                                             )
                    ecc_file.write(data_for_file + '\n')

                    counter = 1
                    temp_buffer = line.replace('\n', '').replace('\r', '')
                    local_adress += 1
        from Logger import log
        log.info('ECC was created in {}'.format(file_with_ecc_name))
        ecc_file.close()
	def getSeasonEpisode( self, name, webChannel, unixtime, max_time_drift ):
		result = None
		
		if self.stopped == True:
			return result
		
		skipped = self.skip.get(name, None)
		if skipped:
			if ( time() - skipped ) < skip_expiration:
				#return _("Skipped")
				socket.setdefaulttimeout( reduced_timeout )
			else:
				del self.skip[name]
		
		try:
			result = self.sp.cache.getSeasonEpisode( name, webChannel, unixtime, max_time_drift )
			log.debug("SerienServer getSeasonEpisode result:", result)
		except ProtocolError as e:
			if config.plugins.seriesplugin.stop_on_protocol_error.value == True:
				self.stopped = True
				log.info( _("ProtocolError:") + "\n" + _("Stop is enabled. To reactivate SeriesPlugin, just open the setup") )
			else:
				log.exception("Exception in xmlrpc: " + str(e) + ' - ' + str(result))
		except Exception as e:
			msg = "Exception in xmlrpc: \n" + str(e) + ' - ' + str(result) + "\n\nfor" + name + " (" + webChannel + ")"
			if not config.plugins.seriesplugin.autotimer_independent.value:
				log.exception(msg)
			else:
				# The independant mode could have a lot of non series entries
				log.debug(msg)
			self.skip[name] = time()
			result = str(e)
		
		if skipped:
			timeout = config.plugins.seriesplugin.socket_timeout.value
			socket.setdefaulttimeout( float(timeout) )
		
		return result
def bareGetEpisode(service_ref,
                   name,
                   begin,
                   end,
                   description,
                   path,
                   future=True,
                   today=False,
                   elapsed=False):
    result = _("SeriesPlugin is deactivated")
    if config.plugins.seriesplugin.enabled.value:

        log.start()

        log.info("Bare:", service_ref, name, begin, end, description, path,
                 future, today, elapsed)

        from SeriesPlugin import getInstance, refactorTitle, refactorDescription, refactorDirectory
        seriesPlugin = getInstance()
        data = seriesPlugin.getEpisode(None,
                                       name,
                                       begin,
                                       end,
                                       service_ref,
                                       future,
                                       today,
                                       elapsed,
                                       block=True)

        global loop_counter
        loop_counter += 1

        if data and isinstance(data, dict):
            name = str(refactorTitle(name, data))
            description = str(refactorDescription(description, data))
            path = refactorDirectory(path, data)
            log.info("Bare: Success", name, description, path)
            return (name, description, path, log.get())

        elif data and isinstance(data, basestring):
            global loop_data
            msg = _("Failed: %s." % (str(data)))
            log.debug(msg)
            loop_data.append(name + ": " + msg)

        else:
            global loop_data
            msg = _("No data available")
            log.debug(msg)
            loop_data.append(name + ": " + msg)

        log.info("Bare: Failed", str(data))
        return str(data)

    return result
Beispiel #28
0
    def run(self):
        self._create_db()
        while True:
            if not self._queue.empty():
                try:
                    sql, params, result = self._queue.get()
                    log.info("[DBWrapper] QUERY: %s" % sql)
                    log.info("[DBWrapper] PARAMS: %s" % str(params))
                    log.info("[DBWrapper] RESULT: " + str(result))
                    cursor = self._db.cursor()
                    if params:
                        cursor.execute(sql, params)
                    else:
                        cursor.execute(sql)
                except sqlite3.OperationalError, e:
                    log.error("[DBWrapper] OperationalError : %s" % e)

                if result:
                    log.info("[DBWrapper] Putting Results")
                    for row in cursor.fetchall():
                        result.put(row)
                    result.put("__END__")

                self._db.commit()
Beispiel #29
0
    def run(self):
        self._create_db()
        while True:
            if not self._queue.empty():
                try:
                    sql, params, result = self._queue.get()
                    log.info("[DBWrapper] QUERY: %s" % sql)
                    log.info("[DBWrapper] PARAMS: %s" % str(params))
                    log.info("[DBWrapper] RESULT: " + str(result))
                    cursor = self._db.cursor()
                    if params:
                        cursor.execute(sql, params)
                    else:
                        cursor.execute(sql)
                except sqlite3.OperationalError, e:
                    log.error("[DBWrapper] OperationalError : %s" % e)

                if result:
                    log.info("[DBWrapper] Putting Results")
                    for row in cursor.fetchall():
                        result.put(row)
                    result.put("__END__")

                self._db.commit()
def bareGetEpisode(service_ref, name, begin, end, description, path, future=True, today=False, elapsed=False, returnData=False):
	result = _("SeriesPlugin is deactivated")
	if config.plugins.seriesplugin.enabled.value:
		
		log.start()
		
		log.info("Bare:", service_ref, name, begin, end, description, path, future, today, elapsed)
		
		from SeriesPlugin import getInstance, refactorTitle, refactorDescription, refactorDirectory
		seriesPlugin = getInstance()
		data = seriesPlugin.getEpisode(
			None, 
			name, begin, end, service_ref, future, today, elapsed, block=True
		)
		
		global loop_counter
		loop_counter += 1
		
		if data and isinstance(data, dict):
			name = str(refactorTitle(name, data))
			description = str(refactorDescription(description, data))
			path = refactorDirectory(path, data)
			log.info("Bare: Success", name, description, path)
			if returnData:
				return (name, description, path, log.get(), data)
			else:
				return (name, description, path, log.get())
		
		elif data and isinstance(data, basestring):
			global loop_data
			msg = _("Failed: %s." % ( str( data ) ))
			log.debug(msg)
			loop_data.append( name + ": " + msg )
		
		else:
			global loop_data
			msg = _("No data available")
			log.debug(msg)
			loop_data.append( name + ": " + msg )
		
		log.info("Bare: Failed", str(data))
		return str(data)
	
	return result
Beispiel #31
0
    def create_empty_hex_files(self, data_banks, ecc_banks=None):
        """

        Create (banks_number) empty hex files
        """
        self.create_dir(self.splitted_files_directory)
        for number in range(data_banks):
            full_banks_name = os.path.join(
                self.splitted_files_directory,
                self.file_name + '_{}{}'.format(number, self.default_ext))

            with open(full_banks_name, 'w'):
                log.info('File {} was created'.format(full_banks_name))

        if ecc_banks:
            for number in range(ecc_banks):
                full_banks_name = os.path.join(
                    self.splitted_files_directory, self.file_name +
                    '_{}_ECC{}'.format(number, self.default_ext))

                with open(full_banks_name, 'w'):
                    log.info('File {} was created'.format(full_banks_name))
        log.info('All files was created.')
Beispiel #32
0
	def getEpisode(self, timer, block=False):
		
		log.info("timername, service, begin, end:", timer.name, str(timer.service_ref.ref), timer.begin, timer.end)
		
		if hasattr(timer, 'sp_in_queue'):
			if timer.sp_in_queue:
				msg = _("Skipping timer because it is already in queue")
				log.warning(msg, timer.name)
				timer.log(601, "[SeriesPlugin]" + " " + msg )
				return
		
		# We have to compare the length,
		# because of the E2 special chars handling for creating the filenames
		#if timer.name == name:
		# Mad Men != Mad_Men
		
		if TAG in timer.tags:
			msg = _("Skipping timer because it is already handled") + "\n\n" + _("Can be configured within the setup")
			log.info(msg, timer.name)
			timer.log(607, "[SeriesPlugin]" + " " + msg )
			return
		
		if timer.begin < time() + 60:
			msg = _("Skipping timer because it starts in less than 60 seconds")
			log.debug(msg, timer.name)
			timer.log(604, "[SeriesPlugin]" + " " + msg )
			return
		
		if timer.isRunning():
			msg = _("Skipping timer because it is already running")
			log.debug(msg, timer.name)
			timer.log(605, "[SeriesPlugin]" + " " + msg )
			return
		
		if timer.justplay:
			msg = _("Skipping timer because it is a just play timer")
			log.debug(msg, timer.name)
			timer.log(606, "[SeriesPlugin]" + " " + msg )
			return
		
		
		event = None
		epgcache = eEPGCache.getInstance()
		
		if timer.eit:
			event = epgcache.lookupEventId(timer.service_ref.ref, timer.eit)
			log.debug("lookupEventId", timer.eit, event)
		if not(event):
			event = epgcache.lookupEventTime( timer.service_ref.ref, timer.begin + ((timer.end - timer.begin) /2) );
			log.debug("lookupEventTime", event )
		
		if event:
			if not ( len(timer.name) == len(event.getEventName()) ):
				msg = _("Skipping timer because it is already modified %s" % (timer.name) )
				log.info(msg)
				timer.log(602, "[SeriesPlugin]" + " " + msg )
				return
			begin = event.getBeginTime() or 0
			duration = event.getDuration() or 0
			end = begin + duration
			
		else:
			if config.plugins.seriesplugin.timer_eit_check.value:
				msg = _("Skipping timer because no event was found")
				log.info(msg, timer.name)
				timer.log(603, "[SeriesPlugin]" + " " + msg )
				return
			else:
				# We don't know the exact margins, we will assume the E2 default margins
				log.debug("We don't know the exact margins, we will assume the E2 default margins")
				begin = timer.begin + (config.recording.margin_before.value * 60)
				end = timer.end - (config.recording.margin_after.value * 60)
		
		
		timer.log(600, "[SeriesPlugin]" + " " + _("Try to find infos for %s" % (timer.name) ) )
		
		seriesPlugin = getInstance()
		
		if timer.service_ref:
			log.debug("getEpisode:", timer.name, timer.begin, timer.end, block)
			
			timer.sp_in_queue = True
			
			return seriesPlugin.getEpisode(
					boundFunction(self.timerCallback, timer),
					timer.name, begin, end, timer.service_ref, future=True, block=block
				)
		else:
			msg = _("Skipping lookup because no channel is specified")
			log.warning(msg)
			self.timerCallback(timer, msg)
			return None
	def __init__(self, session, service=None, event=None):
		if session:
			Screen.__init__(self, session)
			
			global instance
			instance = self
		
		self.session = session
		self.skinName = [ "SeriesPluginInfoScreen" ]
		
		self["logo"] = Pixmap()
		self["cover"] = Pixmap()
		self["state"] = Pixmap()
		
		self["event_title"] = Label()
		self["event_episode"] = Label()
		self["event_description"] = ScrollLabel()
		self["datetime"] = Label()
		self["channel"] = Label()
		self["duration"] = Label()
		
		self["key_red"] = Button("")				# Rename or Record
		self["key_green"] = Button("")			# Trakt Seen / Not Seen
		self["key_yellow"] = Button("")			# Show all Episodes of current season
		self["key_blue"] = Button("")				# Show all Seasons
		
		self.redButtonFunction = None
		
		#TODO HelpableActionMap
		self["actions"] = ActionMap(["OkCancelActions", "EventViewActions", "DirectionActions", "ColorActions"],
		{
			"cancel":    self.close,
			"ok":        self.close,
			"up":        self["event_description"].pageUp,
			"down":      self["event_description"].pageDown,
			"red":       self.redButton,
			"prevEvent": self.prevEpisode,
			"nextEvent": self.nextEpisode,
			
			#TODO
			#"pageUp":    self.pageUp,
			#"pageDown":  self.pageDown,
			#"openSimilarList": self.openSimilarList
		})
		
		log.info("SeriesPluginInfo:", service, event)
		self.service = service
		self.event = event
		
		self.name = ""
		self.short = ""
		self.data = None
		
		self.path = None
		self.eservice = None
		
		self.epg = eEPGCache.getInstance()
		self.serviceHandler = eServiceCenter.getInstance()
		self.seriesPlugin = getInstance()
		
		if session:
			self.onLayoutFinish.append( self.layoutFinished )
		else:
			self.getEpisode()
	def __init__(self, session, service=None, event=None):
		if session:
			Screen.__init__(self, session)
			
			global instance
			instance = self
		
		self.session = session
		self.skinName = [ "SeriesPluginInfoScreen" ]
		
		self["logo"] = Pixmap()
		self["cover"] = Pixmap()
		self["state"] = Pixmap()
		
		self["event_title"] = Label()
		self["event_episode"] = Label()
		self["event_description"] = ScrollLabel()
		self["datetime"] = Label()
		self["channel"] = Label()
		self["duration"] = Label()
		
		self["key_red"] = Button("")				# Rename or Record
		self["key_green"] = Button("")			# Trakt Seen / Not Seen
		self["key_yellow"] = Button("")			# Show all Episodes of current season
		self["key_blue"] = Button("")				# Show all Seasons
		
		self.redButtonFunction = None
		
		#TODO HelpableActionMap
		self["actions"] = ActionMap(["OkCancelActions", "EventViewActions", "DirectionActions", "ColorActions"],
		{
			"cancel":    self.close,
			"ok":        self.close,
			"up":        self["event_description"].pageUp,
			"down":      self["event_description"].pageDown,
			"red":       self.redButton,
			"prevEvent": self.prevEpisode,
			"nextEvent": self.nextEpisode,
			
			#TODO
			#"pageUp":    self.pageUp,
			#"pageDown":  self.pageDown,
			#"openSimilarList": self.openSimilarList
		})
		
		log.info("SeriesPluginInfo:", service, event)
		self.service = service
		self.event = event
		
		self.name = ""
		self.short = ""
		self.data = None
		
		self.path = None
		self.eservice = None
		
		self.epg = eEPGCache.getInstance()
		self.serviceHandler = eServiceCenter.getInstance()
		self.seriesPlugin = getInstance()
		
		if session:
			self.onLayoutFinish.append( self.layoutFinished )
		else:
			self.getEpisode()
Beispiel #35
0
 def current_page(self, page):
     self.__current_page = page
     log.info('Current page is {}'.format(page))
Beispiel #36
0
 def Disconnect(self):
     log.info("MQTT Disconnect")
     self.client.loop_stop(True)
     self.client.disconnect()
Beispiel #37
0
 def process_IN_MOVED_FROM(self, event):
     path = os.path.join(event.path, event.name)
     log.info("[FileProcessEvent] MOVED_FROM: " + path)
     self.process_IN_DELETE(event)
Beispiel #38
0
 def process_IN_MOVED_TO(self, event):
     path = os.path.join(event.path, event.name)
     log.info("[FileProcessEvent] MOVED_TO: " + path)
     self.process_IN_CREATE(event)
Beispiel #39
0
 def process_IN_MOVED_FROM(self, event):
     path = os.path.join(event.path, event.name)
     log.info("[FileProcessEvent] MOVED_FROM: " + path)
     self.process_IN_DELETE(event)
Beispiel #40
0
def run_server():
    from views.socket import socket_view

    log.info("{} ran on {}:{}".format(BLOG_INFO["title"], HOST, PORT))
    socket_view.run(app, host='0.0.0.0', debug=DEBUG)
Beispiel #41
0
 def on_connect(self, lclient, userdata, flags, rc):
     log.info("MQTT Connected")
     for key in self.Handlers.keys():
         log.info("Subscribe " + key)
         self.client.subscribe(key)
         log.info("Subscribed " + key)
Beispiel #42
0
 def Publish(self, sId, Value, Retain=True):
     log.info("MQTT publish {}({})".format(sId, Value))
     self.client.publish(sId, Value, retain=Retain)
Beispiel #43
0
def start(reason, **kwargs):
    log.info("InfoBarTunerState start")
    if reason == 0:  # start
        if kwargs.has_key("session"):
            if config.infobartunerstate.enabled.value:
                global gInfoBarTunerState
                session = kwargs["session"]
                try:
                    gInfoBarTunerState = InfoBarTunerState(session)
                    gInfoBarTunerState.onInit()
                except Exception, e:
                    log.exception("InfoBarTunerState start exception " +
                                  str(e))
    # Do not cleanup on session shutdown, it will break the movie player integration


#######################################################
# Extension Menu
def show(session, **kwargs):
    log.info("InfoBarTunerState show")
    if gInfoBarTunerState:
        try:
            gInfoBarTunerState.show(True, forceshow=True)
        except Exception, e:
            log.exception("InfoBarTunerState show exception " + str(e))
    else:
        # No InfoBarTunerState Instance running
        log.info("InfoBarTunerState disabled")
        session.open(MessageBox, _("InfoBarTunerState is disabled"),
                     MessageBox.TYPE_INFO, 3)
Beispiel #44
0
 def process_IN_MOVED_TO(self, event):
     path = os.path.join(event.path, event.name)
     log.info("[FileProcessEvent] MOVED_TO: " + path)
     self.process_IN_CREATE(event)
Beispiel #45
0
            else:
                resT = res,

            for r,aType in zip(resT,aTypes):
                if not isinstance(r,aType):
                    raise TypeError("TypeError:expected %s, got %s"\
                                            % (aType, type(r)))
            return res
        return fn2
    return deco    

            
if __name__ == "__main__":
    
    print "# TEST 1"
    log.info("test")
    
    print "# TEST 2"
    msgMap["errId_1"]="Test error with the var '{var}'"
    err = createError(key="errId_1", 
                      args={"var":"alpha"}, 
                      exception=EnvironmentError())
    log.error(err)
    
    print "# TEST 3"
    log.warn("Current version is %s "%configParser.get("DEFAULT","version"))
    
    print "# TEST 4"
    @checkTypeParams(int,lola = int)
    @checkTypeReturned(str,int,dict)
    def testMethod(nb,lola= 1):
	def getEpisode(self, timer, block=False):
		
		log.info("timername, service, begin, end:", timer.name, str(timer.service_ref.ref), timer.begin, timer.end)
		
		if hasattr(timer, 'sp_in_queue'):
			if timer.sp_in_queue:
				msg = _("Skipping timer because it is already in queue")
				log.warning(msg, timer.name)
				timer.log(601, "[SeriesPlugin]" + " " + msg )
				return
		
		# We have to compare the length,
		# because of the E2 special chars handling for creating the filenames
		#if timer.name == name:
		# Mad Men != Mad_Men
		
		if TAG in timer.tags:
			msg = _("Skipping timer because it is already handled") + "\n\n" + _("Can be configured within the setup")
			log.info(msg, timer.name)
			timer.log(607, "[SeriesPlugin]" + " " + msg )
			return
		
		if timer.begin < time() + 60:
			msg = _("Skipping timer because it starts in less than 60 seconds")
			log.debug(msg, timer.name)
			timer.log(604, "[SeriesPlugin]" + " " + msg )
			return
		
		if timer.isRunning():
			msg = _("Skipping timer because it is already running")
			log.debug(msg, timer.name)
			timer.log(605, "[SeriesPlugin]" + " " + msg )
			return
		
		if timer.justplay:
			msg = _("Skipping timer because it is a just play timer")
			log.debug(msg, timer.name)
			timer.log(606, "[SeriesPlugin]" + " " + msg )
			return
		
		
		event = None
		epgcache = eEPGCache.getInstance()
		
		if timer.eit:
			event = epgcache.lookupEventId(timer.service_ref.ref, timer.eit)
			log.debug("lookupEventId", timer.eit, event)
		if not(event):
			event = epgcache.lookupEventTime( timer.service_ref.ref, timer.begin + ((timer.end - timer.begin) /2) );
			log.debug("lookupEventTime", event )
		
		if event:
			if not ( len(timer.name) == len(event.getEventName()) ):
				msg = _("Skipping timer because it is already modified %s" % (timer.name) )
				log.info(msg)
				timer.log(602, "[SeriesPlugin]" + " " + msg )
				return
			begin = event.getBeginTime() or 0
			duration = event.getDuration() or 0
			end = begin + duration
			
		else:
			if config.plugins.seriesplugin.timer_eit_check.value:
				msg = _("Skipping timer because no event was found")
				log.info(msg, timer.name)
				timer.log(603, "[SeriesPlugin]" + " " + msg )
				return
			else:
				# We don't know the exact margins, we will assume the E2 default margins
				log.debug("We don't know the exact margins, we will assume the E2 default margins")
				begin = timer.begin + (config.recording.margin_before.value * 60)
				end = timer.end - (config.recording.margin_after.value * 60)
		
		
		timer.log(600, "[SeriesPlugin]" + " " + _("Try to find infos for %s" % (timer.name) ) )
		
		seriesPlugin = getInstance()
		
		if timer.service_ref:
			log.debug("getEpisode:", timer.name, timer.begin, timer.end, block)
			
			timer.sp_in_queue = True
			
			return seriesPlugin.getEpisode(
					boundFunction(self.timerCallback, timer),
					timer.name, begin, end, timer.service_ref, future=True, block=block
				)
		else:
			msg = _("Skipping lookup because no channel is specified")
			log.warning(msg)
			self.timerCallback(timer, msg)
			return None
Beispiel #47
0
 def Connect(self):
     log.info("MQTT Connect")
     self.client.connect(self.BROKER, self.Port, 60)
     self.client.loop_start()
Beispiel #48
0
 def __setattr__(self, key, value):
     log.info('DataStorage\'s "{}" changed to {} {}'.format(
         key, type(value), value))
     super().__setattr__(key, value)
# Sessionstart
def start(reason, **kwargs):
	log.info( "InfoBarTunerState start" )
	if reason == 0: # start
		if kwargs.has_key("session"):
			if config.infobartunerstate.enabled.value:
				global gInfoBarTunerState
				session = kwargs["session"]
				try:
					gInfoBarTunerState = InfoBarTunerState(session)
					gInfoBarTunerState.onInit()
				except Exception, e:
					log.exception( "InfoBarTunerState start exception " + str(e) )
	# Do not cleanup on session shutdown, it will break the movie player integration


#######################################################
# Extension Menu
def show(session, **kwargs):
	log.info( "InfoBarTunerState show" )
	if gInfoBarTunerState:
		try:
			gInfoBarTunerState.show(True, forceshow=True)
		except Exception, e:
			log.exception( "InfoBarTunerState show exception " + str(e) )
	else:
		# No InfoBarTunerState Instance running
		log.info( "InfoBarTunerState disabled" )
		session.open(MessageBox, _("InfoBarTunerState is disabled"), MessageBox.TYPE_INFO, 3)