Página 1 de 1

Dudas con canal Mundoflv.py

Publicado: 22 Abr 2017, 15:07
por Intel1
Holas a todos, últimamente estoy muy dudoso :shock:

Revisando el archivo mundoflv.py encontré estas lineas desde la 354 hasta la 357:

if 'streamplay' not in item.server or 'streame' not in item.server:
url = scrapertools.find_single_match(data, '<(?:IFRAME|iframe).*?(?:SRC|src)=*([^ ]+) (?!style|STYLE)')
else:
url = scrapertools.find_single_match(data, '<meta http-equiv="refresh" content="0; url=([^"]+)">')

Lo que hace el if (en teoría) es preguntar si el server streamplay o streame no está en item.server; pero como está en este momento el if, la linea del "si", se ejecutaría aún si item.server contiene streamplay o streame.

¿Porqué? porque simplemente streamplay no está en streame como pregunta esa linea del if, y se ejecutaría la linea del si, ya que el "or" ejecuta si se cumple cualquier de las condiciones, en este caso "streamplay" no está en "streame" así que siempre se ejecutaría el "si" del if.

Esto lo he visto en la serie arrow de mundoflv; probado en la temporada 1 capítulo 1, al querer ver en el servidor "streamplay" dice: No hay nada para reproducir

Y al cambiar esas lineas por:

if 'streamplay' in item.server or 'streame' in item.server:
url = scrapertools.find_single_match(data, '<meta http-equiv="refresh" content="0; url=([^"]+)">')
else:
url = scrapertools.find_single_match(data, '<(?:IFRAME|iframe).*?(?:SRC|src)=*([^ ]+) (?!style|STYLE)')

Me funciona normal.

Haber si Hernan puede ver esto o alguien mas :(

P.D.:Todavía no se soluciona el error del tag <code> que mencionó Cmos :(

Gracias :)

Re: Dudas con canal Mundoflv.py

Publicado: 24 Abr 2017, 14:09
por Hernan_Ar_c
Muy bien visto, intel, si en realidad deberia ir un and, en lugar de un or. Te explico esa porcion del codigo se utiliza para encontrar los enlaces de video,

# Utilizamos un patron de busqueda para los enlaces que no sean de streamplay ni de streame
if 'streamplay' not in item.server and 'streame' not in item.server:
url = scrapertools.find_single_match(data, '<(?:IFRAME|iframe).*?(?:SRC|src)=*([^ ]+) (?!style|STYLE)')

else:
# Aqui utilizamos un patron de busqueda para los enlaces que si son de streamplay o streame
url = scrapertools.find_single_match(data, '<meta http-equiv="refresh" content="0; url=([^"]+)">')

Esto esta asi porque los enlaces de streaplay y streame se definen dierente a los demas enlaces en la pagina, asi que hay que buscarlos de otra manera.

Gracias por avisar, Y saludos

Re: Dudas con canal Mundoflv.py

Publicado: 24 Abr 2017, 14:39
por Intel1
Hola, en realidad no tienes que dar las gracias, al contrario nosotros los usuarios tenemos que darte las gracias por tantos canales que nos has dado :)

Me olvidé de comentar que el conector idowatch también funciona como el streamplay o streame.

Por favor si lo pudieras agregar en el if a idowatch (Probado con serie arrow temporada 1 capitulo 1, Aunque sale error en idowath, pero ya ese será otro hilo dudoso :) )

Ahora, tocando el tema de este if, traté de probar así (Para que el if sea mas corto y mas fácil de mantener):

if url.server in ['streamplay','streame','idowatch']:

Pero no me funciona :(

Hay alguna manera de hacer esto en python o será hacerlo solo con and? busqué en google pero no encontré algo que me ayude :(

Gracias.

Re: Dudas con canal Mundoflv.py

Publicado: 24 Abr 2017, 14:46
por Hernan_Ar_c
Mirare lo de Idowatch, habra que ver si es que se utiliza el mismo patron.
Lo que dices esta bien pensado, pero deberias definir una lista que es lo que intentas utilizar, por ejemplo..
special_servers = ['streamplay', 'streame', 'idowatch']

Y entonces si podrias utilizar...

If item.server not in special_servers:

Igualmente no confies mucho en lo que te diga yo, solo tengo una base de programacion y ni siquiera es de python aunque con un conocimiento basico es suficiente para animarte a intentar yo mismo hasta no hace mucho no sabia nada de python... y hoy estoy casi igual :lol:

Re: Dudas con canal Mundoflv.py

Publicado: 24 Abr 2017, 18:07
por super_berny
Intel1 escribió:
24 Abr 2017, 14:39
Ahora, tocando el tema de este if, traté de probar así (Para que el if sea mas corto y mas fácil de mantener):

if url.server in ['streamplay','streame','idowatch']:

Pero no me funciona
Hernan_Ar_c escribió:
24 Abr 2017, 14:46
Lo que dices esta bien pensado, pero deberias definir una lista que es lo que intentas utilizar, por ejemplo..
special_servers = ['streamplay', 'streame', 'idowatch']

Y entonces si podrias utilizar...

If item.server not in special_servers:
Ambas condiciones son correctas. No es necesario inicializar una variable si no quieres (o si no la vas a volver a usar mas). Posiblemente a Intel1 no le funcione por q esta buscando un url.server en lugar del item.server

Re: Dudas con canal Mundoflv.py

Publicado: 24 Abr 2017, 18:30
por Hernan_Ar_c
Gracias por aclararlo SuperBerny, nunca lo habia utilizado de esa manera, pero es bueno saberlo

Re: Dudas con canal Mundoflv.py

Publicado: 24 Abr 2017, 18:33
por Intel1
super_berny escribió:
24 Abr 2017, 18:07
Intel1 escribió:
24 Abr 2017, 14:39
Ahora, tocando el tema de este if, traté de probar así (Para que el if sea mas corto y mas fácil de mantener):

if url.server in ['streamplay','streame','idowatch']:

Pero no me funciona
Hernan_Ar_c escribió:
24 Abr 2017, 14:46
Lo que dices esta bien pensado, pero deberias definir una lista que es lo que intentas utilizar, por ejemplo..
special_servers = ['streamplay', 'streame', 'idowatch']

Y entonces si podrias utilizar...

If item.server not in special_servers:
Ambas condiciones son correctas. No es necesario inicializar una variable si no quieres (o si no la vas a volver a usar mas). Posiblemente a Intel1 no le funcione por q esta buscando un url.server en lugar del item.server
Super_berny tienes toda la razón, si funciona; me estaba confundiendo de variable, gracias por aclararme :)