Página 5 de 7

Re: problema con SerieHD.org

Publicado: 27 Abr 2016, 00:50
por costaplus
Ciao a tutti e scusate se mi intrometto volevo solo dare un contributo:

Código: Seleccionar todo

<section id="seasons">
<h3>EPISODIO</h3>
<ul>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=1">1</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=2">2</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=3">3</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=4">4</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=5">5</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=6">6</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=7">7</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=8">8</a>
</li>
<li>
<a href="serie.php?idSerie=99&idStagioni=357&episode=9">9</a>
</li>
<li class="active">
<a href="serie.php?idSerie=99&idStagioni=357&episode=10">10</a>
</li>
</ul>
L'elenco dei seasons si trovano in modo ricorsivo tra i tag <ul> e </ul> e i link sono all'interno dei tag <li><a href="serie.php?idSerie=99&idStagioni=357&episode=9">9</a></li> ad eccezzione dell'ultimo che è sempre in tutte le serie quello attivo :

Código: Seleccionar todo

<li class="active">
<a href="serie.php?idSerie=99&idStagioni=357&episode=10">10</a>
</li>

e la stessa cosa succede per le stagioni:

Código: Seleccionar todo

<li class="active" data-serie="102">
<a href="serie.php?idSerie=26&idStagioni=102">4</a>
</li>
Mi domandavo perchè non sfruttare questo aspetto per trarne vantaggio ?

esempio estraendo il segnaposto idStagione=120 è il segna posto 4 diventa:

Stagione id 120 -> 4
Stagione id 119 -> 3
Stagione id 118 -> 2
Stagione id 117 -> 1
Fine stagione -> 0

stessa cosa con gli episodi:

Episodio ID 10 -> 10
Episodio ID 9 -> 9
Episodio ID 8 -> 8
ECC .. ECC.....

e poi recuperare il filmato dall'unico input hydden..

Código: Seleccionar todo

<input id="urlEmbed" type="hidden" value="https://openload.co/embed/aOZOjRSZIws/Elementary.S04E05.Giochi.sepolti.ITA.ENG.1080p.DLMux-EGX_%281%29.mkv.mp4" data-mirror="openload" name="urlEmbed">

Potrebbe essere un'idea con un pò di matematica..... si può ottenere il risultato, creando il link a runtime:

http://hdpass.xyz/serie.php?idSerie=94& ... &episode=1

Ciao a tutti e buon lavoro.

Re: problema con SerieHD.org

Publicado: 27 Abr 2016, 19:50
por dentaku65
...qualche passetto avanti

http://pastebin.com/qjsHyHqe

adesso mi elenca tutti gli episodi dell'ultima stagione, ma il problema che in
url = "%s?idStagioni=%s&episode=%s?%s" % (url, scrapedseason, scrapedepisode, url)
la parte &episode=%s .... %scrapedepisode
mette sempre e solo il primo episodio dell'ultima stagione; quindi per me che non capisco un tubo di programmazione manca un ciclo for per mettere l'episodio in sequenza (come in precedenza per le seasons manca un ciclo for se le seasons sono + di una)

nel file ci sono anche i tracciamenti della funzione che và a scrivere sul log di Kodi

idee?

Re: problema con SerieHD.org

Publicado: 27 Abr 2016, 21:50
por costaplus
Ciao dentaku65,
per i cicli for la sintassi è questa, tornando al post precedente io la vedo così

Código: Seleccionar todo


ultimoseasons = 10
for seasons in range(10,0,-1):      # range(inizia da , finisci a, step -1) quindi decrementa
        seasons                                 # il risultato del for...

La stessa cosa delle stagioni ....

se mi dici il punto nel tuo codice ci provo .... :D :D :D :D


Scusa invece di andare a ciclare su questo punto :

Código: Seleccionar todo

 
episodes_data = scrapertools.get_match(data, '<select onchange="location = this.value;">(.*?)</select>')
        patron = '<option[^=]+="[^&]+&idStagioni=%s&episode=(.*?)">.*?</option>' % scrapedseason
perchè non ti fermi qui e fai questo:

<li class="active">
<a href="serie.php?idSerie=99&idStagioni=357&episode=10">10</a>
</li>

Código: Seleccionar todo


ultimoseasons = 10
for seasons in range(10,0,-1):      # range(inizia da , finisci a, step -1) quindi decrementa finendo prima di 0 ovvero 1
        seasons                                 # il risultato del for...


stessa cosa per series:

<li class="active" data-serie="357">
<a href="serie.php?idSerie=99&idStagioni=357">2</a>
</li>
</ul>

Código: Seleccionar todo


ultimoseries = 2
ultimoseriesid=357
for seasons in range(2,0,-1):                     # range(inizia da , finisci a, step -1) quindi decrementa finendo prima di 0 ovvero 1
        ultimoseriesid= ultimoseriesid-1         # il risultato del for ma stavolta è 357-1 =356

Forse sono stato impreciso sui numeri ....

Re: problema con SerieHD.org

Publicado: 27 Abr 2016, 22:42
por dentaku65
Ciao costaplus,

ma guarda che bella idea, non l'avevo notato nel tuo post precedente... in effetti dall'active si puo' decrementare, giustissimo... ad ogni modo la funzione è
def episodios(item):
:mrgreen: :mrgreen:

Re: problema con SerieHD.org

Publicado: 27 Abr 2016, 22:47
por costaplus
Putroppo ancora sono alle prime armi ... e non riesco a fare un debug come voglio io ....

Se tu mi aiuti a capire come gestire il codice in kodi io ti aiuto nella programmazione :lol: :lol: :lol: :lol: :lol:

Re: problema con SerieHD.org

Publicado: 27 Abr 2016, 23:53
por dentaku65
costaplus escribió:Putroppo ancora sono alle prime armi ... e non riesco a fare un debug come voglio io ....

Se tu mi aiuti a capire come gestire il codice in kodi io ti aiuto nella programmazione :lol: :lol: :lol: :lol: :lol:
Guarda io uso in Kodi l'addon "Easy Log Viewer" che si trova nel repo di kinkins https://www.tvaddons.ag/kodi-addons/sho ... logviewer/ poi nel codice che mi interessa metto in cima o nella funzione:
import xbmc
e poi nelle parti che voglio consultare appendo il dato al log di Kodi, esempio:
seasons = re.compile(patron, re.DOTALL).findall(seasons_data)

xbmc.log( "HHH seasons HHHHHHHHHHHHHHHHHHHHHHHHHHHH" )
xbmc.log( "%s" % seasons )
[*] credits to robalo
Poi vedo tutto tramite l'addon "Easy Log Viewer", nel caso qui sopra l'output di seasons
Spero ti sia sufficente.

ciao
den

Re: problema con SerieHD.org

Publicado: 28 Abr 2016, 04:45
por zanzibar1982
Tutto ciò è stupendo. :cry:

Re: problema con SerieHD.org

Publicado: 28 Abr 2016, 08:32
por KodiFilms2
Da niubbo.

Código: Seleccionar todo

start = data.find('</ul>')
    end = data.find('<section id="seasons">', start)
    data = data[start:end]
    import xbmc
Ma non dovrebbe essere ?

Código: Seleccionar todo

start = data.find('</ul>')
    end = data.find('<section id="series">', start)
    data = data[start:end]
    import xbmc
Su

Código: Seleccionar todo

    seasons_data = scrapertools.get_match(data,'<select onchange="location = this.value;">(.*?)</select>')
    patron = '<option[^=]+="[^&]+&idStagioni=(.*?)">(.*?)</option>'
Preleva dalla pagina quel testo che non ha un link, basandomi sulla pagina di esempio

Código: Seleccionar todo

view-source:http://hdpass.xyz/serie.php?idSerie=99?seriehd
Dovrebbe prelevare da qui

Código: Seleccionar todo

<li data-serie="356"><a href="serie.php?idSerie=99&idStagioni=356">1</a></li><li class="active" data-serie="357"><a href="serie.php?idSerie=99&idStagioni=357">2</a></li>
Sbaglio? Naturalmente sempre da niubbo

Re: problema con SerieHD.org

Publicado: 28 Abr 2016, 11:44
por KodiFilms2
Sbagliavo. Controllando i logs, vedo che le seasons vengono visualizzate. Quindi ha ragione @dentaku65 manca la funzione per mettere in ordine le seasons.

Re: problema con SerieHD.org

Publicado: 28 Abr 2016, 12:02
por robalo
Hola
Al ver que tenéis una conversación bastante animada me ha hecho pensar que a vosotros no os aparece un captcha.
Por lo visto en españa nos colocan el captcha, o eso, o sólo a mí por ser tan simpático :)

He usado un proxy y he conseguido hacer algo con lo que podéis trabajar. Es bastante simple y sólo nos mostrará el enlace de openload de la url final.

Espero haber entendido vuestro problema y lo siguiente os ayude coseguir vuestro objetivo

Código: Seleccionar todo

def episodios(item):
    logger.info("[seriehd.py] episodios")
    itemlist = []

    data = anti_cloudflare( item.url )

    patron = r'<iframe width=".+?" height=".+?" src="([^"]+)" allowfullscreen frameborder="0">'
    url = scrapertools.find_single_match(data, patron).replace("?seriehd","")

    data = scrapertools.cache_page(url).replace('\n', '').replace(' class="active"', '')

    section_stagione = scrapertools.find_single_match( data, '<h3>STAGIONE</h3><ul>(.*?)</ul>' )
    patron = '<li[^>]+><a href="([^"]+)">(\d)<'
    seasons = re.compile(patron, re.DOTALL).findall(section_stagione)

    for scrapedseason_url, scrapedseason in seasons:

        season_url = urlparse.urljoin( url, scrapedseason_url )
        data = scrapertools.cache_page( season_url ).replace('\n', '').replace(' class="active"', '')

        section_episodio = scrapertools.find_single_match( data, '<h3>EPISODIO</h3><ul>(.*?)</ul>' )
        patron = '<li><a href="([^"]+)">(\d+)<'
        episodes = re.compile(patron, re.DOTALL).findall(section_episodio)

        for scrapedepisode_url, scrapedepisode in episodes:

            episode_url = urlparse.urljoin( url, scrapedepisode_url )

            title = scrapedseason + "x" + scrapedepisode.zfill(2)

            itemlist.append(
                   Item(channel=__channel__,
                        action="findvideos",
                        title=title,
                        url=episode_url,
                        fulltitle=item.fulltitle,
                        show=item.show,
                        thumbnail=item.thumbnail))

    if config.get_library_support() and len(itemlist) != 0:
        itemlist.append(
                Item(channel=__channel__,
                     title=item.title + " (Add Serie to Library)",
                     url=item.url,
                     action="add_serie_to_library",
                     extra="episodios",
                     show=item.show))
        itemlist.append(
                Item(channel=item.channel,
                     title="Scarica tutti gli episodi della serie",
                     url=item.url,
                     action="download_all_episodes",
                     extra="episodios",
                     show=item.show))

    return itemlist

def findvideos(item):
    logger.info("[seriehd.py] findvideos")
    itemlist = []

    data = anti_cloudflare( item.url ).replace('\n', '')

    patron = '<iframe id="iframeVid" width=".+?" height=".+?" src="([^"]+)" allowfullscreen=""></iframe>'
    url = scrapertools.find_single_match( data, patron )

    data = scrapertools.cache_page( url )

    itemlist.extend(servertools.find_video_items(data=data))

    for videoitem in itemlist:
        videoitem.title = item.show + " " + item.title + " [" + videoitem.server + "]"
        videoitem.show = item.show
        videoitem.fulltitle = item.fulltitle
        videoitem.thumbnail = item.thumbnail
        videoitem.channel = __channel__

    return itemlist