diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1846c19b..30eb46f0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,7 +7,7 @@ name: Test Suite on: workflow_dispatch: schedule: - - cron: '00 17 * * *' + - cron: '30 17 * * *' # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -40,12 +40,7 @@ jobs: export KODI_HOME=$GITHUB_WORKSPACE/tests/home python tests/test_generic.py - - name: Pushe to website - uses: cpina/github-action-push-to-another-repository@master - env: - API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} + - uses: actions/upload-artifact@v2 with: - source-directory: 'report' - destination-github-username: 'kodiondemand' - destination-repository-name: 'kodiondemand.github.io' - user-email: test@test.test + name: report + path: reports/report.html diff --git a/channels.json b/channels.json index 85e6950a..05b723e4 100644 --- a/channels.json +++ b/channels.json @@ -11,11 +11,11 @@ "animeunity": "https://www.animeunity.it", "animeworld": "https://www.animeworld.tv", "casacinema": "https://www.casacinema.rest", - "cb01anime": "https://www.cineblog01.red/", + "cb01anime": "https://www.cineblog01.red", "cinemalibero": "https://cinemalibero.plus", "cinetecadibologna": "http://cinestore.cinetecadibologna.it", "dreamsub": "https://dreamsub.stream", - "dsda": "https://www.dsda.press/", + "dsda": "https://www.dsda.press", "fastsubita": "https://fastsubita.online", "filmgratis": "https://www.filmaltadefinizione.tv", "filmigratis": "https://filmigratis.org", @@ -24,7 +24,7 @@ "guardaserie_stream": "https://guardaserie.store", "guardaserieclick": "https://www.guardaserie.style", "hd4me": "https://hd4me.net", - "netfreex": "https://www.netfreex.stream/", + "netfreex": "https://www.netfreex.stream", "ilgeniodellostreaming": "https://ilgeniodellostreaming.tw", "italiaserie": "https://italiaserie.org", "mondoserietv": "https://mondoserietv.com", diff --git a/channels/film4k.json b/channels/film4k.json index 1cf02ca1..fc92ab9d 100644 --- a/channels/film4k.json +++ b/channels/film4k.json @@ -5,7 +5,7 @@ "active": true, "thumbnail": "film4k.png", "banner": "film4k.png", - "categories": ["tvshow", "movie"], + "categories": ["tvshow", "movie", "anime"], "not_active": ["include_in_newest_peliculas", "include_in_newest_anime", "include_in_newest_series"], "settings": [] } diff --git a/channels/film4k.py b/channels/film4k.py index b9402d0c..6f59dd38 100644 --- a/channels/film4k.py +++ b/channels/film4k.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------ -# Canale per netfreex +# Canale per Filn4k # ------------------------------------------------------------ from core import support @@ -8,7 +8,7 @@ from platformcode import logger, config def findhost(): - return support.httptools.downloadpage('https://film4k-nuovo.link/').url + return support.httptools.downloadpage('https://film4k-nuovo.link').url host = config.get_channel_url(findhost) @@ -16,16 +16,15 @@ host = config.get_channel_url(findhost) @support.menu def mainlist(item): - film = ['/movies', - ('Qualità', ['', 'menu', 'quality']), - ('Generi', ['', 'menu', 'genres']), - ('Più popolari', ['trending/?get=movies', 'peliculas']), - ('Più votati', ['ratings/?get=movies', 'peliculas']) - ] + film = ['movies', + ('Qualità', ['', 'menu', 'quality']), + ('Generi', ['movies', 'menu', 'genres']), + ('Anno', ['movies', 'menu', 'releases']), + ('Più popolari', ['trending/?get=movies', 'peliculas']), + ('Più votati', ['ratings/?get=movies', 'peliculas'])] tvshow = ['/tvshows', ('Più popolari', ['trending/?get=tv', 'peliculas']), - ('Più votati', ['ratings/?get=tv', 'peliculas']) - ] + ('Più votati', ['ratings/?get=tv', 'peliculas'])] return locals() @@ -41,6 +40,7 @@ def search(item, text): return [] + def peliculas(item): if 'anime' in item.url: return support.dooplay_peliculas(item, True) @@ -49,14 +49,15 @@ def peliculas(item): def episodios(item): - return support.dooplay_get_episodes(item) + itemlist = support.dooplay_get_episodes(item) + return itemlist def findvideos(item): itemlist = [] if item.contentType == 'episode': linkHead = support.httptools.downloadpage(item.url, only_headers=True).headers['link'] - epId = support.scrapertools.find_single_match(linkHead, '\?p=([0-9]+)>') + epId = support.scrapertools.find_single_match(linkHead, r'\?p=([0-9]+)>') for link in support.dooplay_get_links(item, host, paramList=[['tv', epId, 1, 'title', 'server']]): itemlist.append( item.clone(action="play", url=link['url'])) @@ -72,10 +73,10 @@ def findvideos(item): @support.scrape def menu(item): action = 'peliculas' - if item.extra == 'genres': - data = support.match(item, patron=r'Genere<(.*?)(?P.*?)]*>(?P[^<]+)<' else: patronBlock = r'class="main-header">(?P<block>.*?)headitems' - patronMenu = r'(?P<url>' + host + 'quality/[^/]+/\?post_type=movies)">(?P<title>[^<]+)' + patronMenu = r'(?P<url>' + host + r'quality/[^/]+/\?post_type=movies)">(?P<title>[^<]+)' return locals() diff --git a/channels/netfreex.py b/channels/netfreex.py index df9f730b..5f177a7a 100644 --- a/channels/netfreex.py +++ b/channels/netfreex.py @@ -54,12 +54,14 @@ def episodios(item): def findvideos(item): + from core import jsontools itemlist = [] - for link in support.dooplay_get_links(item, host): - if link['title'] != 'Guarda il trailer': - logger.info(link['title']) - itemlist.append( - item.clone(action="play", url=link['url'], quality=link['title'])) + matches = support.match(item, patron=r'<li id="player-option-[0-9]".*?data-type="([^"]+)" data-post="([^"]+)" data-nume="([^"]+)".*?<span class="title".*?>([^<>]+)</span>(?:<span class="server">([^<>]+))?').matches + for Type, Post, Nume, Quality, Server in matches: + dataAdmin = support.match(host + '/wp-json/dooplayer/v1/post/%s?type=%s&source=%s' %(Post, Type, Nume)).data + js = jsontools.load(dataAdmin) + link = js['embed_url'] if 'embed_url' in js else '' + itemlist.append( item.clone(server=Server, quality=Quality, url=link, action='play')) return support.server(item, itemlist=itemlist)