def addlist2Library(params, url, category, verbose=True): """Adds al episodes of a given show to the library What it really does is create strm files containing plugin calls to the pelisalacarta plugin on each episode. For this to work you have to manually add the pelisalacarta-library path to the library with the apropiate Content provider (tvdb works just fine) """ logger.info("[tvshack.py] addlist2Library") if params.has_key("Serie"): serie = params.get("Serie") else: serie = "" if verbose: pDialog = xbmcgui.DialogProgress() pDialog.create('pelisalacarta', 'A�adiendo episodios...') listaEp = devuelveListaEpisodios(params, url, category) episodios = 0 errores = 0 nuevos = 0 for i, ep in enumerate(listaEp): if verbose: pDialog.update(i * 100 / len(listaEp), 'A�adiendo episodio...', ep['title']) if (pDialog.iscanceled()): return try: nuevos = nuevos + library.savelibrary(ep['title'], ep['url'], ep['thumbnail'], "", ep['plot'], canal=CHANNELNAME, category="Series", Serie=serie, verbose=False, accion="strm_detail", pedirnombre=False) episodios = episodios + 1 except IOError: logger.info("Error al grabar el archivo " + ep['title']) errores = errores + 1 if verbose: pDialog.close() if errores > 0: logger.info("[tvshack.py - addlist2Library] No se pudo a�adir " + str(errores) + " episodios") if verbose: library.update(episodios, errores, nuevos) return nuevos
def addlist2Library(params, url, category, verbose=True): """Añade todos los episodios de una serie a la biblioteca """ xbmc.output("[tvshack.py] addlist2Library") if params.has_key("Serie"): serie = params.get("Serie") else: serie = "" if verbose: pDialog = xbmcgui.DialogProgress() pDialog.create("pelisalacarta", "Añadiendo episodios...") listaEp = devuelveListaEpisodios(params, url, category) episodios = 0 errores = 0 nuevos = 0 for i, ep in enumerate(listaEp): if verbose: pDialog.update(i * 100 / len(listaEp), "Añadiendo episodio...", ep["title"]) if pDialog.iscanceled(): return try: nuevos = nuevos + library.savelibrary( ep["title"], ep["url"], ep["thumbnail"], "", ep["plot"], canal=CHANNELNAME, category="Series", Serie=serie, verbose=False, accion="strm_detail", pedirnombre=False, ) episodios = episodios + 1 except IOError: xbmc.output("Error al grabar el archivo " + ep["title"]) errores = errores + 1 if verbose: pDialog.close() if errores > 0: xbmc.output("[tvshack.py - addlist2Library] No se pudo añadir " + str(errores) + " episodios") if verbose: library.update(episodios, errores, nuevos) return nuevos
def addlist2Library(params,url,category,verbose=True): """Adds al episodes of a given show to the library What it really does is create strm files containing plugin calls to the pelisalacarta plugin on each episode. For this to work you have to manually add the pelisalacarta-library path to the library with the apropiate Content provider (tvdb works just fine) """ logger.info("[tvshack.py] addlist2Library") if params.has_key("Serie"): serie = params.get("Serie") else: serie = "" if verbose: pDialog = xbmcgui.DialogProgress() pDialog.create('pelisalacarta', 'A�adiendo episodios...') listaEp = devuelveListaEpisodios (params,url,category) episodios = 0 errores = 0 nuevos = 0 for i,ep in enumerate(listaEp): if verbose: pDialog.update(i*100/len(listaEp), 'A�adiendo episodio...',ep['title']) if (pDialog.iscanceled()): return try: nuevos = nuevos + library.savelibrary(ep['title'],ep['url'],ep['thumbnail'],"",ep['plot'],canal=CHANNELNAME,category="Series",Serie=serie,verbose=False,accion="strm_detail",pedirnombre=False) episodios = episodios + 1 except IOError: logger.info("Error al grabar el archivo "+ep['title']) errores = errores + 1 if verbose: pDialog.close() if errores > 0: logger.info ("[tvshack.py - addlist2Library] No se pudo a�adir "+str(errores)+" episodios") if verbose: library.update(episodios,errores,nuevos) return nuevos
def addlist2Library(params,url,category): logger.info("[seriesyonkis.py] addlist2Library") # Descarga la página data = scrapertools.cachePage(url) #logger.info(data) if params.has_key("Serie"): Serie = params.get("Serie") else: Serie = "" if params.has_key("server"): server = params.get("server") else: server = "" if params.has_key("thumbnail"): thumbnail = params.get("thumbnail") else: thumbnail = "" # Extrae las entradas (carpetas) patronvideos = '<a href="(http://www.seriesyonkis.com/capitulo[^"]+)"[^>]+>([^<]+)</a>' matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) pDialog = xbmcgui.DialogProgress() ret = pDialog.create('pelisalacarta', 'Añadiendo episodios...') pDialog.update(0, 'Añadiendo episodio...') totalepisodes = len(matches) logger.info ("[seriesyonkis.py - addlist2Library] Total Episodios:"+str(totalepisodes)) i = 0 errores = 0 nuevos = 0 for match in matches: # Titulo scrapedtitle = match[1] i = i + 1 pDialog.update(i*100/totalepisodes, 'Añadiendo episodio...',scrapedtitle) if (pDialog.iscanceled()): return # URL # Tenemos 2 opciones. Scrapear todos los episodios en el momento de añadirlos # a la biblioteca o bien dejarlo para cuando se vea cada episodio. Esto segundo # añade los episodios mucho más rápido, pero implica añadir una función # strm_detail en cada módulo de canal. Por el bien del rendimiento elijo la # segunda opción de momento (hacer la primera es simplemente descomentar un par de # líneas. # QUIZÁ SEA BUENO PARAMETRIZARLO (PONER OPCIÓN EN LA CONFIGURACIÓN DEL PLUGIN) # PARA DEJAR QUE EL USUARIO DECIDA DONDE Y CUANDO QUIERE ESPERAR. url = match [0] # JUR-Las 3 líneas siguientes son para OPCIÓN 1 #scrapedurl = scrapvideoURL(url) #if scrapedurl == "": # errores = errores + 1 # Thumbnail scrapedthumbnail = "" # procesa el resto scrapedplot = "" # Depuracion if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) # logger.info("scrapedurl="+scrapedurl) #OPCION 1. logger.info("url="+url) #OPCION 2. logger.info("scrapedthumbnail="+scrapedthumbnail) logger.info("Serie="+Serie) logger.info("Episodio "+str(i)+" de "+str(totalepisodes)+"("+str(i*100/totalepisodes)+"%)") # Añade a la librería #Comentada la opción 2. Para cambiar invertir los comentarios #OPCION 1: #library.savelibrary(scrapedtitle,scrapedurl,scrapedthumbnail,server,scrapedplot,canal=CHANNELNAME,category="Series",Serie=Serie,verbose=False) #OPCION 2 try: nuevos = nuevos + library.savelibrary(scrapedtitle,url,scrapedthumbnail,server,scrapedplot,canal=CHANNELNAME,category="Series",Serie=Serie,verbose=False,accion="strm_detail",pedirnombre=False) except IOError: logger.info("Error al grabar el archivo "+scrapedtitle) errores = errores + 1 # xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True ) pDialog.close() #Actualización de la biblioteca if errores > 0: logger.info ("[seriesyonkis.py - addlist2Library] No se pudo añadir "+str(errores)+" episodios") library.update(totalepisodes,errores,nuevos) return nuevos
import library as car from time import sleep # sleep(second) car.onsensor() # Turn On Sensor # car.offsensor() # Turn Off Sensor (Recommend) # # car.led(R,G,B) # R,G,B is (int) 0 to 255 # car.led(0,0,0) # car.sound(melody) # melody is (String) [reference melody.py] # car.sound('C6') # # car.sounds(notes) # notes is (String) Sequence of melodys # notes = "C6 C6 D6 C6 F6 E6 C6 C6 D6 C6 G6 F6 C6 C6 C7 A6 F6 E6 D6 C7 C7 B6 G6 A6 G6" # car.sounds(notes) car.update() # Update X,Y,Theta,Temp,Humi from Server # car.temp() # return (int) Temperature # car.humi() # return (int) Humidity # #car.motor(L,R) # L,R is (int) -999 to 999 # car.motor(999,999) # forward # car.motor(-999,-999) # backward # car.motor(-999,999) # turnleft # car.motor(999,-999) # turnright # car.stop() # stop # sleep(1) # Sleep 1 second while True: car.humi() humi = car.humi() if humi > 1: car.led(255, 0, 0) else:
import library as car try: car.offsensor() car.goto(300, 150, 700, 700) car.update() print(car.getx(car.ID), car.gety(car.ID)) # car.rotate(270, 700) # while(True): # car.update() # print(car.getx(4)) # print(car.gety(4)) # print(car.getdegree(4)) # print() finally: car.reset()