From 184d497aecd4f0325542b8e4673fbbb283438abe Mon Sep 17 00:00:00 2001 From: syscallkill <123946028+syscallkill@users.noreply.github.com> Date: Mon, 27 Mar 2023 20:17:05 +0200 Subject: [PATCH] add italiafilm channel (#414) --- channels.json | 1 + channels/italiafilm.json | 11 +++++++ channels/italiafilm.py | 71 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 channels/italiafilm.json create mode 100644 channels/italiafilm.py diff --git a/channels.json b/channels.json index 385f06ce..6aa0ec19 100644 --- a/channels.json +++ b/channels.json @@ -29,6 +29,7 @@ "serietvu": "https://www.serietvu.live", "streamingcommunity": "https://streamingcommunity.love", "streamingita": "https://www.streamingita.best", + "italiafilm": "https://italia-film.today" "tantifilm": "https://www.tantifilm.green", "toonitalia": "https://toonitalia.xyz" }, diff --git a/channels/italiafilm.json b/channels/italiafilm.json new file mode 100644 index 00000000..fe995175 --- /dev/null +++ b/channels/italiafilm.json @@ -0,0 +1,11 @@ +{ + "id": "italiafilm", + "name": "ItaliaFilm", + "language": ["ita", "sub-ita"], + "active": true, + "thumbnail": "italiafilm.png", + "banner": "", + "categories": ["movie"], + "not_active": ["include_in_newest"], + "settings": [] +} diff --git a/channels/italiafilm.py b/channels/italiafilm.py new file mode 100644 index 00000000..703d7c68 --- /dev/null +++ b/channels/italiafilm.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Canale per 'italifilm' +# ------------------------------------------------------------ + +from core import support, httptools +from core.support import info +from platformcode import logger, config +from core import scrapertools + +host = config.get_channel_url() +headers = [['Referer', host]] + + +@support.menu +def mainlist(item): + menu = [('Per Genere', ['', 'list', 'genere']), + ('Al Cinema', ['/cinema/', 'list', 'film']), + ('Top del Mese', ['/top-del-mese.html', 'list', 'film']), + ('Sottotitolati', ['/sub-ita/', 'list', 'film']) + ] + search = '' + + return locals() + + +@support.scrape +def list(item): + + if item.args == 'genere': + patronBlock = r'' + patronMenu = r'
  • (?P[^<]+)' + action = 'peliculas' + elif item.args == 'film': + patron = r'<div class="entry-summary.*?<a href="(?P<url>[^"]+)" title="(?P<title>[^\("]+)(?:\((?P<year>\d+)\))" class="[^"]+"><img class="lazyload" data-src="(?P<thumb>[^"]+)" alt="[^"]+".*?></a>' + patronNext = r'<a href="([^"]+)">(?:&rarr|→)' + + return locals() + + +@support.scrape +def peliculas(item): + + patronBlock = r'<div class="entry-summary">(?P<block>.*?)</div>' + patron = r'<a href="(?P<url>[^"]+)" title="(?P<title>[^\("]+)(?:\((?P<year>\d+)\)).*?class="[^"]+"><img class="lazyload" data-src="(?P<thumb>[^"]+)" alt="[^"]+".*?></a>' + patronNext = r'<a href="([^"]+)">(?:&rarr|→)' + return locals() + + +@support.scrape +def search(item, text): + + support.info('search', text) + data = httptools.downloadpage(item.url, post={"story": text,"do": "search","subaction": "search"}).data + patron = r'<div class="entry-summary.*?<a href="(?P<url>[^"]+)" title="(?P<title>[^"]+)" class="[^"]+"><img class="lazyload" data-src="(?P<thumb>[^"]+)" alt="[^"]+".*?></a>' + + return locals() + + +#action di default +def findvideos(item): + + support.info('findvideos') + urls = [] + data = support.match(item).data + matches = support.match(data, patron=r'<iframe.*?src="([^"]+)').matches + + for m in matches: + if 'youtube' not in m and not m.endswith('.js'): + urls += support.match(m, patron=r'data-link="([^"]+)').matches + return support.server(item, urls) \ No newline at end of file