from tmdbv3api import TMDb, Movie, TV import requests import logging from bs4 import BeautifulSoup,SoupStrainer from datetime import datetime import dateparser from convert import get_TMDb_id_from_IMDb_id from info import get_info_tmdb, is_movie, get_info_imdb import config import re import json SW_DOMAIN = config.SW_DOMAIN def search(showname,season,episode,date,ismovie): if ismovie == 1: query = f'https://www.streamingwatch.{SW_DOMAIN}/wp-admin/admin-ajax.php' headers = { 'authority': f'www.streamingwatch.{SW_DOMAIN}', 'accept': '*/*', 'accept-language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7', 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', # 'cookie': 'wordpress_test_cookie=WP%20Cookie%20check', 'origin': f'https://www.streamingwatch.{SW_DOMAIN}', 'referer': f'https://www.streamingwatch.{SW_DOMAIN}', 'sec-ch-ua': '"Not-A.Brand";v="99", "Chromium";v="124"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Android"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', 'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'x-requested-with': 'XMLHttpRequest', } data = { 'action': 'data_fetch', 'keyword': showname, '_wpnonce': '3a1692f4e7', } cookies = { 'wordpress_test_cookie': 'WP%20Cookie%20check', } response = requests.post(query,cookies=cookies, headers=headers, data=data) soup = BeautifulSoup(response.content,'lxml') page_date = soup.find(id = 'search-cat-year').text.strip() if page_date == date: href = soup.find('a')['href'] response = requests.get(href) soup = BeautifulSoup(response.text,'lxml',parse_only=SoupStrainer('iframe')) iframe = soup.find('iframe') hdplayer = iframe.get('data-lazy-src') return hdplayer elif ismovie == 0: #Some series have the name in english so we first search with the categories option and then we use the obtained ID to get all the episodes id_response = requests.get(f'https://streamingwatch.{SW_DOMAIN}/wp-json/wp/v2/categories?search={showname}&_fields=id') data = json.loads(id_response.text) category_id = data[0]['id'] query = f'https://streamingwatch.{SW_DOMAIN}/wp-json/wp/v2/posts?categories={category_id}&per_page=100' response = requests.get(query) data_json = response.text data = json.loads(data_json) for entry in data: if f"stagione-{season}-episodio-{episode}" in entry["slug"]: content = entry["content"]["rendered"] #"content":{ # "rendered":"