From 0bc992fb8a48f04a7cfa469bca41d927466aae72 Mon Sep 17 00:00:00 2001 From: UrloMythus Date: Sun, 7 Jul 2024 18:36:36 +0200 Subject: [PATCH] reverted changes the date in the api is wrong --- __pycache__/filmpertutti.cpython-311.pyc | Bin 9143 -> 9136 bytes filmpertutti.py | 80 +++++++++++++++-------- 2 files changed, 53 insertions(+), 27 deletions(-) diff --git a/__pycache__/filmpertutti.cpython-311.pyc b/__pycache__/filmpertutti.cpython-311.pyc index 2dfc51b983745834ccdcd486c71e4718a1a9eb9a..01583d8dbd1a80f07cb2c12153a04d1ff5f8319f 100644 GIT binary patch delta 149 zcmdn)zQLVuIWI340}x~%>`MD8x{=RXjO`XnPDO6c<}fh|T#f{@QeA)hNkKASI#3o$cxOnxS1!Z=~Fv~(on^3A2vFPYgU z0!=PjJ~>4`1Sq~!-ji|jW@d#-Mz#)+`1Hw5idozcB_RIh$=?-a8Fz0MRhrER00m<) AIsgCw diff --git a/filmpertutti.py b/filmpertutti.py index 97e07e3..00e5b07 100644 --- a/filmpertutti.py +++ b/filmpertutti.py @@ -76,27 +76,51 @@ def get_mamma(tmbda,ismovie): else: return showname,date -def search(showname2,date): - base_url = f'https://filmpertutti.{DOMAIN}/wp-json/wp/v2/posts' - params = { - "search": showname2, - "page": "1", - "_fields": "title,date,id" # Only fetch the 'title' and 'date' fields - } - response = requests.get(base_url, params=params) - all_fields = response.json() - for post in all_fields: - title = post['title']['rendered'] - date2 = post['date'].split('T')[0] # remove the time part - tid = post['id'] - if date2 == date: - print("HERE THE ID",tid) - return tid - -def get_episode_link(season,episode,tid,base_url): +def search(query,date): + response = requests.get(query) + soup = BeautifulSoup(response.text, 'lxml') + test= soup.find('div', class_='elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid') + # Find all articles + articles = test.select('article', class_='elementor-post elementor-grid-item post-629565') + + # Loop through each article + for article in articles: + # Find the link inside the article + link = article.find('a', class_='elementor-post__thumbnail__link') + + # Extract the href attribute from the link + href = link['href'] + #replace base url for easier scraping + #Get the correct serie by checking if the date is equals + series_response = requests.get(href, headers=headers) + series_soup = BeautifulSoup(series_response.text, 'lxml') + release_span = series_soup.find('span', class_='released') + if release_span: + if release_span.text != "Data di uscita: N/A": + date_string = release_span.text.split(': ')[-1] # Get the date part + for eng, ita in month_mapping.items(): + date_string = re.sub(rf'\b{eng}\b', ita, date_string) + + # Swap to YY-MM-DD formatting using dateparser + release_date = dateparser.parse(date_string, languages=['it']).strftime("%Y-%m-%d") + print(release_date) + if release_date == date: + url = href + break + return url + +def get_episode_link(season,episode,url): + response = requests.get(url) + # Extract the 'link' field from the headers + link_field = response.headers.get('Link') + links = link_field.split(',') + links = [link.split(';')[0].strip('<>') for link in links] + second_link = links[2] + #Get the ID of the serie (not tmbd or imbd) + tid = second_link.split("=")[1] episode = int(episode) season = int(season) - tlink = f'{base_url}?show_video=true&post_id={tid}&season_id={season-1}&episode_id={episode-1}' + tlink = f'{url}?show_video=true&post_id={tid}&season_id={season-1}&episode_id={episode-1}' return tlink @@ -140,13 +164,15 @@ def get_stream_link(imbd): else: tmdba,ismovie = info showname,date = get_mamma(tmdba,ismovie) - showname2 = showname.replace("–", "+").replace("—","+") - print(showname2) - print(date) - tid = search(showname2,date) - base_url= f'https://filmpertutti.{DOMAIN}/' + + query = f'https://filmpertutti.{DOMAIN}/?s=+{showname}' + query = query.replace(" ", "+").replace("–", "+").replace("—","+") + print(query) + url = search(query,date) + print(ismovie) + print(url) if ismovie == 0: - episode_link = get_episode_link(season,episode,tid,base_url) + episode_link = get_episode_link(season,episode,url) print(episode_link) #Let's get mixdrop link real_link = get_real_link(episode_link) @@ -154,10 +180,10 @@ def get_stream_link(imbd): streaming_link = get_true_link(real_link) return streaming_link elif ismovie == 1: - film_link = get_film(base_url) + film_link = get_film(url) print(film_link) #Let's get mixdrop link real_link = get_real_link(film_link) #let's get delivery link, streaming link streaming_link = get_true_link(real_link) - return streaming_link \ No newline at end of file + return streaming_link