Merge pull request 'test-latest' (#1) from test-latest into master

Reviewed-on: #1
This commit is contained in:
2025-01-17 20:44:30 +00:00
1249 changed files with 474 additions and 514 deletions

View File

@@ -0,0 +1,30 @@
name: Update channel domains
on:
workflow_dispatch:
schedule:
- cron: '30 17 * * *'
jobs:
update:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install dependencies
run: pip install requests
- name: Update domains
run: python tools/updateDomains.py
- name: Commit & Push changes
uses: actions-js/push@master
with:
message: "Aggiornamento domini"
branch: "master"
github_token: ${{ secrets.API_TOKEN_GITHUB }}

0
.github/ISSUE_TEMPLATE/canale-non-funzionante.md vendored Normal file → Executable file
View File

0
.github/ISSUE_TEMPLATE/server-non-funzionante.md vendored Normal file → Executable file
View File

0
.github/ISSUE_TEMPLATE/test-canale.md vendored Normal file → Executable file
View File

0
.github/workflows/tests.yml vendored Normal file → Executable file
View File

0
.github/workflows/updateDomains.yml vendored Normal file → Executable file
View File

0
.github/workflows/updateDomainsStable.yml vendored Normal file → Executable file
View File

0
.gitignore vendored Normal file → Executable file
View File

0
CONTRIBUTING.md Normal file → Executable file
View File

0
LICENSE Normal file → Executable file
View File

0
README.md Normal file → Executable file
View File

0
__init__.py Normal file → Executable file
View File

5
addon.xml Normal file → Executable file
View File

@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.kod" name="Kodi on Demand BETA" version="1.7.7" provider-name="KoD Team">
<addon id="plugin.video.kod" name="Kodi on Demand" version="1.7.7" provider-name="KoD Team">
<requires>
<!-- <import addon="script.module.libtorrent" optional="true"/> -->
<import addon="metadata.themoviedb.org" optional="true"/>
<import addon="metadata.tvshows.themoviedb.org" optional="true"/>
<!-- <import addon="metadata.tvdb.com"/> -->
<import addon="script.module.web-pdb" />
</requires>
<extension point="xbmc.python.pluginsource" library="default.py">
<provides>video</provides>

15
channels.json Normal file → Executable file
View File

@@ -1,28 +1,27 @@
{
"direct": {
"altadefinizione01": "https://altadefinizione01.pet",
"animealtadefinizione": "https://www.animealtadefinizione.it",
"animealtadefinizione": "http://ww38.animealtadefinizione.it",
"animeforce": "https://www.animeforce.it",
"animesaturn": "https://www.animesaturn.cx",
"animeunity": "https://www.animeunity.tv",
"animeworld": "https://www.animeworld.so",
"aniplay": "https://aniplay.co",
"casacinema": "https://casacinema.media",
"cb01anime": "https://cineblog01.red",
"cb01anime": "https://cb01new.one",
"cinemalibero": "https://cinemalibero.cafe",
"cinetecadibologna": "http://cinestore.cinetecadibologna.it",
"dinostreaming": "https://dinostreaming.it",
"discoveryplus": "https://www.discoveryplus.com",
"dreamsub": "https://www.animeworld.so",
"eurostreaming": "https://eurostreaming.diy",
"eurostreaming_actor": "https://eurostreaming.futbol",
"eurostreaming": "https://eurostreaming.lifestyle",
"eurostreaming_actor": "https://eurostreaming.my",
"filmstreaming": "https://film-streaming-ita.cam",
"guardaseriecam": "https://guardaserie.kitchen",
"hd4me": "https://hd4me.net",
"ilcorsaronero": "https://ilcorsaronero.link",
"ilgeniodellostreaming_cam": "https://ilgeniodellostreaming.foo",
"italiafilm": "https://italia-film.biz",
"lordchannel": "https://lordchannel.com",
"mediasetplay": "https://mediasetinfinity.mediaset.it",
"mondoserietv": "http://ww25.mondoserietv.club/?subid1=20230304-0434-261c-9cb0-a0044930e0a9",
"paramount": "https://www.mtv.it",
@@ -30,9 +29,9 @@
"plutotv": "https://pluto.tv",
"raiplay": "https://www.raiplay.it",
"serietvu": "http://ww1.serietvu.live/?sub1=47fb879a-5325-11ee-94a7-cc35006f53d1",
"streamingcommunity": "https://streamingcommunity.buzz",
"streamingita": "https://streamingita.digital",
"tantifilm": "https://tantifilm.hair",
"streamingcommunity": "https://streamingcommunity.ooo",
"streamingita": "https://streamingita.click",
"tantifilm": "https://tantifilm.name",
"toonitalia": "https://toonitalia.xyz"
},
"findhost": {

0
channels/0example.json.txt Normal file → Executable file
View File

0
channels/0example.py.txt Normal file → Executable file
View File

0
channels/1337x.json Normal file → Executable file
View File

0
channels/1337x.py Normal file → Executable file
View File

0
channels/__init__.py Normal file → Executable file
View File

0
channels/accuradio.json Normal file → Executable file
View File

0
channels/accuradio.py Normal file → Executable file
View File

0
channels/altadefinizione.json Normal file → Executable file
View File

0
channels/altadefinizione.py Normal file → Executable file
View File

0
channels/altadefinizione01.json Normal file → Executable file
View File

0
channels/altadefinizione01.py Normal file → Executable file
View File

0
channels/altadefinizioneclick.json Normal file → Executable file
View File

0
channels/altadefinizioneclick.py Normal file → Executable file
View File

0
channels/altadefinizionecommunity.json Normal file → Executable file
View File

0
channels/altadefinizionecommunity.py Normal file → Executable file
View File

0
channels/animealtadefinizione.json Normal file → Executable file
View File

0
channels/animealtadefinizione.py Normal file → Executable file
View File

0
channels/animeforce.json Normal file → Executable file
View File

0
channels/animeforce.py Normal file → Executable file
View File

0
channels/animesaturn.json Normal file → Executable file
View File

0
channels/animesaturn.py Normal file → Executable file
View File

0
channels/animeunity.json Normal file → Executable file
View File

32
channels/animeunity.py Normal file → Executable file
View File

@@ -4,7 +4,7 @@
# ------------------------------------------------------------
import cloudscraper, json, copy, inspect
from core import jsontools, support, httptools
from core import jsontools, support, httptools, scrapertools
from platformcode import autorenumber
# support.dbg()
@@ -53,7 +53,7 @@ def genres(item):
# support.dbg()
itemlist = []
genres = json.loads(support.match(response.text, patron='genres="([^"]+)').match.replace('&quot;','"'))
genres = json.loads(support.match(response.data, patron='genres="([^"]+)').match.replace('&quot;','"'))
for genre in genres:
item.args['genres'] = [genre]
@@ -65,10 +65,10 @@ def years(item):
itemlist = []
from datetime import datetime
current_year = datetime.today().year
oldest_year = int(support.match(response.text, patron='anime_oldest_date="([^"]+)').match)
next_year = datetime.today().year + 1
oldest_year = int(support.match(response.data, patron='anime_oldest_date="([^"]+)').match)
for year in list(reversed(range(oldest_year, current_year + 1))):
for year in list(reversed(range(oldest_year, next_year + 1))):
item.args['year']=year
itemlist.append(item.clone(title=support.typo(year,'bold'), action='peliculas'))
return itemlist
@@ -116,21 +116,31 @@ def news(item):
support.info()
item.contentType = 'episode'
itemlist = []
import cloudscraper
session = cloudscraper.create_scraper()
fullJs = json.loads(support.match(session.get(item.url).text, headers=headers, patron=r'items-json="([^"]+)"').match.replace('&quot;','"'))
fullJs = json.loads(support.match(httptools.downloadpage(item.url).data, headers=headers, patron=r'items-json="([^"]+)"').match.replace('&quot;','"'))
js = fullJs['data']
for it in js:
if it.get('anime', {}).get('title'):
if it.get('anime', {}).get('title') or it.get('anime', {}).get('title_eng'):
title_name = it['anime']['title'] if it.get('anime', {}).get('title') else it['anime']['title_eng']
pattern = r'[sS](?P<season>\d+)[eE](?P<episode>\d+)'
match = scrapertools.find_single_match(it['file_name'], pattern)
full_episode = ''
if match:
season, episode = match
full_episode = ' - S' + season + ' E' + episode
else:
pattern = r'[._\s]Ep[._\s]*(?P<episode>\d+)'
episode = scrapertools.find_single_match(it['file_name'], pattern)
if episode:
full_episode = ' - E' + episode
itemlist.append(
item.clone(title= support.typo(it['anime']['title'] + ' - EP. ' + it['number'], 'bold'),
item.clone(title = support.typo(title_name + full_episode, 'bold'),
fulltitle = it['anime']['title'],
thumbnail = it['anime']['imageurl'],
forcethumb = True,
scws_id = it.get('scws_id', ''),
# video_url=it.get('link', ''),
url = '{}/anime/{}-{}'.format(item.url, it['anime']['id'],it['anime']['slug']),
plot = it['anime']['plot'],
action = 'findvideos')
)

0
channels/animeuniverse.json Normal file → Executable file
View File

0
channels/animeuniverse.py Normal file → Executable file
View File

0
channels/animeworld.json Normal file → Executable file
View File

0
channels/animeworld.py Normal file → Executable file
View File

0
channels/aniplay.json Normal file → Executable file
View File

0
channels/aniplay.py Normal file → Executable file
View File

0
channels/casacinema.json Normal file → Executable file
View File

0
channels/casacinema.py Normal file → Executable file
View File

0
channels/cb01anime.json Normal file → Executable file
View File

0
channels/cb01anime.py Normal file → Executable file
View File

0
channels/cineblog01.json Normal file → Executable file
View File

0
channels/cineblog01.py Normal file → Executable file
View File

0
channels/cinemalibero.json Normal file → Executable file
View File

0
channels/cinemalibero.py Normal file → Executable file
View File

0
channels/cinetecadibologna.json Normal file → Executable file
View File

0
channels/cinetecadibologna.py Normal file → Executable file
View File

0
channels/dinostreaming.json Normal file → Executable file
View File

0
channels/dinostreaming.py Normal file → Executable file
View File

0
channels/discoveryplus.json Normal file → Executable file
View File

0
channels/discoveryplus.py Normal file → Executable file
View File

0
channels/dreamsub.json Normal file → Executable file
View File

0
channels/dreamsub.py Normal file → Executable file
View File

2
channels/eurostreaming.json Normal file → Executable file
View File

@@ -1,7 +1,7 @@
{
"id": "eurostreaming",
"name": "Eurostreaming",
"active": true,
"active": false,
"language": ["ita", "sub-ita"],
"thumbnail": "eurostreaming.png",
"banner": "eurostreaming.png",

0
channels/eurostreaming.py Normal file → Executable file
View File

0
channels/eurostreaming_actor.json Normal file → Executable file
View File

0
channels/eurostreaming_actor.py Normal file → Executable file
View File

0
channels/filmpertutti.json Normal file → Executable file
View File

0
channels/filmpertutti.py Normal file → Executable file
View File

0
channels/filmstreaming.json Normal file → Executable file
View File

0
channels/filmstreaming.py Normal file → Executable file
View File

0
channels/guardaseriecam.json Normal file → Executable file
View File

0
channels/guardaseriecam.py Normal file → Executable file
View File

0
channels/guardaserieclick.json Normal file → Executable file
View File

0
channels/guardaserieclick.py Normal file → Executable file
View File

0
channels/guardaserieicu.json Normal file → Executable file
View File

0
channels/guardaserieicu.py Normal file → Executable file
View File

0
channels/hd4me.json Normal file → Executable file
View File

0
channels/hd4me.py Normal file → Executable file
View File

0
channels/ilcorsaronero.json Normal file → Executable file
View File

67
channels/ilcorsaronero.py Normal file → Executable file
View File

@@ -3,56 +3,33 @@
# Canale per ilcorsaronero
# ------------------------------------------------------------
from core import support
# def findhost(url):
# data = support.httptools.downloadpage(url).data
# url = support.scrapertools.find_single_match(data, '<li><a href="([^"]+)')
# return url[:-1] if url.endswith('/') else url
from core import support, httptools
host = support.config.get_channel_url()
support.info('HOST',host)
# host = 'https://ilcorsaronero.xyz'
headers = [['Referer', host]]
@support.menu
def mainlist(item):
menu = [
('BDRiP {film}', ['/categoria.php?active=0&category=1&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True], 'undefined']),
('Cerca BDRiP... {submenu} {film}', ['/torrent-ita/1/', 'search', ['search', 'movie', True], 'movie']),
('DVD {film}', ['/categoria.php?active=0&category=20&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True], 'undefined']),
('Cerca DVD... {submenu} {film}', ['/torrent-ita/20/', 'search', ['search', 'movie', True], 'movie']),
('Screener {film}', ['/categoria.php?active=0&category=19&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True], 'undefined']),
('Cerca Screener.. {submenu} {film}', ['/torrent-ita/19/', 'search', ['search', 'movie', True], 'movie']),
('Serie TV', ['/categoria.php?active=0&category=15&order=data&by=DES&page=', 'peliculas', [0 , 'tvshow', True], 'tvshow']),
('Cerca Serie TV.. {submenu}', ['/torrent-ita/15/', 'search', ['search', 'tvshow',True], 'tvshow']),
('Anime', ['/categoria.php?active=0&category=5&order=data&by=DESC&page=', 'peliculas', [0, 'anime', True], 'tvshow']),
('Cerca Anime.. {submenu}', ['/torrent-ita/5/', 'search', ['search', 'anime', True], 'tvshow']),
('Musica', ['/categoria.php?active=0&category=2&order=data&by=DESC&page=', 'peliculas', [0, 'music', False], 'music']),
('Cerca Musica.. {submenu}', ['/torrent-ita/2/', 'search', ['search', 'music', False], 'music']),
('Audiolibri {musica}', ['/categoria.php?active=0&category=18&order=data&by=DESC&page=', 'peliculas', [0, 'music', False], 'music']),
('Cerca Audiolibri.. {submenu}', ['/torrent-ita/18/', 'search', ['search', 'music', False], 'music']),
# mostrerebbe anche risultati non "multimediali" e allungherebbero inutilmente la ricerca globale
# ('Altro {film}', ['/categoria.php?active=0&category=4&order=data&by=DESC&page=', 'peliculas', [0, 'other', False]]),
# ('Cerca altro.. {submenu}', ['/torrent-ita/4/', 'search', ['search', 'other', False]]),
# ('Cerca Tutto... {color kod bold}', ['/argh.php?search=', 'search', ['search', 'all', False]])
('Film {film}', ['/cat/film', 'peliculas', [0, 'movie', True], 'undefined']),
('Serie TV', ['/cat/serie-tv', 'peliculas', [0 , 'tvshow', True], 'undefined']),
('Animazione', ['/cat/animazione', 'peliculas', [0 , 'anime', True], 'undefined']),
('Documentari', ['/cat/altro/documentari', 'peliculas', [0 , 'documentary', True], 'undefined']),
('Programmi TV', ['/cat/altro/programmi-tv', 'peliculas', [0 , 'tvshow', True], 'tvshow']),
('Video Musica', ['/cat/musica/video-musicali', 'peliculas', [0 , 'music', False], 'undefined']),
('Videocorsi', ['/cat/altro/videocorsi', 'peliculas', [0 , 'music', False], 'undefined'])
]
search = ''
return locals()
@support.scrape
def peliculas(item):
# debug = True
debug = False
action = 'findvideos'
sceneTitle = item.args[2]
if item.args[1] in ['tvshow', 'anime', 'music', 'other']:
patron = r'>[^"<]+'
else:
patron = r'>(?P<quality>[^"<]+)'
patron += '<td[^>]+><a class="tab" href="(?P<url>[^"]+)"\s*>[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<size>[^<]+)<[^>]+>[^>]+>[^>]+><form action="[^"]+/\d+/(?P<title>[^"]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<seed>[^<]+)'
def itemHook(item):
if not sceneTitle:
@@ -62,33 +39,23 @@ def peliculas(item):
return item
if 'search' not in item.args:
item.url += str(item.args[0])
def itemlistHook(itemlist):
args = item.args
args[0] += 1
support.nextPage(itemlist, item, next_page=item.url, function_or_level="peliculas")
# itemlist.append(item.clone(title=support.typo(support.config.get_localized_string(30992), 'color kod bold'), args=args, thumbnail=support.thumb()))
return itemlist
patron = r'<a class="hover:underline line-clamp-1.*?href="(?P<url>[^"]+)"\s*>(?P<title>.*?)</a>[^>]+>[^>]+>[^>]+>(?P<seed>.*?)<'
patronNext = r'<a href="(?P<url>[^"]+)".*?Next</span>'
return locals()
def search(item, text):
support.info(item, text)
if 'all' in item.args:
item.url += text
else:
item.url += text + '.html'
item.url = "{}/search?{}".format(host, support.urlencode({'q': text}))
item.args = 'search'
try:
return peliculas(item)
# Cattura la eccezione così non interrompe la ricerca globle se il canale si rompe!
except:
import sys
for line in sys.exc_info():
support.logger.error("search except: %s" % line)
logger.error("search except: %s" % line)
return []
def findvideos(item):
if item.contentType == 'tvshow': item.contentType = 'episode'
Videolibrary = True if 'movie' in item.args else False

0
channels/ilgeniodellostreaming.json Normal file → Executable file
View File

0
channels/ilgeniodellostreaming.py Normal file → Executable file
View File

0
channels/ilgeniodellostreaming_cam.json Normal file → Executable file
View File

0
channels/ilgeniodellostreaming_cam.py Normal file → Executable file
View File

0
channels/italiafilm.json Normal file → Executable file
View File

0
channels/italiafilm.py Normal file → Executable file
View File

0
channels/italiaserie.json Normal file → Executable file
View File

0
channels/italiaserie.py Normal file → Executable file
View File

0
channels/la7.json Normal file → Executable file
View File

0
channels/la7.py Normal file → Executable file
View File

View File

@@ -1,10 +0,0 @@
{
"id": "lordchannel",
"name": "LordChannel",
"active": true,
"language": ["ita", "sub-ita"],
"thumbnail": "lordchannel.png",
"banner": "lordchannel.png",
"categories": ["anime", "tvshow", "movie"],
"settings": []
}

View File

@@ -1,78 +0,0 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Canale per lordchannel.py
# ------------------------------------------------------------
from core import httptools, support, scrapertools
from core.item import Item
from platformcode import config, logger
host = config.get_channel_url()
headers = [['Referer', host]]
@support.menu
def mainlist(item):
film = ['/film/',
]
tvshow = ['/serietv/',
]
anime = ['/anime/anime-ita/',
('Anime SUB-Ita', ['/anime/anime-sub-ita/','peliculas']),
]
search = ''
return locals()
@support.scrape
def peliculas(item):
if item.args == 'search':
action = 'check'
patron= r'<div class="col-6.*?<img\s.*?src="(?P<thumb>[^"]+).*?<h3.*?<a\shref="(?P<url>[^"]+).*?>(?P<title>.*?)</a'
patronNext = r'<li class="paginator__item paginator__item--next">.*?href="(?P<url>[^"]+)'
return locals()
@support.scrape
def episodios(item):
patronBlock=r'<div class="accordion__card.*?<span>.*?:\s*(?P<season>\d*?)\s*</span>(?P<block>.*?)</table>'
patron=r'<tr>\s<th class="episode-link".*?href="(?P<url>[^"]+).*?>(?P<episode>\d+).*?_blank">(?P<title>.*?)</a>'
downloadEnabled = False
return locals()
def check(item):
item.data = httptools.downloadpage(item.url).data
if 'episode-link' in item.data.lower():
item.contentType = 'tvshow'
return episodios(item)
else:
item.contentType = 'movie'
return findvideos(item)
def search(item, text):
item.url = "{}/cerca/?{}".format(host, support.urlencode({'q': text}))
item.args = 'search'
try:
return peliculas(item)
except:
import sys
for line in sys.exc_info():
logger.error("search except: %s" % line)
return []
def findvideos(item):
video_url = item.url
if item.contentType == 'movie':
video_url = support.match(video_url, patron=r'<a\shref="(?P<url>[^"]+)"\sclass="btn-streaming streaming_btn">').match
video_url = support.match(video_url, patron=r'<video-js.*?src="(?P<url>[^"]+)').match
if (video_url == ''):
return []
item = item.clone(server='directo', url=video_url, no_return=True)
return support.server(item,itemlist=[item], Download=False, Videolibrary=False)

0
channels/mediasetplay.json Normal file → Executable file
View File

16
channels/mediasetplay.py Normal file → Executable file
View File

@@ -48,17 +48,19 @@ pagination = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100][config.get_setting('pagin
def mainlist(item):
top = [('Dirette {bold}', ['', 'live'])]
menu = [('Film {bullet bold}', ['/cinema', 'peliculas', {'uxReference':'filmUltimiArrivi'}, 'movie']),
('Film Più Visti {submenu}', ['/cinema', 'peliculas', {'uxReference':'filmPiuVisti24H'}, 'movie']),
menu = [('Film Più Visti {submenu}', ['/cinema', 'peliculas', {'uxReference':'filmPiuVisti24H'}, 'movie']),
('Film ultimi arrivi {submenu}', ['/cinema', 'peliculas', {'uxReference':'filmUltimiArrivi'}, 'movie']),
('Film Da Non Perdere {submenu}', ['/cinema', 'peliculas', {'uxReference':'filmClustering'}, 'movie']),
('Fiction / Serie TV {bullet bold}', ['/fiction', 'peliculas', {'uxReference':'fictionSerieTvDelMomento'}, 'tvshow']),
('Fiction e Serie Tv del momento {submenu}', ['/fiction', 'peliculas', {'uxReference':'fictionSerieTvDelMomento'}, 'tvshow']),
('Serie TV Piu Viste {submenu}', ['/fiction', 'peliculas', {'uxReference':'serieTvPiuViste24H'}, 'tvshow']),
('Le Serie Soap Del Momento {submenu}', ['/cinema', 'peliculas', {'uxReference':'fictionSerieTvParamsGenre', 'params': 'genre≈Soap opera'}, 'tvshow']),
('Programmi TV{ bullet bold}', ['/programmitv', 'peliculas', {'uxReference':'stagioniPrimaSerata'}, 'tvshow']),
('Kids {bullet bold}', ['/kids', 'peliculas', {'uxReference':'kidsMediaset' }, 'undefined']),
('Soap del momento {submenu}', ['/cinema', 'peliculas', {'uxReference':'fictionSerieTvParamsGenre', 'params': 'genre≈Soap opera'}, 'tvshow']),
('Programmi TV Prima serata{ submenu}', ['/programmitv', 'peliculas', {'uxReference':'stagioniPrimaSerata'}, 'tvshow']),
('Programmi TV Daytime{ submenu}', ['/programmitv', 'peliculas', {'uxReference':'stagioniDaytime'}, 'tvshow']),
('Talent e reality {submenu}', ['/talent', 'peliculas', {'uxReference':'multipleBlockProgrammiTv', 'userContext' :'iwiAeyJwbGF0Zm9ybSI6IndlYiJ9Aw'}, 'tvshow']),
('Kids Evergreen {submenu}', ['/kids', 'peliculas', {'uxReference':'kidsMediaset' }, 'undefined']),
('Kids Boing {submenu}', ['/kids', 'peliculas', {'uxReference':'kidsBoing' }, 'undefined']),
('Kids Cartoonito {submenu}', ['/kids', 'peliculas', {'uxReference':'kidsCartoonito' }, 'undefined']),
('Documentari {bullet bold}', ['/documentari', 'peliculas', {'uxReference': 'documentariPiuVisti24H'}, 'undefined']),
('Documentari più visti {submenu}', ['/documentari', 'peliculas', {'uxReference': 'documentariPiuVisti24H'}, 'undefined']),
]
search = ''

0
channels/mediasetplay.py.old Normal file → Executable file
View File

2
channels/metalvideo.json Normal file → Executable file
View File

@@ -1,7 +1,7 @@
{
"id": "metalvideo",
"name": "Metal Video",
"active": true,
"active": false,
"language": ["*"],
"thumbnail": "metalvideo.png",
"banner": "metalvideo.png",

0
channels/metalvideo.py Normal file → Executable file
View File

0
channels/mondoserietv.json Normal file → Executable file
View File

0
channels/mondoserietv.py Normal file → Executable file
View File

0
channels/paramount.json Normal file → Executable file
View File

0
channels/paramount.py Normal file → Executable file
View File

0
channels/piratestreaming.json Normal file → Executable file
View File

0
channels/piratestreaming.py Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More