divided function into utilies in order to add a new API

This commit is contained in:
UrloMythus
2024-07-08 15:37:04 +02:00 Unverified
parent 9c7eb1da4d
commit 98a36e996a
11 changed files with 86 additions and 76 deletions
+1
View File
@@ -1,5 +1,6 @@
# MammaMia # MammaMia
A Stremio Addon for HTTPS Stream in Italian A Stremio Addon for HTTPS Stream in Italian
Note that for now only filmpertutti is avaiable which uses Mixdrop. Mixdrop allows to see the videos only from the same IP they were generated so, if you want to scrape filmpertutti, you have to host this project locally.
# Installation # Installation
Install required packages Install required packages
-7
View File
@@ -1,7 +0,0 @@
# Spacefile Docs: https://go.deta.dev/docs/spacefile/v0
v: 0
micros:
- name: MammaMia
src: ./
engine: python3.9
primary: true
+20
View File
@@ -0,0 +1,20 @@
def convert_US_date(date):
us_data = next((country_data for country_data in date['results'] if country_data["iso_3166_1"] == "US"), None)
if us_data:
us_release_dates_type_3 = [rd for rd in us_data['release_dates'] if rd['type'] == 3]
# Sort the list of release dates and get the latest
us_release_dates_type_3.sort(key = lambda x: x['release_date'], reverse=True)
if len(us_release_dates_type_3) > 0:
latest_release_date = us_release_dates_type_3[0]['release_date']
date = latest_release_date.split('T')[0]
print('Latest US theatrical release date:', date)
return date
else:
us_release_dates_type_4 = [rd for rd in us_data['release_dates'] if rd['type'] == 4]
us_release_dates_type_4.sort(key = lambda x: x['release_date'], reverse=True)
if len(us_release_dates_type_4) > 0:
latest_release_date = us_release_dates_type_4[0]['release_date']
date = latest_release_date.split('T')[0]
print('Latest US theatrical release date (type 4):', date)
return date
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+26
View File
@@ -0,0 +1,26 @@
import requests
from tmdbv3api import TMDb, Movie, TV
from loadenv import load_env
TMDB_KEY, DOMAIN = load_env()
def get_TMDb_id_from_IMDb_id(imdb_id):
if ":" in imdb_id:
season = imdb_id.split(":")[1]
episode = imdb_id[-1]
ismovie = 0
imdb_id = imdb_id.split(":")[0]
else:
ismovie = 1
response = requests.get(f'https://api.themoviedb.org/3/find/{imdb_id}',
params={'external_source': 'imdb_id', 'api_key': f'{TMDB_KEY}'})
tmbda = response.json()
if tmbda['movie_results']:
print(tmbda)
return tmbda['movie_results'][0]['id'], ismovie
elif tmbda['tv_results']:
print(tmbda['tv_results'][0]['id'])
return tmbda['tv_results'][0]['id'], season, episode , ismovie
else:
return None
get_TMDb_id_from_IMDb_id("tt1839578:1:1")
+6 -69
View File
@@ -6,14 +6,12 @@ import string
import re import re
from datetime import datetime from datetime import datetime
import dateparser import dateparser
import os from convert import get_TMDb_id_from_IMDb_id
from dotenv import load_dotenv from loadenv import load_env
from info import get_info
load_dotenv(".env") from US_date import convert_US_date
TMDB_KEY = os.getenv('TMDB_KEY')
DOMAIN = os.getenv('DOMAIN')
TMDB_KEY, DOMAIN = load_env()
headers = { 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', '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' 'Accept-Language': 'en-US,en;q=0.5'
@@ -23,66 +21,6 @@ month_mapping = {
'May': 'Maggio', 'Jun': 'Giugno', 'Jul': 'Luglio', 'Aug': 'Agosto', 'May': 'Maggio', 'Jun': 'Giugno', 'Jul': 'Luglio', 'Aug': 'Agosto',
'Sep': 'Settembre', 'Oct': 'Ottobre', 'Nov': 'Novembre', 'Dec': 'Dicembre' 'Sep': 'Settembre', 'Oct': 'Ottobre', 'Nov': 'Novembre', 'Dec': 'Dicembre'
} }
def convert_US_date(date):
us_data = next((country_data for country_data in date['results'] if country_data["iso_3166_1"] == "US"), None)
if us_data:
us_release_dates_type_3 = [rd for rd in us_data['release_dates'] if rd['type'] == 3]
# Sort the list of release dates and get the latest
us_release_dates_type_3.sort(key = lambda x: x['release_date'], reverse=True)
if len(us_release_dates_type_3) > 0:
latest_release_date = us_release_dates_type_3[0]['release_date']
date = latest_release_date.split('T')[0]
print('Latest US theatrical release date:', date)
return date
else:
us_release_dates_type_4 = [rd for rd in us_data['release_dates'] if rd['type'] == 4]
us_release_dates_type_4.sort(key = lambda x: x['release_date'], reverse=True)
if len(us_release_dates_type_4) > 0:
latest_release_date = us_release_dates_type_4[0]['release_date']
date = latest_release_date.split('T')[0]
print('Latest US theatrical release date (type 4):', date)
return date
def get_TMDb_id_from_IMDb_id(imdb_id):
if ":" in imdb_id:
season = imdb_id.split(":")[1]
episode = imdb_id[-1]
ismovie = 0
imdb_id = imdb_id.split(":")[0]
else:
ismovie = 1
response = requests.get(f'https://api.themoviedb.org/3/find/{imdb_id}',
params={'external_source': 'imdb_id', 'api_key': f'{TMDB_KEY}'})
tmbda = response.json()
if tmbda['movie_results']:
print(tmbda)
return tmbda['movie_results'][0]['id'], ismovie
elif tmbda['tv_results']:
print(tmbda['tv_results'][0]['id'])
return tmbda['tv_results'][0]['id'], season, episode , ismovie
else:
return None
def get_mamma(tmbda,ismovie):
tmdb = TMDb()
tmdb.api_key = f'{TMDB_KEY}'
tmdb.language = 'it'
if ismovie == 0:
tv = TV()
show= tv.details(tmbda)
showname = show.name
date= show.first_air_date
else:
movie = Movie()
show= movie.details(tmbda)
showname= show.title
#Get all release dates
date = show.release_dates
#GET US RELEASE DATE because filmpertutti somewhy uses US release date
date = convert_US_date(date)
if ismovie==0:
return showname,date
else:
return showname,date
def search(query,date): def search(query,date):
response = requests.get(query).json() response = requests.get(query).json()
@@ -153,7 +91,7 @@ def get_stream_link(imbd):
tmdba,season,episode,ismovie = info tmdba,season,episode,ismovie = info
else: else:
tmdba,ismovie = info tmdba,ismovie = info
showname,date = get_mamma(tmdba,ismovie) showname,date = get_info(tmdba,ismovie)
showname = showname.replace(" ", "+").replace("–", "+").replace("—","+") showname = showname.replace(" ", "+").replace("–", "+").replace("—","+")
query = f'https://filmpertutti.{DOMAIN}/wp-json/wp/v2/posts?search={showname}&page=1&_fields=link,id' query = f'https://filmpertutti.{DOMAIN}/wp-json/wp/v2/posts?search={showname}&page=1&_fields=link,id'
print(query) print(query)
@@ -176,4 +114,3 @@ def get_stream_link(imbd):
#let's get delivery link, streaming link #let's get delivery link, streaming link
streaming_link = get_true_link(real_link) streaming_link = get_true_link(real_link)
return streaming_link return streaming_link
+26
View File
@@ -0,0 +1,26 @@
from loadenv import load_env
from tmdbv3api import TMDb, Movie, TV
from US_date import convert_US_date
TMDB_KEY, DOMAIN = load_env()
def get_info(tmbda,ismovie):
tmdb = TMDb()
tmdb.api_key = f'{TMDB_KEY}'
tmdb.language = 'it'
if ismovie == 0:
tv = TV()
show= tv.details(tmbda)
showname = show.name
date= show.first_air_date
else:
movie = Movie()
show= movie.details(tmbda)
showname= show.title
#Get all release dates
date = show.release_dates
#GET US RELEASE DATE because filmpertutti somewhy uses US release date
date = convert_US_date(date)
if ismovie==0:
return showname,date
else:
return showname,date
+7
View File
@@ -0,0 +1,7 @@
import os
from dotenv import load_dotenv
load_dotenv(".env")
def load_env():
TMDB_KEY = os.getenv('TMDB_KEY')
DOMAIN = os.getenv('DOMAIN')
return TMDB_KEY, DOMAIN