aggiornamenti

marco
2020-06-13 11:51:23 +02:00
parent 800b99f85e
commit 284be94da6
2 changed files with 44 additions and 8 deletions

@@ -32,7 +32,7 @@ film = [
('Generi', ['', 'menu', 'Film per Genere']),
('Anni', ['', 'menu', 'Film per Anno'])
]
tvshow = ['/serietv/',
tvshow = ['/serietv/',
('Per Lettera', ['/serietv/', 'menu', 'Serie-Tv per Lettera']),
('Per Genere', ['/serietv/', 'menu', 'Serie-Tv per Genere']),
('Per anno', ['/serietv/', 'menu', 'Serie-Tv per Anno'])
@@ -50,7 +50,8 @@ top = [('Novità',['', 'peliculas', 'new', 'tvshow']),
* search
>search è utilizzato quando nel sito c'è un solo campo di ricerca per tutti i tipi di fonti (ricerca unica per film e serie ad esempio), in sua assenza viene automaticamente creata una voce "cerca" per ogni menu di primo livello, es: Cerca Film...
Il decoratore si occupera poi di includere le impostazioni per l'autoplay e la configurazione del canale
Il decoratore si occupera poi di includere la configurazione del canale.<br>
Gli item risultanti avranno già il contentType settato (film/tvshow) se appartenenti ai relativi sottomenu
Esempio comprensivo di tutti i campi:
```python
@@ -76,21 +77,26 @@ def mainlist(item):
```
## scrape
Decoratore per fare lo scraping vero e proprio, è un interfaccia alle funzioni di alfa/pelisalacarta che permette di fare uso quasi soltanto delle regex.
Utilizza le seguenti variabili:<br>
Decoratore per fare lo scraping vero e proprio, è un interfaccia alle funzioni di alfa/pelisalacarta che permette di fare uso quasi soltanto delle regex.<br>
Per rendere le pagine un po' più standard, prima di effettuare lo scraping, effettua alcune operazioni sulla pagina:
- sostiuisce i ritorni a capo con uno spazio
- uniforma le virgolette (tutte le ' diventano ")
- elimina gli spazi multipli tra i tag html
Per funzionare è necessario settare alcune variabili, ecco la lista completa:<br>
* patron
> Si tratta della regex vera e propria, quella che deve ottenere i titoli, l'url e tutte le informazioni di un film/serie.<br>
> Deve essere costituita solo da [named capturing groups](https://www.regular-expressions.info/named.html), i quali possono essere:<br>
>['url', 'title', 'title2', 'episode', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating', 'type', 'lang']<br>
>Questi possibili nomi sono abbastanza auto-esplicativi, inoltre scrape effettua già di per se operazioni "di bonifica", come ad esempio inserire il dominio quando manca nell'url scrapato(url relativo) o anche convertire duration in secondi (per essere meglio interpretato da kodi)<br>
> ['url', 'title', 'title2', 'season', 'episode', 'thumb', 'quality', 'year', 'plot', 'duration', 'genere', 'rating', 'type', 'lang', 'other', 'size', 'seed']<br>
> Questi possibili nomi sono abbastanza auto-esplicativi, inoltre scrape effettua già di per se operazioni "di bonifica", come ad esempio inserire il dominio quando manca nell'url scrapato(url relativo) o anche convertire duration in secondi (per essere meglio interpretato da kodi)<br>
```python
patron = r'div class="card-image">.*?<img src="(?P<thumb>[^ ]+)" alt.*?<a href="(?P<url>[^ >]+)">(?P<title>[^<[(]+)<\/a>.*?<strong><span style="[^"]+">(?P<genre>[^<>0-9(]+)\((?P<year>[0-9]{4}).*?</(?:p|div)>(?P<plot>.*?)</div'
```
* patronBlock
>Nel caso la parte contenente i contenuti fosse indistinguibile da altri contenuti (ed è quindi necessario fare scraping solo di un pezzo di html), è possibile scrivere una regex per ottenere parte di codice, che poi sarà processata da 'patron'.<br>
>E' possibile inoltre che questa regex ritorni più pezzi di codice (ad esempio se è una lista di episodi divisa per stagione).<br>
>patronBlock può contenere i seguenti [named capturing groups](https://www.regular-expressions.info/named.html): block, lang, quality<br>
>in block ci va il blocco (pezzo) di codice da processare poi con 'patron', lang e quality invece vanno a sovrascrivere le omonime proprietà in patron, questo è utilissimo quando le info riguardo alla lingua (ITA/SUB-ITA) e la qualità sono presenti una sola volta (riprendendo l'esempio di prima, se la lingua viene indicata stagione per stagione) <br>
>patronBlock può contenere i seguenti [named capturing groups](https://www.regular-expressions.info/named.html): block, season, lang, quality<br>
>in block ci va il blocco (pezzo) di codice da processare poi con 'patron', season, lang e quality invece vanno a sovrascrivere le omonime proprietà in patron, questo è utilissimo quando le info riguardo alla stagione, alla lingua (ITA/SUB-ITA) o alla qualità sono presenti una sola volta (riprendendo l'esempio di prima, se la lingua viene indicata stagione per stagione) <br>
```python
patronBlock = r'(?P<block><div class="sp-head[a-z ]*?" title="Espandi">\s*STAGIONE [0-9]+ - (?P<lang>[^\s]+)(?: - (?P<quality>[^-<]+))?.*?[^<>]*?</div>.*?)<div class="spdiv">\[riduci\]</div>'
```
@@ -99,6 +105,11 @@ patronBlock = r'(?P<block><div class="sp-head[a-z ]*?" title="Espandi">\s*STAGIO
```python
patronNext='<a class="?page-link"? href="?([^>]+)"?><i class="fa fa-angle-right">'
```
* patronMenu
> Uguale a patron ma per i menu, in pratica disabilita la ricerca del contenuto su tmdb
> Da utilizzare quando si creano dei sottomenu dinamici, come ad esempio "Genere" o "Per lettera" ecc..
* action
>La funzione che deve partire quando si apre un risultato ottenuto da scrape, se omessa è di default findvideos (la funzione standard per ottenere le fonti)
* blacklist
@@ -175,6 +186,12 @@ pagination = '' # basta che la variabile sia settata e prende il default, ovver
MatchesDict([('title', 'Il Caso Collini'), ('year', 2019), ('language', <Language [it]>), ('source', 'Blu-ray'), ('other', 'Rip'), ('video_codec', 'Xvid'), ('release_group', 'PRiME[MT]'), ('type', 'movie')])
```
* deflang
> La lingua predefinita dei contenuti presenti, utile ad esempio per i siti che mostrano praticamente solo SUB-ITA e pertanto non lo indicano, dando la cosa per scontata
```python
deflang = 'Sub-ITA'
```
Inoltre è possibile creare degli [hook](https://www.pierov.org/2011/06/10/cosa-sono-gli-hook/) creando funzioni con i seguenti nomi:
* itemHook(item)
>Chiamata ogni qualvolta un item sta per essere aggiunto, prende come parametro item e deve ritornare l'item con tutte le modifiche che ritieni neccessarie.

@@ -1,6 +1,25 @@
# Lista funzioni utili
* [server](#server)
* [hdpass_get_servers](#hdpass_get_servers)
* [typo](#typo)
## server
Da utilizzare per creare listati di server "standard"
| Parametro | Descrizione |
|---|---|
| item | l'item chiamante |
| data='' | stringa in cui cercare i server |
| itemlist=[] | lista dei server trovati, se il parametro server non è compilato, verrà riconosciuto dall'url |
| headers='' | se verrà scaricata la pagina, puoi passare degli header custom |
| AutoPlay=True | autoplay abilitato |
| CheckLinks=True | checklink abilitato |
| Download=True | download abilitato |
| patronTag=None | se la pagina mostra un tag qualitativo (MB.BDRIP ad esempio), inserire una regex che lo cattura. Verrà mostrato a video con una descrizione. |
| Videolibrary=True | videoteca abilitata |
E' possibile utilizzare sia data che itemlist, i risultati di entrambi verranno uniti. In loro assenza, verrà scaricata la pagina e verranno cercati tutti i server.<br>
In caso di link corti, i provider supportati verranno rilevati e verrà tentato un unshorten automatico alla ricerca di possibili server.
## hdpass_get_servers
Scraper per hdpass.online, per intenderci: