Spaces:
Paused
Paused
Update filmpertutti.py
Browse files- filmpertutti.py +29 -43
filmpertutti.py
CHANGED
|
@@ -7,16 +7,16 @@ import re
|
|
| 7 |
from datetime import datetime
|
| 8 |
import dateparser
|
| 9 |
import os
|
| 10 |
-
import
|
|
|
|
|
|
|
| 11 |
|
| 12 |
TMDB_KEY = os.getenv('TMDB_KEY')
|
| 13 |
DOMAIN = os.getenv('DOMAIN')
|
| 14 |
-
print(TMDB_KEY)
|
| 15 |
-
print(DOMAIN)
|
| 16 |
|
| 17 |
headers = {
|
| 18 |
-
'User-Agent': '
|
| 19 |
-
'Accept-Language': '
|
| 20 |
}
|
| 21 |
month_mapping = {
|
| 22 |
'Jan': 'Gennaio', 'Feb': 'Febbraio', 'Mar': 'Marzo', 'Apr': 'Aprile',
|
|
@@ -34,6 +34,14 @@ def convert_US_date(date):
|
|
| 34 |
date = latest_release_date.split('T')[0]
|
| 35 |
print('Latest US theatrical release date:', date)
|
| 36 |
return date
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
def get_TMDb_id_from_IMDb_id(imdb_id):
|
| 38 |
if ":" in imdb_id:
|
| 39 |
season = imdb_id.split(":")[1]
|
|
@@ -77,27 +85,13 @@ def get_mamma(tmbda,ismovie):
|
|
| 77 |
return showname,date
|
| 78 |
|
| 79 |
def search(query,date):
|
| 80 |
-
response=
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
# Loop through each article
|
| 89 |
-
for article in articles:
|
| 90 |
-
# Find the link inside the article
|
| 91 |
-
link = article.find('a', class_='elementor-post__thumbnail__link')
|
| 92 |
-
|
| 93 |
-
# Extract the href attribute from the link
|
| 94 |
-
href = link['href']
|
| 95 |
-
#replace base url for easier scraping
|
| 96 |
-
href = href.replace('definizionealta.com', f'filmpertutti.{DOMAIN}')
|
| 97 |
-
#Get the correct serie by checking if the date is equals
|
| 98 |
-
series_response = requests.get(href, headers=headers)
|
| 99 |
-
series_soup = BeautifulSoup(series_response.text, 'html.parser')
|
| 100 |
-
release_span = series_soup.find('span', class_='released')
|
| 101 |
if release_span:
|
| 102 |
if release_span.text != "Data di uscita: N/A":
|
| 103 |
date_string = release_span.text.split(': ')[-1] # Get the date part
|
|
@@ -108,19 +102,12 @@ def search(query,date):
|
|
| 108 |
release_date = dateparser.parse(date_string, languages=['it']).strftime("%Y-%m-%d")
|
| 109 |
print(release_date)
|
| 110 |
if release_date == date:
|
| 111 |
-
url =
|
|
|
|
| 112 |
break
|
| 113 |
-
return url
|
| 114 |
|
| 115 |
-
def get_episode_link(season,episode,url):
|
| 116 |
-
response = requests.get(url)
|
| 117 |
-
# Extract the 'link' field from the headers
|
| 118 |
-
link_field = response.headers.get('Link')
|
| 119 |
-
links = link_field.split(',')
|
| 120 |
-
links = [link.split(';')[0].strip('<>') for link in links]
|
| 121 |
-
second_link = links[2]
|
| 122 |
-
#Get the ID of the serie (not tmbd or imbd)
|
| 123 |
-
tid = second_link.split("=")[1]
|
| 124 |
episode = int(episode)
|
| 125 |
season = int(season)
|
| 126 |
tlink = f'{url}?show_video=true&post_id={tid}&season_id={season-1}&episode_id={episode-1}'
|
|
@@ -167,15 +154,14 @@ def get_stream_link(imbd):
|
|
| 167 |
else:
|
| 168 |
tmdba,ismovie = info
|
| 169 |
showname,date = get_mamma(tmdba,ismovie)
|
| 170 |
-
|
| 171 |
-
query =
|
| 172 |
-
query = query.replace(" ", "+").replace("–", "+").replace("—","+")
|
| 173 |
print(query)
|
| 174 |
-
url = search(query,date)
|
| 175 |
print(ismovie)
|
| 176 |
print(url)
|
| 177 |
if ismovie == 0:
|
| 178 |
-
episode_link = get_episode_link(season,episode,url)
|
| 179 |
print(episode_link)
|
| 180 |
#Let's get mixdrop link
|
| 181 |
real_link = get_real_link(episode_link)
|
|
@@ -190,4 +176,4 @@ def get_stream_link(imbd):
|
|
| 190 |
#let's get delivery link, streaming link
|
| 191 |
streaming_link = get_true_link(real_link)
|
| 192 |
return streaming_link
|
| 193 |
-
get_stream_link("
|
|
|
|
| 7 |
from datetime import datetime
|
| 8 |
import dateparser
|
| 9 |
import os
|
| 10 |
+
from dotenv import load_dotenv
|
| 11 |
+
|
| 12 |
+
load_dotenv(".env")
|
| 13 |
|
| 14 |
TMDB_KEY = os.getenv('TMDB_KEY')
|
| 15 |
DOMAIN = os.getenv('DOMAIN')
|
|
|
|
|
|
|
| 16 |
|
| 17 |
headers = {
|
| 18 |
+
'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',
|
| 19 |
+
'Accept-Language': 'en-US,en;q=0.5'
|
| 20 |
}
|
| 21 |
month_mapping = {
|
| 22 |
'Jan': 'Gennaio', 'Feb': 'Febbraio', 'Mar': 'Marzo', 'Apr': 'Aprile',
|
|
|
|
| 34 |
date = latest_release_date.split('T')[0]
|
| 35 |
print('Latest US theatrical release date:', date)
|
| 36 |
return date
|
| 37 |
+
else:
|
| 38 |
+
us_release_dates_type_4 = [rd for rd in us_data['release_dates'] if rd['type'] == 4]
|
| 39 |
+
us_release_dates_type_4.sort(key = lambda x: x['release_date'], reverse=True)
|
| 40 |
+
if len(us_release_dates_type_4) > 0:
|
| 41 |
+
latest_release_date = us_release_dates_type_4[0]['release_date']
|
| 42 |
+
date = latest_release_date.split('T')[0]
|
| 43 |
+
print('Latest US theatrical release date (type 4):', date)
|
| 44 |
+
return date
|
| 45 |
def get_TMDb_id_from_IMDb_id(imdb_id):
|
| 46 |
if ":" in imdb_id:
|
| 47 |
season = imdb_id.split(":")[1]
|
|
|
|
| 85 |
return showname,date
|
| 86 |
|
| 87 |
def search(query,date):
|
| 88 |
+
response = requests.get(query).json()
|
| 89 |
+
for json in response:
|
| 90 |
+
link = json['link']
|
| 91 |
+
tid = json['id']
|
| 92 |
+
series_response = requests.get(link, headers=headers)
|
| 93 |
+
series_soup = BeautifulSoup(series_response.text, 'lxml')
|
| 94 |
+
release_span = series_soup.find('span', class_='released')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
if release_span:
|
| 96 |
if release_span.text != "Data di uscita: N/A":
|
| 97 |
date_string = release_span.text.split(': ')[-1] # Get the date part
|
|
|
|
| 102 |
release_date = dateparser.parse(date_string, languages=['it']).strftime("%Y-%m-%d")
|
| 103 |
print(release_date)
|
| 104 |
if release_date == date:
|
| 105 |
+
url = link
|
| 106 |
+
tid = tid
|
| 107 |
break
|
| 108 |
+
return url, tid
|
| 109 |
|
| 110 |
+
def get_episode_link(season,episode,tid,url):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
episode = int(episode)
|
| 112 |
season = int(season)
|
| 113 |
tlink = f'{url}?show_video=true&post_id={tid}&season_id={season-1}&episode_id={episode-1}'
|
|
|
|
| 154 |
else:
|
| 155 |
tmdba,ismovie = info
|
| 156 |
showname,date = get_mamma(tmdba,ismovie)
|
| 157 |
+
showname = showname.replace(" ", "+").replace("–", "+").replace("—","+")
|
| 158 |
+
query = f'https://filmpertutti.{DOMAIN}/wp-json/wp/v2/posts?search={showname}&page=1&_fields=link,id'
|
|
|
|
| 159 |
print(query)
|
| 160 |
+
url,tid = search(query,date)
|
| 161 |
print(ismovie)
|
| 162 |
print(url)
|
| 163 |
if ismovie == 0:
|
| 164 |
+
episode_link = get_episode_link(season,episode,tid,url)
|
| 165 |
print(episode_link)
|
| 166 |
#Let's get mixdrop link
|
| 167 |
real_link = get_real_link(episode_link)
|
|
|
|
| 176 |
#let's get delivery link, streaming link
|
| 177 |
streaming_link = get_true_link(real_link)
|
| 178 |
return streaming_link
|
| 179 |
+
get_stream_link("tt16288804:1:1")
|