He estado investigando en como funciona el sistema de busqueda de la wii.
Para que el wiimc interprete la url como cadena de busqueda, se le ha de pasar el parametro type con el valor search. En este caso nos aparece el teclado de la wii en la que introducimos un texto por ejemplo warf. Wiimc concatena lo que hayamos introducido en el teclado al final de la url.
Por ejemplo en cinetube
Código: Seleccionar todo
type=search
name=Buscar
URL=http://localhost:8080/cinetube/search/http%3A%2F%2Fwww.cinetube.es%2Fbuscar%2Fpeliculas%2F/none/playlist.plx
Código: Seleccionar todo
http://localhost:8080/cinetube/search/http%3A%2F%2Fwww.cinetube.es%2Fbuscar%2Fpeliculas%2F/none/playlist.plxwarf
Los cambios que he realizado son los siguientes:
pelisalacarta.py
Hay que diferenciar el tipo search
he añadido una condición previa, si la acción es search modificamos la respuesta para que aparezca el type=search
Código: Seleccionar todo
for item in itemlist:
if item.action=="search":
if item.server=="": item.server="none"
if item.url=="": item.url="none"
url = "http://%s/%s/%s/%s/%s/playlist.plx" % ( host , channel , item.action , urllib.quote_plus(item.url) , item.server )
respuesta += "type=search\n"
respuesta += "name=%s\n" % item.title
if item.thumbnail != "":
respuesta += "thumb=%s\n" % item.thumbnail
respuesta += "URL=%s\n" % url
respuesta += "\n"
elif item.folder or item.action=="play":
if item.server=="": item.server="none"
if item.url=="": item.url="none"
wiitools.py
Aqui hay que "desconcatenar" lo que hayamos introducido por teclado, así que añado una acción nueva exclusiva para el search. La palabra a buscar la meto en el atributo extra del item, así que no sé si es muy correcto.
Código: Seleccionar todo
if accion=="play":
itemlist = play(senderitem)
elif accion=="search":
extra = requestpath.split("plx")[1]
senderitem.extra = extra
exec "itemlist = "+channel+"."+accion+"(senderitem)"
elif accion=="findvideos":
Aquí es donde creo que más toco la moral, ya que cambio todo el tema de parametros y no se si para xbmc se jode mucho.
Código: Seleccionar todo
def search(item):
logger.info("[cinetube.py] search")
#import buscador
#texto = buscador.teclado()
#print item.extra
itemlist = searchresults(item)
return itemlist
# TODO: No compatible con canal genérico aún
def searchresults(item):
logger.info("[cinetube.py] searchresults")
#buscador.salvar_busquedas(params,tecleado,category)
tecleado = item.extra.replace(" ", "+")
item.url = "http://www.cinetube.es/buscar/peliculas/?palabra="+tecleado+"&categoria=&valoracion="
itemlist = getsearchresults(item)
#xbmctools.renderItems(itemlist, params, url, category)
return itemlist
# TODO: No compatible con canal genérico aún
def getsearchresults(item):
logger.info("[cinetube.py] getsearchresults")
if (not item.url.startswith("http://")):
item.url = "http://www.cinetube.es/buscar/peliculas/?palabra="+url+"&categoria=&valoracion="
return peliculas(item)

@jesus: Esto es solo una idea ya que no se las implicaciones que tendría sobre XBMC, y creo que estoy tirando demasiado a una versión específica para WiiMC, pero si se te ocurre alguna forma de aprovecharlo para los dos, sería genial.
Un saludo