forked from recloudstream/cloudstream
remove unnecesarry stuff
This commit is contained in:
parent
1457cb4647
commit
3337e08c45
9 changed files with 17 additions and 886 deletions
65
.github/site-list.py
vendored
65
.github/site-list.py
vendored
|
@ -1,65 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
|
|
||||||
from glob import glob
|
|
||||||
from re import findall, compile, DOTALL
|
|
||||||
from json import dump, load
|
|
||||||
from typing import List, Dict
|
|
||||||
|
|
||||||
# Globals
|
|
||||||
JSON_PATH = "docs/providers.json"
|
|
||||||
GLOB_ANIME = "app/src/main/java/com/lagradost/cloudstream3/animeproviders/*Provider.kt"
|
|
||||||
GLOB_MOVIE = "app/src/main/java/com/lagradost/cloudstream3/movieproviders/*Provider.kt"
|
|
||||||
URL_REGEX = compile("override\sva[lr]\smainUrl[^\"']+[\"'](https?://[a-zA-Z0-9\.-/]+)[\"']")
|
|
||||||
FILENAME_REGEX = compile("([A-Za-z0-9]+)(?:.kt)$")
|
|
||||||
PROVIDER_CLASSNAME_REGEX = compile("(?<=class\s)([a-zA-Z]+)(?=\s:\sMainAPI\(\))")
|
|
||||||
NAME_REGEX = compile("override\sva[lr]\sname[^\"']+[\"']([a-zA-Z-.\s]+)")
|
|
||||||
LANG_REGEX = compile("override\sva[lr]\slang[^\"']+[\"']([a-zA-Z]+)")
|
|
||||||
|
|
||||||
old_sites: Dict[str, Dict] = load(open(JSON_PATH, "r", encoding="utf-8"))
|
|
||||||
sites: Dict[str, Dict] = {}
|
|
||||||
|
|
||||||
animelist = glob(GLOB_ANIME)
|
|
||||||
movielist = glob(GLOB_MOVIE)
|
|
||||||
allProvidersList = animelist + movielist
|
|
||||||
|
|
||||||
# parse all *Provider.kt files
|
|
||||||
for path in allProvidersList:
|
|
||||||
with open(path, "r", encoding='utf-8') as file:
|
|
||||||
try:
|
|
||||||
site_text: str = file.read()
|
|
||||||
filename: str = findall(FILENAME_REGEX, path)[0]
|
|
||||||
name: str = [*findall(PROVIDER_CLASSNAME_REGEX, site_text), filename][0]
|
|
||||||
provider_url: str = [*findall(URL_REGEX, site_text), ""][0]
|
|
||||||
lang: str = [*findall(LANG_REGEX, site_text), "en"][0]
|
|
||||||
|
|
||||||
if name in old_sites.keys(): # if already in previous list use old status and name
|
|
||||||
sites[name] = {
|
|
||||||
"name": old_sites[name]['name'],
|
|
||||||
"url": provider_url if provider_url else old_sites[name]['url'],
|
|
||||||
"status": old_sites[name]['status'],
|
|
||||||
"language": lang
|
|
||||||
}
|
|
||||||
else: # if not in previous list add with new data
|
|
||||||
display_name: str = [*findall(NAME_REGEX, site_text), name][0]
|
|
||||||
if display_name.endswith("Provider"):
|
|
||||||
display_name = display_name[:-len("Provider")]
|
|
||||||
sites[name] = {
|
|
||||||
"name": display_name,
|
|
||||||
"url": provider_url if provider_url else "",
|
|
||||||
"status": 1,
|
|
||||||
"language": lang
|
|
||||||
}
|
|
||||||
|
|
||||||
except Exception as ex:
|
|
||||||
print("Error => {0}: {1}".format(path, ex))
|
|
||||||
|
|
||||||
# add sites from old_sites that are missing in new list
|
|
||||||
for name in old_sites.keys():
|
|
||||||
if name not in sites.keys():
|
|
||||||
sites[name] = {
|
|
||||||
"name": old_sites[name]['name'],
|
|
||||||
"url": old_sites[name]['url'],
|
|
||||||
"status": old_sites[name]['status']
|
|
||||||
}
|
|
||||||
|
|
||||||
dump(sites, open(JSON_PATH, "w+", encoding="utf-8"), indent=4, sort_keys=True)
|
|
34
.github/workflows/prerelease.yml
vendored
34
.github/workflows/prerelease.yml
vendored
|
@ -31,25 +31,25 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
COMMIT_HASH="$(git log -1 --format='%H')"
|
COMMIT_HASH="$(git log -1 --format='%H')"
|
||||||
sed -i "s/<string name=\"prerelease_commit_hash\" translatable=\"false\">unknown_prerelease<\/string>/<string name=\"prerelease_commit_hash\">$COMMIT_HASH<\/string>/g" app/src/main/res/values/strings.xml
|
sed -i "s/<string name=\"prerelease_commit_hash\" translatable=\"false\">unknown_prerelease<\/string>/<string name=\"prerelease_commit_hash\">$COMMIT_HASH<\/string>/g" app/src/main/res/values/strings.xml
|
||||||
- name: Decode Keystore
|
# - name: Decode Keystore
|
||||||
env:
|
# env:
|
||||||
ENCODED_STRING: ${{ secrets.KEYSTORE }}
|
# ENCODED_STRING: ${{ secrets.KEYSTORE }}
|
||||||
run: |
|
# run: |
|
||||||
TMP_KEYSTORE_FILE_PATH="${RUNNER_TEMP}"/keystore
|
# TMP_KEYSTORE_FILE_PATH="${RUNNER_TEMP}"/keystore
|
||||||
mkdir -p "${TMP_KEYSTORE_FILE_PATH}"
|
# mkdir -p "${TMP_KEYSTORE_FILE_PATH}"
|
||||||
echo $ENCODED_STRING | base64 -di > "${TMP_KEYSTORE_FILE_PATH}"/prerelease_keystore.keystore
|
# echo $ENCODED_STRING | base64 -di > "${TMP_KEYSTORE_FILE_PATH}"/prerelease_keystore.keystore
|
||||||
- name: Run Gradle
|
- name: Run Gradle
|
||||||
run: ./gradlew app:assemblePrerelease
|
run: ./gradlew app:assembleDebug
|
||||||
env:
|
env:
|
||||||
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
|
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
|
||||||
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
|
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
|
||||||
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
|
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
|
||||||
#- name: Create pre-release
|
- name: Create pre-release
|
||||||
# uses: "marvinpinto/action-automatic-releases@latest"
|
uses: "marvinpinto/action-automatic-releases@latest"
|
||||||
# with:
|
with:
|
||||||
# repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
# automatic_release_tag: "pre-release"
|
automatic_release_tag: "pre-release"
|
||||||
# prerelease: true
|
prerelease: true
|
||||||
# title: "Pre-release Build"
|
title: "Pre-release Build"
|
||||||
# files: |
|
files: |
|
||||||
# app/build/outputs/apk/prerelease/*.apk
|
app/build/outputs/apk/prerelease/*.apk
|
||||||
|
|
32
.github/workflows/site_list.yml
vendored
32
.github/workflows/site_list.yml
vendored
|
@ -1,32 +0,0 @@
|
||||||
name: Create site list
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
paths:
|
|
||||||
- 'app/src/main/java/com/lagradost/cloudstream3/*providers/*Provider.kt'
|
|
||||||
- '.github/workflows/site_list.yml'
|
|
||||||
- '.github/site-list.py'
|
|
||||||
- 'docs/providers.json'
|
|
||||||
- 'app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt'
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: "site-list"
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
create:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Edit providers.json
|
|
||||||
run: |
|
|
||||||
python3 .github/site-list.py
|
|
||||||
- name: Commit to the repo
|
|
||||||
run: |
|
|
||||||
git config user.name "GitHub Actions"
|
|
||||||
git config user.email "actions@github.com"
|
|
||||||
git add .
|
|
||||||
# "echo" returns true so the build succeeds, even if no changed files
|
|
||||||
git commit -m 'chore(docs): update list of sites' || echo
|
|
||||||
git push
|
|
|
@ -1 +0,0 @@
|
||||||
theme: jekyll-theme-modernist
|
|
|
@ -1,23 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
|
|
||||||
<title>CloudStream-3 Supported Sites</title>
|
|
||||||
<link rel="stylesheet" href="style.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div>
|
|
||||||
<h1>Sites supported (<span id="count">0</span>):</h1>
|
|
||||||
<table>
|
|
||||||
<tbody id="siteList"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<script src="script.js" type="text/javascript"></script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
"wco_key": "51wJ0FDq/UVCefLopEcmK3ni4WIQztMjZdSYOsbHr9R2h7PvxBGAuglaN8+kXT6y",
|
|
||||||
"wco_cipher_key": "vZUFFBPxMqDeOfAm"
|
|
||||||
}
|
|
|
@ -1,633 +0,0 @@
|
||||||
{
|
|
||||||
"AkwamProvider": {
|
|
||||||
"language": "ar",
|
|
||||||
"name": "Akwam",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://akwam.to"
|
|
||||||
},
|
|
||||||
"AllAnimeProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "AllAnime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://allanime.site"
|
|
||||||
},
|
|
||||||
"AllMoviesForYouProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "AllMoviesForYou",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://allmoviesforyou.net"
|
|
||||||
},
|
|
||||||
"AltadefinizioneProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "Altadefinizione",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://altadefinizione.tienda"
|
|
||||||
},
|
|
||||||
"AniPlayProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "AniPlay",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://aniplay.it"
|
|
||||||
},
|
|
||||||
"AniflixProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Aniflix",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://aniflix.pro"
|
|
||||||
},
|
|
||||||
"AnimeFlickProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "AnimeFlick",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://animeflick.net"
|
|
||||||
},
|
|
||||||
"AnimeIndoProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "AnimeIndo",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://animeindo.sbs"
|
|
||||||
},
|
|
||||||
"AnimePaheProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "AnimePahe",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://animepahe.com"
|
|
||||||
},
|
|
||||||
"AnimeSailProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "AnimeSail",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://111.90.143.42"
|
|
||||||
},
|
|
||||||
"AnimeSaturnProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "AnimeSaturn",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.animesaturn.cc"
|
|
||||||
},
|
|
||||||
"AnimeWorldProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "AnimeWorld",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.animeworld.tv"
|
|
||||||
},
|
|
||||||
"AnimefenixProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Animefenix",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://animefenix.com"
|
|
||||||
},
|
|
||||||
"AnimeflvIOProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Animeflv.io",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://animeflv.io"
|
|
||||||
},
|
|
||||||
"AnimeflvnetProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Animeflv.net",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www3.animeflv.net"
|
|
||||||
},
|
|
||||||
"AnimekisaProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Animekisa",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://animekisa.in"
|
|
||||||
},
|
|
||||||
"ApiMDBProvider": {
|
|
||||||
"name": "ApiMDB",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://v2.apimdb.net"
|
|
||||||
},
|
|
||||||
"AsiaFlixProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "AsiaFlix",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://asiaflix.app"
|
|
||||||
},
|
|
||||||
"AsianLoadProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "AsianLoad",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://asianembed.io"
|
|
||||||
},
|
|
||||||
"BflixProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Bflix",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://bflix.ru"
|
|
||||||
},
|
|
||||||
"CimaNowProvider": {
|
|
||||||
"language": "ar",
|
|
||||||
"name": "CimaNow",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://cimanow.cc"
|
|
||||||
},
|
|
||||||
"CineblogProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "CineBlog",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://cb01.rip"
|
|
||||||
},
|
|
||||||
"CinecalidadProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Cinecalidad",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://cinecalidad.lol"
|
|
||||||
},
|
|
||||||
"CuevanaProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Cuevana",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://cuevana3.me"
|
|
||||||
},
|
|
||||||
"DopeboxProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Dopebox",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://dopebox.to"
|
|
||||||
},
|
|
||||||
"DoramasYTProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "DoramasYT",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://doramasyt.com"
|
|
||||||
},
|
|
||||||
"DramaSeeProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "DramaSee",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://dramasee.net"
|
|
||||||
},
|
|
||||||
"DramaidProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "DramaId",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://185.224.83.103"
|
|
||||||
},
|
|
||||||
"DreamSubProvider": {
|
|
||||||
"name": "DreamSub",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://dreamsub.me"
|
|
||||||
},
|
|
||||||
"DubbedAnimeProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "DubbedAnime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://bestdubbedanime.com"
|
|
||||||
},
|
|
||||||
"DubokuProvider": {
|
|
||||||
"language": "zh",
|
|
||||||
"name": "Duboku",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.duboku.tv"
|
|
||||||
},
|
|
||||||
"EgyBestProvider": {
|
|
||||||
"language": "ar",
|
|
||||||
"name": "EgyBest",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.egy.best"
|
|
||||||
},
|
|
||||||
"ElifilmsProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Elifilms",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://elifilms.net"
|
|
||||||
},
|
|
||||||
"EntrePeliculasySeriesProvider": {
|
|
||||||
"name": "EntrePeliculasySeries",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://entrepeliculasyseries.nu"
|
|
||||||
},
|
|
||||||
"EntrepeliculasyseriesProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "EntrePeliculasySeries",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://entrepeliculasyseries.nu"
|
|
||||||
},
|
|
||||||
"EstrenosDoramasProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "EstrenosDoramas",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www23.estrenosdoramas.net"
|
|
||||||
},
|
|
||||||
"FaselHDProvider": {
|
|
||||||
"language": "ar",
|
|
||||||
"name": "FaselHD",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://faselhd.io"
|
|
||||||
},
|
|
||||||
"FilmanProvider": {
|
|
||||||
"language": "pl",
|
|
||||||
"name": "filman.cc",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://filman.cc"
|
|
||||||
},
|
|
||||||
"FilmpertuttiProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "Filmpertutti",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://filmpertutti.photo"
|
|
||||||
},
|
|
||||||
"FmoviesToProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Fmovies.to",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://fmovies.to"
|
|
||||||
},
|
|
||||||
"FrenchStreamProvider": {
|
|
||||||
"language": "fr",
|
|
||||||
"name": "French Stream",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://french-stream.re"
|
|
||||||
},
|
|
||||||
"GogoanimeProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "GogoAnime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://gogoanime.lu"
|
|
||||||
},
|
|
||||||
"GomunimeProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Gomunime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://185.231.223.76"
|
|
||||||
},
|
|
||||||
"HDMProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "HD Movies",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://hdm.to"
|
|
||||||
},
|
|
||||||
"HDTodayProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "HDToday",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://hdtoday.cc"
|
|
||||||
},
|
|
||||||
"HDrezkaProvider": {
|
|
||||||
"language": "ru",
|
|
||||||
"name": "HDrezka",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://hdrezka19139.org"
|
|
||||||
},
|
|
||||||
"IHaveNoTvProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "I Have No TV",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://ihavenotv.com"
|
|
||||||
},
|
|
||||||
"IdlixProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Idlix",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://94.103.82.88"
|
|
||||||
},
|
|
||||||
"IlGenioDelloStreamingProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "IlGenioDelloStreaming",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://ilgeniodellostreaming.quest"
|
|
||||||
},
|
|
||||||
"JKAnimeProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "JKAnime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://jkanime.net"
|
|
||||||
},
|
|
||||||
"KawaiifuProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Kawaiifu",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://kawaiifu.com"
|
|
||||||
},
|
|
||||||
"KdramaHoodProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "KDramaHood",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://kdramahood.com"
|
|
||||||
},
|
|
||||||
"KimCartoonProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Kim Cartoon",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://kimcartoon.li"
|
|
||||||
},
|
|
||||||
"KisskhProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Kisskh",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://kisskh.me"
|
|
||||||
},
|
|
||||||
"KuramanimeProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Kuramanime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://kuramanime.com"
|
|
||||||
},
|
|
||||||
"KuronimeProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Kuronime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://45.12.2.2"
|
|
||||||
},
|
|
||||||
"LayarKaca21Provider": {
|
|
||||||
"name": "LayarKaca",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://149.56.24.226/"
|
|
||||||
},
|
|
||||||
"LayarKacaProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "LayarKaca",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://149.56.24.226"
|
|
||||||
},
|
|
||||||
"LookMovieProvider": {
|
|
||||||
"name": "LookMovie",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://lookmovie.io"
|
|
||||||
},
|
|
||||||
"MeloMovieProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "MeloMovie",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://melomovie.com"
|
|
||||||
},
|
|
||||||
"MonoschinosProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Monoschinos",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://monoschinos2.com"
|
|
||||||
},
|
|
||||||
"MultiplexProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Multiplex",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://146.19.24.137"
|
|
||||||
},
|
|
||||||
"MundoDonghuaProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "MundoDonghua",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.mundodonghua.com"
|
|
||||||
},
|
|
||||||
"MyCimaProvider": {
|
|
||||||
"language": "ar",
|
|
||||||
"name": "MyCima",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://mycima.tv"
|
|
||||||
},
|
|
||||||
"NeonimeProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Neonime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://neonime.watch"
|
|
||||||
},
|
|
||||||
"NginxProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Nginx",
|
|
||||||
"status": 1,
|
|
||||||
"url": ""
|
|
||||||
},
|
|
||||||
"NineAnimeProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "9Anime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://9anime.id"
|
|
||||||
},
|
|
||||||
"NontonAnimeIDProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "NontonAnimeID",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://75.119.159.228"
|
|
||||||
},
|
|
||||||
"OlgplyProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Olgply",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://olgply.com"
|
|
||||||
},
|
|
||||||
"OpenVidsProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "OpenVids",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://openvids.io"
|
|
||||||
},
|
|
||||||
"OploverzProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Oploverz",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://65.108.132.145"
|
|
||||||
},
|
|
||||||
"OtakudesuProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Otakudesu",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://otakudesu.watch"
|
|
||||||
},
|
|
||||||
"PeliSmartProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "PeliSmart",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://pelismart.com"
|
|
||||||
},
|
|
||||||
"PelisflixProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Pelisflix",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://pelisflix.li"
|
|
||||||
},
|
|
||||||
"PelisplusHDProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "PelisplusHD",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://pelisplushd.net"
|
|
||||||
},
|
|
||||||
"PelisplusProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Pelisplus",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://pelisplus.icu"
|
|
||||||
},
|
|
||||||
"PhimmoichillProvider": {
|
|
||||||
"language": "vi",
|
|
||||||
"name": "Phimmoichill",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://phimmoichill.net"
|
|
||||||
},
|
|
||||||
"PinoyHDXyzProvider": {
|
|
||||||
"language": "tl",
|
|
||||||
"name": "Pinoy-HD",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.pinoy-hd.xyz"
|
|
||||||
},
|
|
||||||
"PinoyMoviePediaProvider": {
|
|
||||||
"language": "tl",
|
|
||||||
"name": "Pinoy Moviepedia",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://pinoymoviepedia.ru"
|
|
||||||
},
|
|
||||||
"PinoyMoviesEsProvider": {
|
|
||||||
"language": "tl",
|
|
||||||
"name": "Pinoy Movies",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://pinoymovies.es"
|
|
||||||
},
|
|
||||||
"RebahinProvider": {
|
|
||||||
"language": "id",
|
|
||||||
"name": "Rebahin",
|
|
||||||
"status": 1,
|
|
||||||
"url": "http://104.237.198.194"
|
|
||||||
},
|
|
||||||
"SeriesflixProvider": {
|
|
||||||
"language": "es",
|
|
||||||
"name": "Seriesflix",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://seriesflix.video"
|
|
||||||
},
|
|
||||||
"SflixProProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Sflix.pro",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://sflix.pro"
|
|
||||||
},
|
|
||||||
"SflixProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Sflix.to",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://sflix.to"
|
|
||||||
},
|
|
||||||
"SoaptwoDayProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Soap2Day",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://secretlink.xyz"
|
|
||||||
},
|
|
||||||
"SolarmovieProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Solarmovie",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://solarmovie.pe"
|
|
||||||
},
|
|
||||||
"StreamingcommunityProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "Streamingcommunity",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://streamingcommunity.best"
|
|
||||||
},
|
|
||||||
"TantifilmProvider": {
|
|
||||||
"language": "it",
|
|
||||||
"name": "Tantifilm",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://tantifilm.autos"
|
|
||||||
},
|
|
||||||
"TenshiProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Tenshi.moe",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://tenshi.moe"
|
|
||||||
},
|
|
||||||
"TheFlixToProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "TheFlix.to",
|
|
||||||
"status": 0,
|
|
||||||
"url": "https://theflix.to"
|
|
||||||
},
|
|
||||||
"TocanimeProvider": {
|
|
||||||
"language": "vi",
|
|
||||||
"name": "Tocanime",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://tocanime.co"
|
|
||||||
},
|
|
||||||
"TrailersTwoProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Trailers.to",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://trailers.to"
|
|
||||||
},
|
|
||||||
"TwoEmbedProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "2Embed",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.2embed.to"
|
|
||||||
},
|
|
||||||
"UakinoProvider": {
|
|
||||||
"language": "uk",
|
|
||||||
"name": "Uakino",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://uakino.club"
|
|
||||||
},
|
|
||||||
"VMoveeProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "VMovee",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.vmovee.watch"
|
|
||||||
},
|
|
||||||
"VfFilmProvider": {
|
|
||||||
"language": "fr",
|
|
||||||
"name": "vf-film.me",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://vf-film.me"
|
|
||||||
},
|
|
||||||
"VfSerieProvider": {
|
|
||||||
"language": "fr",
|
|
||||||
"name": "vf-serie.org",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://vf-serie.org"
|
|
||||||
},
|
|
||||||
"VidEmbedProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "VidEmbed",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://membed.net"
|
|
||||||
},
|
|
||||||
"VidSrcProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "VidSrc",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://v2.vidsrc.me"
|
|
||||||
},
|
|
||||||
"WatchAsianProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "WatchAsian",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://watchasian.cx"
|
|
||||||
},
|
|
||||||
"WatchCartoonOnlineProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "WatchCartoonOnline",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.wcostream.com"
|
|
||||||
},
|
|
||||||
"WcoProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "WCO Stream",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://wcostream.cc"
|
|
||||||
},
|
|
||||||
"WcofunProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "WCO Fun",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://www.wcofun.com"
|
|
||||||
},
|
|
||||||
"XcineProvider": {
|
|
||||||
"language": "de",
|
|
||||||
"name": "Xcine",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://xcine.me"
|
|
||||||
},
|
|
||||||
"YomoviesProvider": {
|
|
||||||
"language": "hi",
|
|
||||||
"name": "Yomovies",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://yomovies.skin"
|
|
||||||
},
|
|
||||||
"ZoroProvider": {
|
|
||||||
"language": "en",
|
|
||||||
"name": "Zoro",
|
|
||||||
"status": 1,
|
|
||||||
"url": "https://zoro.to"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
const count = document.getElementById("count")
|
|
||||||
const mainContainer = document.getElementById("siteList")
|
|
||||||
const regionNamesInEnglish = new Intl.DisplayNames(['en'], { type: 'language' });
|
|
||||||
fetch("providers.json" + "?v=" + Date.now())
|
|
||||||
.then(r => r.json())
|
|
||||||
.then(function (data) {
|
|
||||||
count.innerHTML = Object.keys(data).length;
|
|
||||||
for (var key in data) {
|
|
||||||
if (data.hasOwnProperty(key)) {
|
|
||||||
var value = data[key];
|
|
||||||
if (value.url == "NONE") { continue; }
|
|
||||||
|
|
||||||
var _status = value.status
|
|
||||||
var _lang = value.language
|
|
||||||
|
|
||||||
var node = document.createElement("tr");
|
|
||||||
node.classList.add("row");
|
|
||||||
|
|
||||||
var _a = document.createElement("a");
|
|
||||||
_a.setAttribute('href', value.url);
|
|
||||||
_a.innerHTML = value.name
|
|
||||||
|
|
||||||
var _langEl = document.createElement("sup");
|
|
||||||
var _langName = "Unknown";
|
|
||||||
try {
|
|
||||||
_langName = regionNamesInEnglish.of(_lang);
|
|
||||||
} catch (langerr) {
|
|
||||||
_langName = "Unknown";
|
|
||||||
console.log("Error on parsing language code => " + langerr);
|
|
||||||
}
|
|
||||||
_langEl.innerHTML = " " + _langName
|
|
||||||
_a.appendChild(_langEl);
|
|
||||||
|
|
||||||
var _statusText = "Unknown";
|
|
||||||
var _buttonText = "yellow";
|
|
||||||
switch (_status) {
|
|
||||||
case 0:
|
|
||||||
_statusText = "Unavailable";
|
|
||||||
_buttonText = "red";
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
_statusText = "Available";
|
|
||||||
_buttonText = "green";
|
|
||||||
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
_statusText = "Slow";
|
|
||||||
_buttonText = "yellow";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
_statusText = "Beta";
|
|
||||||
_buttonText = "blue";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_a.classList.add(_buttonText + "Button");
|
|
||||||
_a.classList.add("indicator");
|
|
||||||
_a.classList.add("button");
|
|
||||||
node.appendChild(_a);
|
|
||||||
mainContainer.appendChild(node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,49 +0,0 @@
|
||||||
body {
|
|
||||||
font-family: "Roboto", sans-serif;
|
|
||||||
background-color: #FFF;
|
|
||||||
}
|
|
||||||
.whiteText {
|
|
||||||
color : #FFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
color : #000;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row {
|
|
||||||
padding: 0px 10px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
table {
|
|
||||||
border-spacing: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yellowButton::before {
|
|
||||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-6.62744-5.3726-12-12-12-6.62744 0-12 5.37256-12 12 0 6.6274 5.37256 12 12 12zm0-17.5c.4141 0 .75.33582.75.75v4.5c0 .4142-.3359.75-.75.75s-.75-.3358-.75-.75v-4.5c0-.41418.3359-.75.75-.75zm.8242 9.5658c.0635-.0919.1118-.195.1416-.3054.0132-.0482.0225-.0979.0283-.1487.0039-.0366.0059-.074.0059-.1117 0-.5522-.4478-1-1-1s-1 .4478-1 1 .4478 1 1 1c.3423 0 .644-.172.8242-.4342z' fill='%23dbab09'/%3E%3C/svg%3e");
|
|
||||||
}
|
|
||||||
|
|
||||||
.blueButton::before {
|
|
||||||
filter: sepia(100%) saturate(300%) brightness(70%) hue-rotate(180deg);
|
|
||||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-6.62744-5.3726-12-12-12-6.62744 0-12 5.37256-12 12 0 6.6274 5.37256 12 12 12zm0-17.5c.4141 0 .75.33582.75.75v4.5c0 .4142-.3359.75-.75.75s-.75-.3358-.75-.75v-4.5c0-.41418.3359-.75.75-.75zm.8242 9.5658c.0635-.0919.1118-.195.1416-.3054.0132-.0482.0225-.0979.0283-.1487.0039-.0366.0059-.074.0059-.1117 0-.5522-.4478-1-1-1s-1 .4478-1 1 .4478 1 1 1c.3423 0 .644-.172.8242-.4342z' fill='%23dbab09'/%3E%3C/svg%3e");
|
|
||||||
}
|
|
||||||
|
|
||||||
.redButton::before {
|
|
||||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m12 24c6.6274 0 12-5.3726 12-12 0-6.62744-5.3726-12-12-12-6.62744 0-12 5.37256-12 12 0 6.6274 5.37256 12 12 12zm0-17.5c.4141 0 .75.33582.75.75v4.5c0 .4142-.3359.75-.75.75s-.75-.3358-.75-.75v-4.5c0-.41418.3359-.75.75-.75zm.8242 9.5658c.0635-.0919.1118-.195.1416-.3054.0132-.0482.0225-.0979.0283-.1487.0039-.0366.0059-.074.0059-.1117 0-.5522-.4478-1-1-1s-1 .4478-1 1 .4478 1 1 1c.3423 0 .644-.172.8242-.4342z' fill='%23d73a49'/%3E%3C/svg%3e");
|
|
||||||
}
|
|
||||||
|
|
||||||
.greenButton::before{
|
|
||||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='15' height='15' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m1 12c0-6.07513 4.92487-11 11-11 6.0751 0 11 4.92487 11 11 0 6.0751-4.9249 11-11 11-6.07513 0-11-4.9249-11-11zm16.2803-2.71967c.2929-.29289.2929-.76777 0-1.06066s-.7677-.29289-1.0606 0l-5.9697 5.96963-2.46967-2.4696c-.29289-.2929-.76777-.2929-1.06066 0s-.29289.7677 0 1.0606l3 3c.29293.2929.76773.2929 1.06063 0z' fill='%2328a745'/%3E%3C/svg%3e");ontent: '';
|
|
||||||
}
|
|
||||||
|
|
||||||
.indicator::before {
|
|
||||||
display: inline-block;
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
content: "";
|
|
||||||
vertical-align: text-bottom;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center center;
|
|
||||||
margin-right:10px;
|
|
||||||
}
|
|
Loading…
Reference in a new issue