Mythus commited on
Commit
570a86d
·
verified ·
1 Parent(s): de985ce

Update filmpertutti.py

Browse files
Files changed (1) hide show
  1. 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 httpx
 
 
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': 'Chrome/58.0.3029.110 Safari/537.3 Mozilla/5.0 (Windows NT 10.10; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)',
19
- 'Accept-Language': 'it-IT,it;q=0.9'
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= httpx.get(query)
81
- print(response.text)
82
- print("HERE IT ENDS RESPONSE")
83
- soup = BeautifulSoup(response.text, 'html.parser')
84
- test= soup.find('div', class_='elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid')
85
- # Find all articles
86
- articles = test.select('article', class_='elementor-post elementor-grid-item post-629565')
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 = href
 
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 = "https://filmpertutti.casino/?s=" + f"{showname}"
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("tt1839578:3:5")
 
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")