1.1.0 Updated! Added Live TV!
This commit is contained in:
+227
@@ -0,0 +1,227 @@
|
||||
from bs4 import BeautifulSoup
|
||||
import httpx
|
||||
|
||||
tivu = {
|
||||
"dazn-zona-a": "801",
|
||||
}
|
||||
"""
|
||||
"rai-1": "3401",
|
||||
"rai-2": "3402",
|
||||
"rai-3": "3403",
|
||||
"rete-4": "123",
|
||||
"canale-5": "122",
|
||||
"italia-1": "121",
|
||||
"la7": "79",
|
||||
"tv8": "7260",
|
||||
"nove": "4323",
|
||||
"rai-4": "3405",
|
||||
"rai-movie": "3406",
|
||||
"rai-premium": "8522",
|
||||
"mediaset-extra": "129",
|
||||
"cielo": "4120",
|
||||
"rai-sport": "17714",
|
||||
"rai-news": "17711",
|
||||
"dmax": "15202",
|
||||
"real-time": "15201",
|
||||
"focus": "134",
|
||||
"giallo": "4322",
|
||||
"topcrime": "132",
|
||||
"boing": "126",
|
||||
"cartoonito": "133",
|
||||
"k2": "15204",
|
||||
"foodnetwork": "15203",
|
||||
"hgtv": "4334",
|
||||
"solocalcio": "4996" ,
|
||||
"euronews": "2017",
|
||||
"rai-4k": "3407",
|
||||
"""
|
||||
convert_bho_1 = {
|
||||
"euronews": "PlutoEuronews.it",
|
||||
"cartoonito": "cartoonito",
|
||||
"sky-tg-24": "skytg24",
|
||||
"frisbee": "frisbee",
|
||||
"hgtv": "hgtv",
|
||||
"k2": "k2",
|
||||
"supertennis": "supertennis",
|
||||
"solocalcio": "sportitaliasolocalcio",
|
||||
"sportitalia": "sportitalia",
|
||||
"sportitalia24": "RakutenSportItalia.it",
|
||||
"rsi-la-2": "rsila2",
|
||||
"baby-shark-tv": "RakutenBabySharkTv.it",
|
||||
"adrenaline-movies": "RakutenFullMoon.it",
|
||||
"adrenaline-movies": "RakutenBizzarroMovies.it",
|
||||
"cinema-italiano": "RakutenCinemaItalianoRakutenTv.it",
|
||||
"le-vite-degli-altri": "RakutenLeViteDegliAltri.it",
|
||||
"dark-matter": "RakutenDarkMatterItNew.it",
|
||||
"cine-western": "RakutenWesternEPeplum.it",
|
||||
"serie-crime": "RakutenCrimeSeriesItRakutenTv.it",
|
||||
"filmrise-sci-fi": "RakutenFuelTvNew.it",
|
||||
"doctor-who": "RakutenBbcDoctorWho.it",
|
||||
"bbc-drama": "RakutenBbcDrama.it",
|
||||
"documentari": "RakutenDocumentaries.it",
|
||||
"house-of-docs": "RakutenHouseOfDocs.it",
|
||||
"the-asylum": "PlutoTheAsylum.it",
|
||||
"western": "PlutoTvWestern.it",
|
||||
"consulenze-illegali": "PlutoConsulenzeIllegaliItPlus.it"
|
||||
|
||||
}
|
||||
|
||||
|
||||
convert_bho_2 = {
|
||||
"rai-1": "Rai%201",
|
||||
"rai-2": "Rai 2",
|
||||
"rai-3": "Rai 3",
|
||||
"rai-4": "Rai 4",
|
||||
"rai-premium": "Rai Premium",
|
||||
"rai-movie": "Rai Movie",
|
||||
"rai-sport": "Rai Sport",
|
||||
"rete-4": "Rete 4",
|
||||
"canale-5": "Canale 5",
|
||||
"italia-1": "Italia 1",
|
||||
"topcrime": "Top Crime",
|
||||
"mediaset-extra": "Mediaset Extra",
|
||||
"focus": "Focus",
|
||||
"boing": "Boing",
|
||||
"history": "History",
|
||||
"comedy-central": "Comedy Central",
|
||||
"tv8": "TV 8",
|
||||
"cielo": "Cielo",
|
||||
"sky-cinema-action": "Sky Cinema Action",
|
||||
"sky-arte": "Sky Arte FHD",
|
||||
"sky-atlantic": "Sky Atlantic",
|
||||
"sky-cinema-collection": "Sky Cinema Collection",
|
||||
"sky-cinema-comedy": "Sky Cinema Comedy",
|
||||
"sky-cinema-drama": "Sky Cinema Drama",
|
||||
"sky-cinema-due": "Sky Cinema Due",
|
||||
"sky-cinema-family": "Sky Cinema Family",
|
||||
"sky-cinema-romance": "Sky Cinema Romance",
|
||||
"sky-cinema-suspence": "Sky Cinema Suspence",
|
||||
"sky-cinema-uno": "Sky Cinema Uno",
|
||||
"sky-uno": "Sky Uno",
|
||||
"sky-sport-24": "Sky Sport",
|
||||
"sky-sport-uno": "Sky Sport Uno",
|
||||
"sky-sport-f1": "Sky Sport F1",
|
||||
"sky-sport-motogp": "Sky Sport MotoGP",
|
||||
"sky-sport-arena": "Sky Sport Arena",
|
||||
"sky-sport-nba": "Sky Sport NBA",
|
||||
"eurosport-1": "Eurosport 1",
|
||||
"eurosport-2": "Eurosport 2",
|
||||
"dmax": "Dmax",
|
||||
"foodnetwork": "Food Network",
|
||||
"giallo": "Giallo",
|
||||
"nove": "Nove",
|
||||
"realtime": "Real Time",
|
||||
}
|
||||
convert_bho_3 = {
|
||||
"la7": "La7",
|
||||
"rai-news": "Rai News DTT",
|
||||
"sky-crime": "Sky CrimeInvestigation",
|
||||
"sky-documentaries": "Sky Documentaries HD",
|
||||
"sky-investigation": "Sky Investigation HD",
|
||||
"sky-nature": "Sky Nature HD",
|
||||
"sky-serie": "Sky Serie HD",
|
||||
"sky-sport-golf": "Sky Sport Golf",
|
||||
"sky-sport-251": "Sky Sport 251 HD",
|
||||
"sky-sport-252": "Sky Sport 252 HD",
|
||||
"sky-sport-253": "Sky Sport 253 HD",
|
||||
"sky-sport-254": "Sky Sport 254 HD",
|
||||
"sky-sport-255": "Sky Sport 255 HD",
|
||||
"sky-sport-256": "Sky Sport 256 HD",
|
||||
"sky-sport-257": "Sky Sport 257 HD",
|
||||
"sky-sport-258": "Sky Sport 258 HD",
|
||||
"sky-sport-259": "Sky Sport 259 HD",
|
||||
"sky-sport-260": "Sky Sport 260 HD",
|
||||
"sky-sport-261": "Sky Sport 261 HD",
|
||||
"sky-sport-max": "Sky Sport Max",
|
||||
"sky-sport-calcio": "Sky Sport Calcio HD",
|
||||
"sky-sport-tennis": "Sky Sport Tennis HD",
|
||||
}
|
||||
|
||||
|
||||
async def tivu_get(id,client):
|
||||
try:
|
||||
cookies = {
|
||||
'ASP.NET_SessionId': 'p2fk5silp5mjgtx0j5chjrh3',
|
||||
}
|
||||
ik = tivu[id]
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0',
|
||||
'Accept': '*/*',
|
||||
'Accept-Language': 'en-US,en;q=0.5',
|
||||
# 'Accept-Encoding': 'gzip, deflate, br, zstd',
|
||||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
'Origin': 'https://www.tivu.tv',
|
||||
'DNT': '1',
|
||||
'Sec-GPC': '1',
|
||||
'Connection': 'keep-alive',
|
||||
'Referer': 'https://www.tivu.tv/schedasat-rai1.html',
|
||||
# 'Cookie': 'ASP.NET_SessionId=p2fk5silp5mjgtx0j5chjrh3',
|
||||
'Sec-Fetch-Dest': 'empty',
|
||||
'Sec-Fetch-Mode': 'cors',
|
||||
'Sec-Fetch-Site': 'same-origin',
|
||||
'Pragma': 'no-cache',
|
||||
'Cache-Control': 'no-cache',
|
||||
}
|
||||
|
||||
data = {
|
||||
'ik': ik
|
||||
}
|
||||
response = await client.post('https://www.tivu.tv/getPrograms.ashx', cookies=cookies, headers=headers, data=data)
|
||||
soup = BeautifulSoup(response.text,'lxml')
|
||||
tr_element = soup.find('tr', class_='in_onda')
|
||||
hour_range = tr_element.find_all('td')[0].text.strip()
|
||||
program_name = tr_element.find_all('td')[1].text.strip()
|
||||
description = hour_range + " " + program_name
|
||||
return description
|
||||
except Exception as e:
|
||||
print(e)
|
||||
description = f'Watch {id}'
|
||||
return description
|
||||
|
||||
|
||||
|
||||
async def epg_guide(id,client):
|
||||
import httpx
|
||||
try:
|
||||
if id in convert_bho_1:
|
||||
new_id = convert_bho_1[id]
|
||||
new_id = new_id.replace(" ","%20")
|
||||
response = await client.get(f"https://lorempizza-boh.hf.space/{new_id}/now")
|
||||
elif id in convert_bho_2:
|
||||
new_id = convert_bho_2[id]
|
||||
new_id = new_id.replace(" ","%20")
|
||||
response = await client.get(f"https://mammamia-urlo-boh2.hf.space/{new_id}/now")
|
||||
elif id in convert_bho_3:
|
||||
new_id = convert_bho_3[id]
|
||||
new_id = new_id.replace(" ","%20")
|
||||
response = await client.get(f"https://mammamia-urlo-boh3.hf.space/{new_id}/now")
|
||||
data = response.json()
|
||||
description = data['description'].replace("- EPG by epg-guide.com","").replace("No description","")
|
||||
title = data['title']
|
||||
print("MammaMia: EPG FOUND")
|
||||
return description,title
|
||||
except Exception as e:
|
||||
print(e)
|
||||
description = f'Watch {id}'
|
||||
title = ""
|
||||
return description,title
|
||||
|
||||
|
||||
|
||||
|
||||
#async def test_animeworld():
|
||||
async with httpx.AsyncClient() as client:
|
||||
test_id = "rai-news" # Replace with actual ID
|
||||
try:
|
||||
results = await epg_guide(test_id, client)
|
||||
print(results)
|
||||
except httpx.HTTPStatusError as e:
|
||||
print(f"HTTP error occurred: {e}")
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {e}")
|
||||
|
||||
#if __name__ == "__main__":
|
||||
import httpx
|
||||
import asyncio
|
||||
asyncio.run(test_animeworld())
|
||||
Reference in New Issue
Block a user