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
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()
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)
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
def start(self): log.reinit() log.info("PushService start") self.stopTimer() self.begin() self.next()
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()
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)
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))
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) )
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 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')
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))
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) )
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))
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 )
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)
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
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
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.')
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 current_page(self, page): self.__current_page = page log.info('Current page is {}'.format(page))
def Disconnect(self): log.info("MQTT Disconnect") self.client.loop_stop(True) self.client.disconnect()
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)
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)
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)
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)
def Publish(self, sId, Value, Retain=True): log.info("MQTT publish {}({})".format(sId, Value)) self.client.publish(sId, Value, retain=Retain)
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)
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 Connect(self): log.info("MQTT Connect") self.client.connect(self.BROKER, self.Port, 60) self.client.loop_start()
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)