SC fix, AW Fix, CB01 Fix
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
Use an official Python runtime as a parent image
|
##Use an official Python runtime as a parent image
|
||||||
FROM python:3.10-slim-buster
|
FROM python:3.10-slim-buster
|
||||||
|
|
||||||
# Set the working directory in the container to /app
|
# Set the working directory in the container to /app
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ Movies, Series, Anime and Live TV are supported.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
To host this project with Hugging Face, go to the [linked](https://huggingface.co/spaces/MammaMia-Urlo/CloneThisSpace/) page and follow these steps:
|
To host this project with Hugging Face, go to the [linked](https://huggingface.co/spaces/aiMAmmaM/DuplicateTheSpace) page and follow these steps:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ To host this project with Hugging Face, go to the [linked](https://huggingface.c
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
2. Go to [linked](https://huggingface.co/spaces/MammaMia-Urlo/CloneThisSpace) page and click on three dots on the top (right) part of the screen
|
2. Go to [linked](https://huggingface.co/spaces/aiMAmmaM/DuplicateTheSpace) page and click on three dots on the top (right) part of the screen
|
||||||
|
|
||||||
3. Click Duplicate this Space
|
3. Click Duplicate this Space
|
||||||
|
|
||||||
|
|||||||
+34
-8
@@ -5,6 +5,31 @@ import json
|
|||||||
from Src.Utilities.info import get_info_kitsu
|
from Src.Utilities.info import get_info_kitsu
|
||||||
import Src.Utilities.config as config
|
import Src.Utilities.config as config
|
||||||
import re
|
import re
|
||||||
|
from fake_headers import Headers
|
||||||
|
random_headers = Headers()
|
||||||
|
proxies = {}
|
||||||
|
from Src.Utilities.loadenv import load_env
|
||||||
|
env_vars = load_env()
|
||||||
|
AW_PROXY = config.AW_PROXY
|
||||||
|
AW_ForwardProxy = config.AW_ForwardProxy
|
||||||
|
if AW_PROXY == "1":
|
||||||
|
import random
|
||||||
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
|
proxy = random.choice(proxy_list)
|
||||||
|
if proxy == "":
|
||||||
|
proxies = {}
|
||||||
|
else:
|
||||||
|
proxies = {
|
||||||
|
"http": proxy,
|
||||||
|
"https": proxy
|
||||||
|
}
|
||||||
|
if AW_ForwardProxy == "1":
|
||||||
|
ForwardProxy = env_vars.get('ForwardProxy')
|
||||||
|
else:
|
||||||
|
ForwardProxy = ""
|
||||||
|
|
||||||
|
|
||||||
AW_DOMAIN = config.AW_DOMAIN
|
AW_DOMAIN = config.AW_DOMAIN
|
||||||
months = {
|
months = {
|
||||||
"Gennaio": "January", "Febbraio": "February", "Marzo": "March",
|
"Gennaio": "January", "Febbraio": "February", "Marzo": "March",
|
||||||
@@ -21,14 +46,14 @@ showname_replace = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async def get_mp4(anime_url,ismovie,episode,client):
|
async def get_mp4(anime_url,ismovie,episode,client):
|
||||||
response = await client.get(anime_url,allow_redirects=True, impersonate = "chrome120")
|
response = await client.get(ForwardProxy + anime_url,allow_redirects=True, impersonate = "chrome124",proxies=proxies)
|
||||||
soup = BeautifulSoup(response.text,'lxml')
|
soup = BeautifulSoup(response.text,'lxml')
|
||||||
if ismovie == 0:
|
if ismovie == 0:
|
||||||
episode_page = soup.find('a', {'data-episode-num':episode })
|
episode_page = soup.find('a', {'data-episode-num':episode })
|
||||||
if episode_page is None:
|
if episode_page is None:
|
||||||
return None
|
return None
|
||||||
episode_page = f'https://animeworld.{AW_DOMAIN}{episode_page["href"]}'
|
episode_page = f'https://animeworld.{AW_DOMAIN}{episode_page["href"]}'
|
||||||
response = await client.get(episode_page,allow_redirects=True, impersonate = "chrome120")
|
response = await client.get(ForwardProxy + episode_page,allow_redirects=True, impersonate = "chrome124", proxies=proxies)
|
||||||
soup = BeautifulSoup(response.text,'lxml')
|
soup = BeautifulSoup(response.text,'lxml')
|
||||||
|
|
||||||
a_tag = soup.find('a', {'id': 'alternativeDownloadLink', 'class': 'm-1 btn btn-sm btn-primary'})
|
a_tag = soup.find('a', {'id': 'alternativeDownloadLink', 'class': 'm-1 btn btn-sm btn-primary'})
|
||||||
@@ -93,7 +118,7 @@ async def old_search(showname,date,ismovie,episode,client):
|
|||||||
params = {
|
params = {
|
||||||
'keyword': showname,
|
'keyword': showname,
|
||||||
}
|
}
|
||||||
response = await client.post(f'https://www.animeworld.{AW_DOMAIN}/api/search/v2', params=params, cookies=cookies, headers=headers, allow_redirects=True, impersonate = "chrome120")
|
response = await client.post(ForwardProxy + f'https://www.animeworld.{AW_DOMAIN}/api/search/v2', params=params, cookies=cookies, headers=headers, allow_redirects=True, impersonate = "chrome124", proxies = proxies)
|
||||||
data = json.loads(response.text)
|
data = json.loads(response.text)
|
||||||
for anime in data["animes"]:
|
for anime in data["animes"]:
|
||||||
release_date = anime["release"]
|
release_date = anime["release"]
|
||||||
@@ -112,13 +137,15 @@ async def old_search(showname,date,ismovie,episode,client):
|
|||||||
|
|
||||||
async def search(showname,date,ismovie,episode,client):
|
async def search(showname,date,ismovie,episode,client):
|
||||||
search_year = date[:4]
|
search_year = date[:4]
|
||||||
response = await client.get(f'https://www.animeworld.so/filter?year={search_year}&sort=2&keyword={showname}',allow_redirects=True, impersonate = "chrome120")
|
headers = random_headers.generate()
|
||||||
|
|
||||||
|
response = await client.get(ForwardProxy + f'https://www.animeworld.so/filter?year={search_year}&sort=2&keyword={showname}',allow_redirects=True, impersonate = "chrome124", headers = headers, proxies = proxies)
|
||||||
soup = BeautifulSoup(response.text,'lxml')
|
soup = BeautifulSoup(response.text,'lxml')
|
||||||
anime_list = soup.find_all('a', class_=['poster', 'tooltipstered'])
|
anime_list = soup.find_all('a', class_=['poster', 'tooltipstered'])
|
||||||
final_urls = []
|
final_urls = []
|
||||||
for anime in anime_list:
|
for anime in anime_list:
|
||||||
anime_info_url = f'https://www.animeworld.{AW_DOMAIN}/{anime["data-tip"]}'
|
anime_info_url = f'https://www.animeworld.{AW_DOMAIN}/{anime["data-tip"]}'
|
||||||
response = await client.get(anime_info_url,allow_redirects=True, impersonate = "chrome120")
|
response = await client.get(ForwardProxy + anime_info_url,allow_redirects=True, impersonate = "chrome124", proxies = proxies)
|
||||||
pattern = r'<label>Data di uscita:</label>\s*<span>\s*(.*?)\s*</span>'
|
pattern = r'<label>Data di uscita:</label>\s*<span>\s*(.*?)\s*</span>'
|
||||||
match = re.search(pattern, response.text, re.S)
|
match = re.search(pattern, response.text, re.S)
|
||||||
release_date = match.group(1).strip()
|
release_date = match.group(1).strip()
|
||||||
@@ -154,7 +181,7 @@ async def animeworld(id,client):
|
|||||||
except:
|
except:
|
||||||
print("Animeworld failed")
|
print("Animeworld failed")
|
||||||
return None
|
return None
|
||||||
'''
|
|
||||||
async def test_animeworld():
|
async def test_animeworld():
|
||||||
async with AsyncSession() as client:
|
async with AsyncSession() as client:
|
||||||
# Replace with actual id, for example 'anime_id:episode' format
|
# Replace with actual id, for example 'anime_id:episode' format
|
||||||
@@ -165,5 +192,4 @@ async def test_animeworld():
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
from curl_cffi.requests import AsyncSession
|
from curl_cffi.requests import AsyncSession
|
||||||
import asyncio
|
import asyncio
|
||||||
asyncio.run(test_animeworld())
|
asyncio.run(test_animeworld())
|
||||||
'''
|
|
||||||
+60
-45
@@ -7,9 +7,51 @@ import Src.Utilities.config as config
|
|||||||
from Src.Utilities.loadenv import load_env
|
from Src.Utilities.loadenv import load_env
|
||||||
CB_DOMAIN = config.CB_DOMAIN
|
CB_DOMAIN = config.CB_DOMAIN
|
||||||
CB_PROXY = config.CB_PROXY
|
CB_PROXY = config.CB_PROXY
|
||||||
if CB_PROXY == "1":
|
MX_PROXY = config.MX_PROXY
|
||||||
env_vars = load_env()
|
proxies = {}
|
||||||
|
proxies2 = {}
|
||||||
|
env_vars = load_env()
|
||||||
|
import random
|
||||||
|
import json
|
||||||
|
if MX_PROXY == "1":
|
||||||
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
|
proxy = random.choice(proxy_list)
|
||||||
|
if proxy == "":
|
||||||
|
proxies2 = {}
|
||||||
|
else:
|
||||||
|
proxies2 = {
|
||||||
|
"http": proxy,
|
||||||
|
"https": proxy
|
||||||
|
}
|
||||||
|
if CB_PROXY == "1":
|
||||||
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
|
proxy = random.choice(proxy_list)
|
||||||
|
if proxy == "":
|
||||||
|
proxies = {}
|
||||||
|
else:
|
||||||
|
proxies = {
|
||||||
|
"http": proxy,
|
||||||
|
"https": proxy
|
||||||
|
}
|
||||||
|
if MX_PROXY == "1":
|
||||||
|
proxies2 = proxy
|
||||||
|
|
||||||
|
CB_ForwardProxy = config.CB_ForwardProxy
|
||||||
|
MX_ForwardProxy = config.MX_ForwardProxy
|
||||||
|
if CB_ForwardProxy == "1":
|
||||||
|
ForwardProxy = env_vars.get('ForwardProxy')
|
||||||
|
ForwardProxy2 = ForwardProxy
|
||||||
|
if MX_ForwardProxy == "1":
|
||||||
|
ForwardProxy2 = ForwardProxy
|
||||||
|
elif MX_ForwardProxy == "1":
|
||||||
|
ForwardProxy2 = env_vars.get('ForwardProxy')
|
||||||
|
else:
|
||||||
|
ForwardProxy2 = ""
|
||||||
|
ForwardProxy = ""
|
||||||
|
|
||||||
|
|
||||||
fake_headers = Headers()
|
fake_headers = Headers()
|
||||||
|
|
||||||
async def get_stayonline(link,client):
|
async def get_stayonline(link,client):
|
||||||
@@ -19,7 +61,7 @@ async def get_stayonline(link,client):
|
|||||||
'x-requested-with': 'XMLHttpRequest',
|
'x-requested-with': 'XMLHttpRequest',
|
||||||
}
|
}
|
||||||
data = {'id': link.split("/")[-2], 'ref': ''}
|
data = {'id': link.split("/")[-2], 'ref': ''}
|
||||||
response = await client.post('https://stayonline.pro/ajax/linkEmbedView.php', headers=headers, data=data)
|
response = await client.post(ForwardProxy2 + 'https://stayonline.pro/ajax/linkEmbedView.php', headers=headers, data=data, proxies2 = proxies2)
|
||||||
real_url = response.json()['data']['value']
|
real_url = response.json()['data']['value']
|
||||||
return real_url
|
return real_url
|
||||||
|
|
||||||
@@ -27,23 +69,8 @@ async def get_stayonline(link,client):
|
|||||||
async def get_uprot(link,client):
|
async def get_uprot(link,client):
|
||||||
if "msf" in link:
|
if "msf" in link:
|
||||||
link = link.replace("msf","mse")
|
link = link.replace("msf","mse")
|
||||||
if CB_PROXY == "1":
|
|
||||||
import json
|
|
||||||
import random
|
|
||||||
proxy_list = json.loads(PROXY_CREDENTIALS)
|
|
||||||
proxy = random.choice(proxy_list)
|
|
||||||
if proxy == " ":
|
|
||||||
proxies = {
|
|
||||||
"http": proxy,
|
|
||||||
"https": proxy
|
|
||||||
}
|
|
||||||
else:
|
|
||||||
proxies = {}
|
|
||||||
else:
|
|
||||||
proxies = {}
|
|
||||||
|
|
||||||
headers = fake_headers.generate()
|
headers = fake_headers.generate()
|
||||||
response = await client.get(link, headers=headers, allow_redirects=True, timeout=10, proxies=proxies, impersonate = "chrome124")
|
response = await client.get(ForwardProxy2 + link, headers=headers, allow_redirects=True, timeout=10, proxies=proxies2, impersonate = "chrome124")
|
||||||
soup = BeautifulSoup(response.text, "lxml")
|
soup = BeautifulSoup(response.text, "lxml")
|
||||||
maxstream_url = soup.find("a")
|
maxstream_url = soup.find("a")
|
||||||
maxstream_url = maxstream_url.get("href")
|
maxstream_url = maxstream_url.get("href")
|
||||||
@@ -75,21 +102,9 @@ async def get_true_link_mixdrop(real_link,client,MFP):
|
|||||||
print(e)
|
print(e)
|
||||||
return None
|
return None
|
||||||
async def get_true_link_maxstream(maxstream_url,client):
|
async def get_true_link_maxstream(maxstream_url,client):
|
||||||
headers = fake_headers.generate()
|
headers = fake_headers.generate()
|
||||||
if CB_PROXY == "1":
|
|
||||||
import json
|
|
||||||
import random
|
|
||||||
proxy_list = json.loads(PROXY_CREDENTIALS)
|
|
||||||
proxy = random.choice(proxy_list)
|
|
||||||
if proxy == " ":
|
|
||||||
proxies = {
|
|
||||||
"http": proxy,
|
|
||||||
"https": proxy
|
|
||||||
}
|
|
||||||
else:
|
|
||||||
proxies = {}
|
|
||||||
# Send a GET request to the Maxstream URL
|
# Send a GET request to the Maxstream URL
|
||||||
response = await client.get(maxstream_url, headers=headers, allow_redirects=True, timeout=10,proxies = proxies, impersonate = "chrome124")
|
response = await client.get(ForwardProxy2 + maxstream_url, headers=headers, allow_redirects=True, timeout=10,proxies = proxies2, impersonate = "chrome124")
|
||||||
[s1, s2] = re.search(r"\}\('(.+)',.+,'(.+)'\.split", response.text).group(1, 2)
|
[s1, s2] = re.search(r"\}\('(.+)',.+,'(.+)'\.split", response.text).group(1, 2)
|
||||||
terms = s2.split("|")
|
terms = s2.split("|")
|
||||||
urlset_index = terms.index('urlset')
|
urlset_index = terms.index('urlset')
|
||||||
@@ -124,11 +139,11 @@ async def get_true_link_maxstream(maxstream_url,client):
|
|||||||
|
|
||||||
async def search_movie(showname,date,client):
|
async def search_movie(showname,date,client):
|
||||||
try:
|
try:
|
||||||
showname = showname.replace(" ","+")
|
showname = showname.replace(" ","+").replace("ò","o").replace("è","e").replace("à","a").replace("ù","u").replace("ì","i")
|
||||||
headers = fake_headers.generate()
|
headers = fake_headers.generate()
|
||||||
headers['Referer'] = f'https://cb01new.{CB_DOMAIN}/'
|
headers['Referer'] = f'https://cb01new.{CB_DOMAIN}/'
|
||||||
query = f'https://cb01new.{CB_DOMAIN}/?s={showname}'
|
query = f'https://cb01new.{CB_DOMAIN}/?s={showname}'
|
||||||
response = await client.get(query,headers=headers, impersonate = "chrome124")
|
response = await client.get(ForwardProxy + query,headers=headers, impersonate = "chrome124", proxies = proxies)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
print(f"CB01 Failed to fetch search results: {response.status_code}")
|
print(f"CB01 Failed to fetch search results: {response.status_code}")
|
||||||
soup = BeautifulSoup(response.text, 'lxml',parse_only=SoupStrainer('div', class_='card-content'))
|
soup = BeautifulSoup(response.text, 'lxml',parse_only=SoupStrainer('div', class_='card-content'))
|
||||||
@@ -157,7 +172,7 @@ async def search_series(showname,date,client):
|
|||||||
headers = fake_headers.generate()
|
headers = fake_headers.generate()
|
||||||
headers['Referer'] = f'https://cb01new.{CB_DOMAIN}/serietv/'
|
headers['Referer'] = f'https://cb01new.{CB_DOMAIN}/serietv/'
|
||||||
query = f'https://cb01new.{CB_DOMAIN}/serietv/?s={showname}'
|
query = f'https://cb01new.{CB_DOMAIN}/serietv/?s={showname}'
|
||||||
response = await client.get(query,headers=headers,impersonate = "chrome124")
|
response = await client.get(ForwardProxy + query,headers=headers,impersonate = "chrome124", proxies = proxies)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
print(f"CB01 Failed to fetch search results: {response.status_code}")
|
print(f"CB01 Failed to fetch search results: {response.status_code}")
|
||||||
soup = BeautifulSoup(response.text, 'lxml',parse_only=SoupStrainer('div', class_='card-content'))
|
soup = BeautifulSoup(response.text, 'lxml',parse_only=SoupStrainer('div', class_='card-content'))
|
||||||
@@ -183,7 +198,7 @@ async def search_series(showname,date,client):
|
|||||||
|
|
||||||
async def movie_redirect_url(link,client,MFP):
|
async def movie_redirect_url(link,client,MFP):
|
||||||
headers = fake_headers.generate()
|
headers = fake_headers.generate()
|
||||||
response = await client.get(link, headers=headers, allow_redirects=True, timeout=10, impersonate = "chrome124")
|
response = await client.get(ForwardProxy + link, headers=headers, allow_redirects=True, timeout=10, impersonate = "chrome124", proxies = proxies)
|
||||||
# Extract the redirect URL from the HTML
|
# Extract the redirect URL from the HTML
|
||||||
soup = BeautifulSoup(response.text, "lxml",parse_only=SoupStrainer('div'))
|
soup = BeautifulSoup(response.text, "lxml",parse_only=SoupStrainer('div'))
|
||||||
redirect_url = soup.find("div", id="iframen2").get("data-src")
|
redirect_url = soup.find("div", id="iframen2").get("data-src")
|
||||||
@@ -192,11 +207,11 @@ async def movie_redirect_url(link,client,MFP):
|
|||||||
mixdrop_real_link = await get_stayonline(redirect_url,client)
|
mixdrop_real_link = await get_stayonline(redirect_url,client)
|
||||||
final_url = await get_true_link_mixdrop(mixdrop_real_link,client,MFP)
|
final_url = await get_true_link_mixdrop(mixdrop_real_link,client,MFP)
|
||||||
return final_url
|
return final_url
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
redirect_url = soup.find("div", id="iframen1").get("data-src")
|
redirect_url = soup.find("div", id="iframen1").get("data-src")
|
||||||
if "stayonline" in maxstream_link:
|
if "stayonline" in redirect_url:
|
||||||
maxstream_link =await get_stayonline(maxstream_link,client)
|
redirect_url =await get_stayonline(redirect_url,client)
|
||||||
maxstream_real_link = await get_uprot(maxstream_link,client)
|
maxstream_real_link = await get_uprot(redirect_url,client)
|
||||||
final_url = await get_true_link_maxstream(maxstream_real_link,client)
|
final_url = await get_true_link_maxstream(maxstream_real_link,client)
|
||||||
return(final_url)
|
return(final_url)
|
||||||
|
|
||||||
@@ -205,7 +220,7 @@ async def series_redirect_url(link,season,episode,client,MFP):
|
|||||||
if len(episode) == 1:
|
if len(episode) == 1:
|
||||||
episode = f'0{episode}'
|
episode = f'0{episode}'
|
||||||
headers = fake_headers.generate()
|
headers = fake_headers.generate()
|
||||||
response = await client.get(link, headers=headers, allow_redirects=True, timeout=10,impersonate = "chrome124")
|
response = await client.get(ForwardProxy + link, headers=headers, allow_redirects=True, timeout=10,impersonate = "chrome124", proxies = proxies)
|
||||||
soup = BeautifulSoup(response.text, "lxml")
|
soup = BeautifulSoup(response.text, "lxml")
|
||||||
seasons_text = soup.find_all('div', class_='sp-head')
|
seasons_text = soup.find_all('div', class_='sp-head')
|
||||||
for season_text in seasons_text:
|
for season_text in seasons_text:
|
||||||
@@ -218,7 +233,7 @@ async def series_redirect_url(link,season,episode,client,MFP):
|
|||||||
sp_body = season_text.find_next('div', class_='sp-body')
|
sp_body = season_text.find_next('div', class_='sp-body')
|
||||||
link_tag = sp_body.find('a')
|
link_tag = sp_body.find('a')
|
||||||
uprot_long = link_tag.get('href')
|
uprot_long = link_tag.get('href')
|
||||||
response = await client.get(uprot_long, headers=headers, allow_redirects=True, timeout=10, impersonate = "chrome124")
|
response = await client.get(ForwardProxy + uprot_long, headers=headers, allow_redirects=True, timeout=10, impersonate = "chrome124", proxies = proxies)
|
||||||
season = "01"
|
season = "01"
|
||||||
episode = "04"
|
episode = "04"
|
||||||
pattern1 = rf"(?i)\S*?\.{season}x{episode}\S*?\.mkv.*?href=['\"](.*?)['\"]"
|
pattern1 = rf"(?i)\S*?\.{season}x{episode}\S*?\.mkv.*?href=['\"](.*?)['\"]"
|
||||||
@@ -301,8 +316,8 @@ async def test_animeworld():
|
|||||||
from curl_cffi.requests import AsyncSession
|
from curl_cffi.requests import AsyncSession
|
||||||
async with AsyncSession() as client:
|
async with AsyncSession() as client:
|
||||||
# Replace with actual id, for example 'anime_id:episode' format
|
# Replace with actual id, for example 'anime_id:episode' format
|
||||||
test_id = "tt14948432" # This is an example ID format
|
test_id = "tt0045247" # This is an example ID format
|
||||||
MFP = "1"
|
MFP = "0"
|
||||||
results = await cb01(test_id, client,MFP)
|
results = await cb01(test_id, client,MFP)
|
||||||
print(results)
|
print(results)
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,24 @@ from urllib.parse import urlparse, parse_qs
|
|||||||
from fake_headers import Headers
|
from fake_headers import Headers
|
||||||
from Src.Utilities.loadenv import load_env
|
from Src.Utilities.loadenv import load_env
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
User_Agent= "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 OPR/111.0.0.0"
|
User_Agent= "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0"
|
||||||
|
|
||||||
env_vars = load_env()
|
env_vars = load_env()
|
||||||
SC_PROXY = config.SC_PROXY
|
SC_PROXY = config.SC_PROXY
|
||||||
|
VX_PROXY = config.VX_PROXY
|
||||||
proxies = {}
|
proxies = {}
|
||||||
|
proxies2 = {}
|
||||||
|
if VX_PROXY == "1":
|
||||||
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
|
proxy = random.choice(proxy_list)
|
||||||
|
if proxy == "":
|
||||||
|
proxies2 = {}
|
||||||
|
else:
|
||||||
|
proxies2 = {
|
||||||
|
"http": proxy,
|
||||||
|
"https": proxy
|
||||||
|
}
|
||||||
if SC_PROXY == "1":
|
if SC_PROXY == "1":
|
||||||
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
proxy_list = json.loads(PROXY_CREDENTIALS)
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
@@ -25,11 +38,20 @@ if SC_PROXY == "1":
|
|||||||
"http": proxy,
|
"http": proxy,
|
||||||
"https": proxy
|
"https": proxy
|
||||||
}
|
}
|
||||||
|
if VX_PROXY == "1":
|
||||||
|
proxies2 = proxy
|
||||||
|
|
||||||
SC_ForwardProxy = config.SC_ForwardProxy
|
SC_ForwardProxy = config.SC_ForwardProxy
|
||||||
|
VX_ForwardProxy = config.VX_ForwardProxy
|
||||||
if SC_ForwardProxy == "1":
|
if SC_ForwardProxy == "1":
|
||||||
ForwardProxy = env_vars.get('ForwardProxy')
|
ForwardProxy = env_vars.get('ForwardProxy')
|
||||||
else:
|
else:
|
||||||
ForwardProxy = ""
|
ForwardProxy = ""
|
||||||
|
|
||||||
|
if VX_ForwardProxy == "1":
|
||||||
|
ForwardProxy = env_vars.get('ForwardProxy')
|
||||||
|
else:
|
||||||
|
ForwardProxy = ""
|
||||||
#Get domain
|
#Get domain
|
||||||
SC_DOMAIN = config.SC_DOMAIN
|
SC_DOMAIN = config.SC_DOMAIN
|
||||||
Public_Instance = config.Public_Instance
|
Public_Instance = config.Public_Instance
|
||||||
@@ -126,7 +148,7 @@ async def get_film(tid,version,client):
|
|||||||
random_headers['User-Agent'] = User_Agent
|
random_headers['User-Agent'] = User_Agent
|
||||||
random_headers['user-agent'] = User_Agent
|
random_headers['user-agent'] = User_Agent
|
||||||
#Get real token and expires by looking at the page in the iframe, vixcloud/embed
|
#Get real token and expires by looking at the page in the iframe, vixcloud/embed
|
||||||
resp = await client.get(ForwardProxy + iframe, headers = random_headers, allow_redirects=True,impersonate= "chrome124", proxies = proxies)
|
resp = await client.get(ForwardProxy + iframe, headers = random_headers, allow_redirects=True,impersonate= "chrome124", proxies = proxies2)
|
||||||
soup= BeautifulSoup(resp.text, "lxml")
|
soup= BeautifulSoup(resp.text, "lxml")
|
||||||
script = soup.find("body").find("script").text
|
script = soup.find("body").find("script").text
|
||||||
token = re.search(r"'token':\s*'(\w+)'", script).group(1)
|
token = re.search(r"'token':\s*'(\w+)'", script).group(1)
|
||||||
@@ -204,7 +226,7 @@ async def get_episode_link(episode_id,tid,version,client):
|
|||||||
parsed_url = urlparse(iframe)
|
parsed_url = urlparse(iframe)
|
||||||
query_params = parse_qs(parsed_url.query)
|
query_params = parse_qs(parsed_url.query)
|
||||||
#Get real token and expires by looking at the page in the iframe, vixcloud/embed
|
#Get real token and expires by looking at the page in the iframe, vixcloud/embed
|
||||||
resp = await client.get(ForwardProxy + iframe, headers = random_headers, allow_redirects=True, impersonate = "chrome124", proxies = proxies)
|
resp = await client.get(ForwardProxy + iframe, headers = random_headers, allow_redirects=True, impersonate = "chrome124", proxies = proxies2)
|
||||||
soup= BeautifulSoup(resp.text, "lxml")
|
soup= BeautifulSoup(resp.text, "lxml")
|
||||||
script = soup.find("body").find("script").text
|
script = soup.find("body").find("script").text
|
||||||
token = re.search(r"'token':\s*'(\w+)'", script).group(1)
|
token = re.search(r"'token':\s*'(\w+)'", script).group(1)
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ async def get_stream_link(id,site,MFP_CREDENTIALS,client):
|
|||||||
print("No .m3u8 URL found.")
|
print("No .m3u8 URL found.")
|
||||||
stream_url = f"https://{domain}/lb/" + webru_dlhd[id] + "/index.m3u8"
|
stream_url = f"https://{domain}/lb/" + webru_dlhd[id] + "/index.m3u8"
|
||||||
elif site == "vary":
|
elif site == "vary":
|
||||||
response = await client.get(f"https://www.tanti.{TF_DOMAIN}/tv-channel/sky-cinema-action-2", impersonate = "chrome124", headers = headers)
|
response = await client.get(f"https://www.tanti.{TF_DOMAIN}/tv-channel/sky-cinema-action-2", impersonate = "chrome124", headers = headers, timeout = 10)
|
||||||
soup = BeautifulSoup(response.text, 'lxml', parse_only=SoupStrainer('iframe'))
|
soup = BeautifulSoup(response.text, 'lxml', parse_only=SoupStrainer('iframe'))
|
||||||
iframe = soup.find('iframe', class_='embed-responsive-item')
|
iframe = soup.find('iframe', class_='embed-responsive-item')
|
||||||
real_link = iframe.get('src')
|
real_link = iframe.get('src')
|
||||||
|
|||||||
@@ -37,11 +37,18 @@ TF_ForwardProxy = SITE['Tantifilm']["TF_ForwardProxy"]
|
|||||||
SC_ForwardProxy = SITE['StreamingCommunity']["SC_ForwardProxy"]
|
SC_ForwardProxy = SITE['StreamingCommunity']["SC_ForwardProxy"]
|
||||||
GS_ForwardProxy = SITE['Guardaserie']["GS_ForwardProxy"]
|
GS_ForwardProxy = SITE['Guardaserie']["GS_ForwardProxy"]
|
||||||
GH_ForwardProxy = SITE['GuardaHD']["GH_ForwardProxy"]
|
GH_ForwardProxy = SITE['GuardaHD']["GH_ForwardProxy"]
|
||||||
|
VX_ForwardProxy = SITE['StreamingCommunity']["VX_ForwardProxy"]
|
||||||
|
AW_ForwardProxy = SITE['AnimeWorld']["AW_ForwardProxy"]
|
||||||
|
MX_ForwardProxy = SITE['CB01']["MX_ForwardProxy"]
|
||||||
|
CB_ForwardProxy = SITE['CB01']["CB_ForwardProxy"]
|
||||||
GS_PROXY = SITE['Guardaserie']["GS_PROXY"]
|
GS_PROXY = SITE['Guardaserie']["GS_PROXY"]
|
||||||
GH_PROXY = SITE['GuardaHD']["GH_PROXY"]
|
GH_PROXY = SITE['GuardaHD']["GH_PROXY"]
|
||||||
TF_PROXY = SITE['Tantifilm']["TF_PROXY"]
|
TF_PROXY = SITE['Tantifilm']["TF_PROXY"]
|
||||||
CB_PROXY = SITE['CB01']["CB_PROXY"]
|
CB_PROXY = SITE['CB01']["CB_PROXY"]
|
||||||
SC_PROXY = SITE['StreamingCommunity']["SC_PROXY"]
|
SC_PROXY = SITE['StreamingCommunity']["SC_PROXY"]
|
||||||
|
VX_PROXY = SITE['StreamingCommunity']["VX_PROXY"]
|
||||||
|
AW_PROXY = SITE['AnimeWorld']["AW_PROXY"]
|
||||||
|
MX_PROXY = SITE['CB01']["MX_PROXY"]
|
||||||
ips4_device_key = SITE['DDLStream']['cookies']["ips4_device_key"]
|
ips4_device_key = SITE['DDLStream']['cookies']["ips4_device_key"]
|
||||||
ips4_IPSSessionFront = SITE['DDLStream']['cookies']["ips4_IPSSessionFront"]
|
ips4_IPSSessionFront = SITE['DDLStream']['cookies']["ips4_IPSSessionFront"]
|
||||||
ips4_member_id = SITE['DDLStream']['cookies']["ips4_member_id"]
|
ips4_member_id = SITE['DDLStream']['cookies']["ips4_member_id"]
|
||||||
|
|||||||
+55
-3
@@ -1,13 +1,58 @@
|
|||||||
from urllib.parse import urlparse, parse_qs,unquote,quote
|
from urllib.parse import urlparse, parse_qs,unquote,quote
|
||||||
from fastapi import APIRouter, HTTPException, Response, Request
|
from fastapi import APIRouter, HTTPException, Response, Request
|
||||||
from curl_cffi.requests import AsyncSession
|
from curl_cffi.requests import AsyncSession
|
||||||
|
import Src.Utilities.config as config
|
||||||
|
from Src.Utilities.loadenv import load_env
|
||||||
|
env_vars = load_env()
|
||||||
|
SC_PROXY = config.SC_PROXY
|
||||||
|
VX_PROXY = config.VX_PROXY
|
||||||
|
import json
|
||||||
|
import random
|
||||||
|
proxies = {}
|
||||||
|
proxies2 = {}
|
||||||
|
if VX_PROXY == "1":
|
||||||
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
|
proxy = random.choice(proxy_list)
|
||||||
|
if proxy == "":
|
||||||
|
proxies2 = {}
|
||||||
|
else:
|
||||||
|
proxies2 = {
|
||||||
|
"http": proxy,
|
||||||
|
"https": proxy
|
||||||
|
}
|
||||||
|
if SC_PROXY == "1":
|
||||||
|
PROXY_CREDENTIALS = env_vars.get('PROXY_CREDENTIALS')
|
||||||
|
proxy_list = json.loads(PROXY_CREDENTIALS)
|
||||||
|
proxy = random.choice(proxy_list)
|
||||||
|
if proxy == "":
|
||||||
|
proxies = {}
|
||||||
|
else:
|
||||||
|
proxies = {
|
||||||
|
"http": proxy,
|
||||||
|
"https": proxy
|
||||||
|
}
|
||||||
|
if VX_PROXY == "1":
|
||||||
|
proxies2 = proxy
|
||||||
|
SC_ForwardProxy = config.SC_ForwardProxy
|
||||||
|
VX_ForwardProxy = config.VX_ForwardProxy
|
||||||
|
if SC_ForwardProxy == "1":
|
||||||
|
ForwardProxy = env_vars.get('ForwardProxy')
|
||||||
|
else:
|
||||||
|
ForwardProxy = ""
|
||||||
|
|
||||||
|
if VX_ForwardProxy == "1":
|
||||||
|
ForwardProxy = env_vars.get('ForwardProxy')
|
||||||
|
else:
|
||||||
|
ForwardProxy = ""
|
||||||
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
User_Agent= "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 OPR/111.0.0.0"
|
User_Agent= "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0"
|
||||||
async def fetch_m3u8(url):
|
async def fetch_m3u8(url):
|
||||||
"""Fetch the M3U8 file from the URL and store it in memory."""
|
"""Fetch the M3U8 file from the URL and store it in memory."""
|
||||||
async with AsyncSession() as client:
|
async with AsyncSession() as client:
|
||||||
response = await client.get(url,headers = {"User-Agent": User_Agent, "user-agent": User_Agent})
|
response = await client.get(ForwardProxy + url,headers = {"User-Agent": User_Agent, "user-agent": User_Agent}, proxies = proxies2)
|
||||||
response.raise_for_status() # Raise an error for bad responses
|
response.raise_for_status() # Raise an error for bad responses
|
||||||
return response.text
|
return response.text
|
||||||
|
|
||||||
@@ -36,6 +81,7 @@ async def clone2_m3u8(d:str,token:str,expires:str,h:str = None, b:str = None, re
|
|||||||
scheme = forwarded_proto if forwarded_proto else request.url.scheme
|
scheme = forwarded_proto if forwarded_proto else request.url.scheme
|
||||||
instance_url = f"{scheme}://{request.url.netloc}"
|
instance_url = f"{scheme}://{request.url.netloc}"
|
||||||
m3u8_content = await fetch_m3u8(m3u8)
|
m3u8_content = await fetch_m3u8(m3u8)
|
||||||
|
print(m3u8_content)
|
||||||
modified_playlist = m3u8_content.replace("https://vixcloud.co/playlist/", f"{instance_url}/clony/")
|
modified_playlist = m3u8_content.replace("https://vixcloud.co/playlist/", f"{instance_url}/clony/")
|
||||||
|
|
||||||
return Response(content=modified_playlist, media_type='application/vnd.apple.mpegurl')
|
return Response(content=modified_playlist, media_type='application/vnd.apple.mpegurl')
|
||||||
@@ -47,13 +93,19 @@ async def clone2_m3u8(d:str,token:str,expires:str,h:str = None, b:str = None, re
|
|||||||
async def clony_m3u8(segment: str, request: Request):
|
async def clony_m3u8(segment: str, request: Request):
|
||||||
base_url = "https://vixcloud.co/playlist/"
|
base_url = "https://vixcloud.co/playlist/"
|
||||||
full_url = f"{base_url}{segment}?{request.query_params}"
|
full_url = f"{base_url}{segment}?{request.query_params}"
|
||||||
|
if "rendition=1080p" in full_url or "type=subtitle" in full_url:
|
||||||
|
print(full_url)
|
||||||
|
raise HTTPException(status_code=404, detail="Requested variant not available.")
|
||||||
m3u8_content = await fetch_m3u8(full_url)
|
m3u8_content = await fetch_m3u8(full_url)
|
||||||
|
if "sc-b1" in m3u8_content:
|
||||||
|
import re
|
||||||
|
m3u8_content = re.sub(r"https://sc-b1-([0-2][0-9]|30).scws-content.net", "https://sc-u9-01.scws-content.net", m3u8_content)
|
||||||
return Response(content=m3u8_content, media_type='application/vnd.apple.mpegurl')
|
return Response(content=m3u8_content, media_type='application/vnd.apple.mpegurl')
|
||||||
|
|
||||||
@router.api_route('/storage/enc.key')
|
@router.api_route('/storage/enc.key')
|
||||||
async def get_key():
|
async def get_key():
|
||||||
async with AsyncSession(timeout = 20) as client:
|
async with AsyncSession(timeout = 20) as client:
|
||||||
response = await client.get('https://vixcloud.co/storage/enc.key', headers = {"User-Agent": User_Agent, "user-agent": User_Agent})
|
response = await client.get(ForwardProxy + 'https://vixcloud.co/storage/enc.key', headers = {"User-Agent": User_Agent, "user-agent": User_Agent}, proxies = proxies2)
|
||||||
|
|
||||||
response_headers = {
|
response_headers = {
|
||||||
'date': response.headers['date'],
|
'date': response.headers['date'],
|
||||||
|
|||||||
+87
-79
@@ -1,80 +1,88 @@
|
|||||||
{
|
{
|
||||||
"Siti": {
|
"Siti": {
|
||||||
"StreamingCommunity": {
|
"StreamingCommunity": {
|
||||||
"domain": "prof",
|
"domain": "prof",
|
||||||
"SC_ForwardProxy": "0",
|
"SC_ForwardProxy": "0",
|
||||||
"SC_PROXY": "0",
|
"SC_PROXY": "0",
|
||||||
"enabled": "1"
|
"VX_ForwardProxy": "0",
|
||||||
},
|
"VX_PROXY": "0",
|
||||||
"Filmpertutti": {
|
"enabled": "1"
|
||||||
"domain": "app",
|
},
|
||||||
"enabled": "1"
|
"Filmpertutti": {
|
||||||
},
|
"domain": "motorcycles",
|
||||||
"Tantifilm":{
|
"enabled": "1"
|
||||||
"domain": "bond",
|
},
|
||||||
"TF_ForwardProxy": "0",
|
"Tantifilm":{
|
||||||
"TF_PROXY": "0",
|
"domain": "bond",
|
||||||
"enabled": "1"
|
"TF_ForwardProxy": "0",
|
||||||
},
|
"TF_PROXY": "0",
|
||||||
"Mysterius":{
|
"enabled": "1"
|
||||||
"enabled": "0"
|
},
|
||||||
},
|
"Mysterius":{
|
||||||
"LordChannel":{
|
"enabled": "0"
|
||||||
"domain":"com",
|
},
|
||||||
"enabled":"1"
|
"LordChannel":{
|
||||||
},
|
"domain":"com",
|
||||||
"StreamingWatch":{
|
"enabled":"1"
|
||||||
"domain":"org",
|
},
|
||||||
"enabled":"1"
|
"StreamingWatch":{
|
||||||
},
|
"domain":"org",
|
||||||
"CB01":{
|
"enabled":"1"
|
||||||
"domain":"stream",
|
},
|
||||||
"CB_PROXY":"0",
|
"CB01":{
|
||||||
"enabled":"1"
|
"domain":"sbs",
|
||||||
},
|
"CB_PROXY":"0",
|
||||||
"DDLStream":{
|
"CB_ForwardProxy":"0",
|
||||||
"domain":"co",
|
"MX_ForwardProxy":"0",
|
||||||
"cookies" : {
|
"MX_PROXY":"0",
|
||||||
"ips4_device_key": null,
|
"enabled":"1"
|
||||||
"ips4_IPSSessionFront": null,
|
},
|
||||||
"ips4_member_id": null,
|
"DDLStream":{
|
||||||
"ips4_login_key": null
|
"domain":"co",
|
||||||
},
|
"cookies" : {
|
||||||
"enabled":"1"
|
"ips4_device_key": null,
|
||||||
},
|
"ips4_IPSSessionFront": null,
|
||||||
"Guardaserie":{
|
"ips4_member_id": null,
|
||||||
"domain":"academy",
|
"ips4_login_key": null
|
||||||
"enabled":"1",
|
},
|
||||||
"GS_ForwardProxy":"0",
|
"enabled":"1"
|
||||||
"GS_PROXY":"0"
|
},
|
||||||
},
|
"Guardaserie":{
|
||||||
"GuardaHD":{
|
"domain":"academy",
|
||||||
"domain":"stream",
|
"enabled":"1",
|
||||||
"enabled":"1",
|
"GS_ForwardProxy":"0",
|
||||||
"GH_ForwardProxy":"0",
|
"GS_PROXY":"0"
|
||||||
"GH_PROXY":"0"
|
},
|
||||||
},
|
"GuardaHD":{
|
||||||
"AnimeWorld":{
|
"domain":"stream",
|
||||||
"domain":"so",
|
"enabled":"1",
|
||||||
"enabled":"1"
|
"GH_ForwardProxy":"0",
|
||||||
},
|
"GH_PROXY":"0"
|
||||||
"SkyStreaming":{
|
},
|
||||||
"domain":"my",
|
"AnimeWorld":{
|
||||||
"enabled":"1"
|
"domain":"so",
|
||||||
},
|
"enabled":"1",
|
||||||
"DaddyLiveHD":{
|
"AW_ForwardProxy":"0",
|
||||||
"domain":"to",
|
"AW_PROXY":"0"
|
||||||
"enabled":"1"
|
},
|
||||||
}
|
"SkyStreaming":{
|
||||||
},
|
"domain":"my",
|
||||||
"General":{
|
"enabled":"1"
|
||||||
"load_env": "0",
|
},
|
||||||
"HOST": "0.0.0.0",
|
"DaddyLiveHD":{
|
||||||
"PORT": "8080",
|
"domain":"to",
|
||||||
"Name": "MammaMia",
|
"enabled":"1"
|
||||||
"Icon": "🍕️",
|
}
|
||||||
"Public_Instance": "0",
|
},
|
||||||
"Remote_Instance": "1",
|
"General":{
|
||||||
"Global_Proxy": "0"
|
"load_env": "0",
|
||||||
}
|
"HOST": "0.0.0.0",
|
||||||
}
|
"PORT": "8080",
|
||||||
|
"Name": "MammaMia",
|
||||||
|
"Icon": "🍕️",
|
||||||
|
"Public_Instance": "0",
|
||||||
|
"Remote_Instance": "1",
|
||||||
|
"Global_Proxy": "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ app.include_router(m3u8_clone)
|
|||||||
limiter = Limiter(key_func=get_remote_address)
|
limiter = Limiter(key_func=get_remote_address)
|
||||||
app.state.limiter = limiter
|
app.state.limiter = limiter
|
||||||
app.add_middleware(SlowAPIMiddleware)
|
app.add_middleware(SlowAPIMiddleware)
|
||||||
User_Agent= "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 OPR/111.0.0.0"
|
User_Agent= "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0"
|
||||||
MANIFEST = {
|
MANIFEST = {
|
||||||
"id": "org.stremio.mammamia",
|
"id": "org.stremio.mammamia",
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
@@ -301,10 +301,11 @@ async def addon_stream(request: Request,config, type, id,):
|
|||||||
instance_url = f"{scheme}://{request.url.netloc}"
|
instance_url = f"{scheme}://{request.url.netloc}"
|
||||||
url_streaming_community = url_streaming_community.replace("?","&")
|
url_streaming_community = url_streaming_community.replace("?","&")
|
||||||
url_streaming_community = instance_url + "/vixcloud/manifest.m3u8?d=" + url_streaming_community
|
url_streaming_community = instance_url + "/vixcloud/manifest.m3u8?d=" + url_streaming_community
|
||||||
if quality_sc == "1080":
|
streams['streams'].append({"name":f'{Name}\n{quality_sc}p Max', 'title': f'{Icon}StreamingCommunity\n {slug_sc.replace("-"," ").capitalize()}','url': url_streaming_community,'behaviorHints': {'proxyHeaders': {"request": {"user-agent": User_Agent}}, 'notWebReady': False, 'bingeGroup': f'streamingcommunity{quality_sc}'}})
|
||||||
streams['streams'].append({"name":f'{Name}\n1080p Max', 'title': f'{Icon}StreamingCommunity\n {slug_sc.replace("-"," ").capitalize()}','url': url_streaming_community,'behaviorHints': {'proxyHeaders': {"request": {"user-agent": User_Agent}}, 'notWebReady': True, 'bingeGroup': 'streamingcommunity1080'}})
|
|
||||||
else:
|
else:
|
||||||
streams['streams'].append({"name":f'{Name}\n{quality} Max', 'title': f'{Icon}StreamingCommunity\n {slug_sc.replace("-"," ").capitalize()}','url': url_streaming_community,'behaviorHints': {'proxyHeaders': {"request": {"user-agent": User_Agent}}, 'notWebReady': True, 'bingeGroup': f'streamingcommunity{quality}'}})
|
streams['streams'].append({"name":f'{Name}\n{quality_sc}p Max', 'title': f'{Icon}StreamingCommunity\n {slug_sc.replace("-"," ").capitalize()}','url': url_streaming_community,'behaviorHints': {'proxyHeaders': {"request": {"user-agent": User_Agent}}, 'notWebReady': True, 'bingeGroup': f'streamingcommunity{quality_sc}'}})
|
||||||
|
|
||||||
if provider_maps['LORDCHANNEL'] == "1" and LC == "1":
|
if provider_maps['LORDCHANNEL'] == "1" and LC == "1":
|
||||||
url_lordchannel,quality_lordchannel = await lordchannel(id,client)
|
url_lordchannel,quality_lordchannel = await lordchannel(id,client)
|
||||||
if quality_lordchannel == "FULL HD" and url_lordchannel != None:
|
if quality_lordchannel == "FULL HD" and url_lordchannel != None:
|
||||||
@@ -357,10 +358,10 @@ async def addon_stream(request: Request,config, type, id,):
|
|||||||
url_cbo1 = f'{MFP_url}/extractor/video?api_password={MFP_password}&d={url_cbo1}&host=Mixdrop&redirect_stream=true'
|
url_cbo1 = f'{MFP_url}/extractor/video?api_password={MFP_password}&d={url_cbo1}&host=Mixdrop&redirect_stream=true'
|
||||||
streams['streams'].append({'name': f"{Name}",'title': f'{Icon}CB01', 'url': url_cbo1, 'behaviorHints': {'bingeGroup': 'cb01'}})
|
streams['streams'].append({'name': f"{Name}",'title': f'{Icon}CB01', 'url': url_cbo1, 'behaviorHints': {'bingeGroup': 'cb01'}})
|
||||||
elif "delivery" in url_cbo1:
|
elif "delivery" in url_cbo1:
|
||||||
streams['streams'].append({'name': f'{Name}', 'title': f'{Icon}CB01\n Will work only on a local instance!', 'url': url_cbo1,'behaviorHints': {'proxyHeaders': {"request": {"User-Agent": User_Agent}}, 'notWebReady': True, 'bingeGroup': 'cb01'}})
|
streams['streams'].append({'name': f'{Name}', 'title': f'{Icon}CB01\n MixDrop Will work only on a local instance!', 'url': url_cbo1,'behaviorHints': {'proxyHeaders': {"request": {"User-Agent": User_Agent}}, 'notWebReady': True, 'bingeGroup': 'cb01'}})
|
||||||
|
|
||||||
else:
|
else:
|
||||||
streams['streams'].append({'name': f"{Name}",'title': f'{Icon}CB01\n Will work only on a local instance!', 'url': url_cbo1, 'behaviorHints': {'bingeGroup': 'cb01'}})
|
streams['streams'].append({'name': f"{Name}",'title': f'{Icon}CB01\n MaxStream', 'url': url_cbo1, 'behaviorHints': {'bingeGroup': 'cb01'}})
|
||||||
if provider_maps['GUARDASERIE'] == "1" and GS == "1":
|
if provider_maps['GUARDASERIE'] == "1" and GS == "1":
|
||||||
url_guardaserie = await guardaserie(id,client)
|
url_guardaserie = await guardaserie(id,client)
|
||||||
if url_guardaserie:
|
if url_guardaserie:
|
||||||
|
|||||||
Reference in New Issue
Block a user