From c5b574a22df95bea7349515d24e9b3a81cf462fd Mon Sep 17 00:00:00 2001
From: Urlo30 <91965455+UrloMythus@users.noreply.github.com>
Date: Fri, 16 Aug 2024 20:58:00 +0200
Subject: [PATCH] Update streamingcommunity.py
---
streamingcommunity.py | 150 ++----------------------------------------
1 file changed, 6 insertions(+), 144 deletions(-)
diff --git a/streamingcommunity.py b/streamingcommunity.py
index 284c261..17de0db 100644
--- a/streamingcommunity.py
+++ b/streamingcommunity.py
@@ -1,141 +1,3 @@
-from tmdbv3api import TMDb, Movie, TV
-import requests
-import logging
-from bs4 import BeautifulSoup,SoupStrainer
-from datetime import datetime
-import dateparser
-from convert import get_TMDb_id_from_IMDb_id
-from info import get_info_tmdb, is_movie, get_info_imdb
-import config
-import json
-import re
-#Get domain
-SC_DOMAIN= config.SC_DOMAIN
-SC_FAST_SEARCH = config.SC_FAST_SEARCH
-
-headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.10; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
- 'Accept-Language': 'en-US,en;q=0.5'
-}
-
-#GET VERSION OF STREAMING COMMUNITY:
-def get_version():
- #Extract the version from the main page of the site
-
-
- try:
- base_url = f'https://streamingcommunity.{SC_DOMAIN}/richiedi-un-titolo'
- response = requests.get(base_url, headers=headers)
- #Soup the response
- soup = BeautifulSoup(response.text, "lxml")
-
- # Extract version
- version = json.loads(soup.find("div", {"id": "app"}).get("data-page"))['version']
- return version
- except:
- print("Couldn't find the version")
- version = "65e52dcf34d64173542cd2dc6b8bb75b"
- return version
-
-def search(query,date,ismovie):
- #Do a request to get the ID of serie/move and it's slug in the URL
- response = requests.get(query).json()
- for item in response['data']:
- tid = item['id']
- slug = item['slug']
- type = item['type']
- if type == "tv":
- type = 0
- elif type == "movie":
- type = 1
- if type == ismovie:
- #Added a Check to see if the result is what it is supposed to be
- if SC_FAST_SEARCH == "0":
- if ismovie == 0:
- seasons_count = item['seasons_count']
- #Do not ask me why but somewhy streaming community call the first air date the last air date
- first_air_date = item['last_air_date']
- if first_air_date:
- first_air_year = first_air_date.split("-")[0]
- if first_air_year == date:
- return tid,slug
- else:
- response = requests.get ( f'https://streamingcommunity.boston/titles/{tid}-{slug}')
- pattern = r'
]*class="features"[^>]*>.*?]*>(.*?)<\/span>'
- match = re.search(pattern, response.text)
- print(match.group(1).split("-")[0])
- first_air_year = match.group(1).split("-")[0]
- date = int(date)
- first_air_year = int(first_air_year)
- if first_air_year == date:
- return tid,slug
- elif ismovie == 1:
- return tid,slug
- elif SC_FAST_SEARCH == "1":
- return tid,slug
- else:
- print("Couldn't find anything")
-
-
-def get_film(tid):
- #Access the iframe
- url = f'https://streamingcommunity.{SC_DOMAIN}/iframe/{tid}'
- response = requests.get(url, headers=headers)
- iframe = BeautifulSoup(response.text, 'lxml')
- #Get the link of iframe
- iframe = iframe.find('iframe').get("src")
- #Get the ID containted in the src of iframe
- vixid = iframe.split("/embed/")[1].split("?")[0]
- #Build the url with 1080p, to get the highest resolution
- url = f'https://vixcloud.co/playlist/{vixid}'
- return url
-
-def get_season_episode_id(tid,slug,season,episode,version):
- #Set some basic headers for the request
- headers = {
- 'user-agent': "Mozilla/5.0 (Windows NT 10.10; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
- 'x-inertia': 'true',
- #Version of streaming community
- 'x-inertia-version': version
- }
- #Get episode ID
- response = requests.get(f'https://streamingcommunity.{SC_DOMAIN}/titles/{tid}-{slug}/stagione-{season}', headers=headers)
- # Print the json got
- json_response = response.json().get('props', {}).get('loadedSeason', {}).get('episodes', [])
- for dict_episode in json_response:
- if dict_episode['number'] == episode:
- return dict_episode['id']
-
-def get_episode_link(episode_id,tid):
- #The parameters for the request
- params = {
- 'episode_id': episode_id,
- 'next_episode': '1'
- }
- #Let's try to get the link from iframe source
- # Make a request to get iframe source
- response = requests.get(f"https://streamingcommunity.{SC_DOMAIN}/iframe/{tid}", params=params)
-
- # Parse response with BeautifulSoup to get iframe source
- soup = BeautifulSoup(response.text, "lxml")
- iframe = soup.find("iframe").get("src")
- vixid = iframe.split("/embed/")[1].split("?")[0]
- url = f"https://vixcloud.co/playlist/{vixid}"
- return url
-
-
-def streaming_community(imdb):
- try:
- general = is_movie(imdb)
- ismovie = general[0]
- imdb_id = general[1]
- type = "StreamingCommunity"
- if ismovie == 0 :
- season = int(general[2])
- episode = int(general[3])
- #Check if fast search is enabled or disabled
- if SC_FAST_SEARCH == "1":
- if "tt" in imdb:
#Get showname
showname = get_info_imdb(imdb_id,ismovie,type)
date = None
@@ -164,17 +26,17 @@ def streaming_community(imdb):
showname = showname.replace(" ", "+").replace("–", "+").replace("—","+")
query = f'https://streamingcommunity.{SC_DOMAIN}/api/search?q={showname}'
tid,slug = search(query,date,ismovie)
+ version = get_version()
if ismovie == 1:
#TID means temporaly ID
- url = get_film(tid)
+ url,url720,quality = get_film(tid,version)
print(url)
- return url
+ return url,url720,quality
if ismovie == 0:
#Uid = URL ID
- version = get_version()
episode_id = get_season_episode_id(tid,slug,season,episode,version)
- url = get_episode_link(episode_id,tid)
+ url,url720,quality = get_episode_link(episode_id,tid,version)
print(url)
- return url
+ return url,url720,quality
except Exception as e:
- print("Nope It failed")
\ No newline at end of file
+ print("Nope It failed")