mirror of
https://github.com/vinefeeder/TwinVine.git
synced 2026-07-15 18:10:04 +02:00
Tidy
This commit is contained in:
@@ -60,7 +60,8 @@ class TPTV(Service):
|
||||
Then use a search term in preference to a url.
|
||||
|
||||
Dealing with COLLECTION:
|
||||
In envied, any url with COLLECTION in capitals will attempt to list the whole.
|
||||
In envied, any url with COLLECTION in capitals will attempt to list the whole collection.
|
||||
|
||||
In vinefeeder, COLLECTION is ignored and the descriptive in the url is used as a search term.
|
||||
eg https://tptvencore.co.uk/details/COLLECTION/collection/01KRKTC8WZ7X584YPA5NBFYJSS/the-danziger-collection
|
||||
will be treated as a search for "the danziger collection" in vinefeeder, but will attempt to list the whole collection in envied.
|
||||
@@ -192,151 +193,6 @@ class TPTV(Service):
|
||||
print(f"Searching not implemented in Envied for TPTVencore. Please use VineFeeder instead.")
|
||||
return None
|
||||
|
||||
|
||||
'''def get_titles(self) -> Union[Movies, Series]:
|
||||
data = self.get_data(self.title)
|
||||
#ids = ",".join(data)
|
||||
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:138.0) Gecko/20100101 Firefox/138.0',
|
||||
'Accept': '*/*',
|
||||
'Accept-Language': 'en-GB,en;q=0.5',
|
||||
'Referer': 'https://tptvencore.co.uk/',
|
||||
'tenant': 'encore',
|
||||
'Origin': 'https://tptvencore.co.uk',
|
||||
'DNT': '1',
|
||||
'Connection': 'keep-alive',
|
||||
'Sec-Fetch-Dest': 'empty',
|
||||
'Sec-Fetch-Mode': 'cors',
|
||||
'Sec-Fetch-Site': 'cross-site',
|
||||
'Priority': 'u=4',
|
||||
}
|
||||
session_id = self.session.headers['session']
|
||||
headers['session'] = session_id
|
||||
se_pattern = re.compile(
|
||||
r"\(\s*S\s*(?P<series>\d+)\s*,\s*EP\s*(?P<episode>\d+)\s*\)",
|
||||
re.IGNORECASE
|
||||
)
|
||||
if len(data) > 1:
|
||||
# multiple items, treat as a series
|
||||
episodes = []
|
||||
for item_id in data:
|
||||
print(len(str(item_id)))
|
||||
if len(str(item_id)) > 20: # Skip item IDs that too long
|
||||
continue
|
||||
# Skip this item if it too long to be valid.
|
||||
|
||||
try: # two possible endpoints for item data, try both
|
||||
response = self.session.get(f'https://tptvencore.co.uk/api/core/catalog/item/{item_id}?locale=en', headers=headers)
|
||||
if response.status_code != 200:
|
||||
raise Exception()
|
||||
except:
|
||||
try:
|
||||
response = self.session.get(f'https://tptvencore.co.uk/api/core/catalog/collection/{item_id}?locale=en', headers=headers)
|
||||
if response.status_code != 200:
|
||||
raise Exception()
|
||||
except:
|
||||
continue # next item if both endpoints fail, thus ignore.
|
||||
|
||||
|
||||
mydata = json.loads(response.text)
|
||||
|
||||
f = open("tptv_debug.json", "w")
|
||||
f.write(json.dumps(mydata, indent=4))
|
||||
f.close()
|
||||
console.print_json(data=mydata)
|
||||
exit(0)
|
||||
|
||||
item = mydata['data']
|
||||
title = mydata.get("title")
|
||||
# some series exist with season/episode info,(most do not),
|
||||
# so we try to extract it from the title if possible
|
||||
match = se_pattern.search(title)
|
||||
if match:
|
||||
season = int(match.group("series"))
|
||||
number = int(match.group("episode"))
|
||||
else:
|
||||
season = 0
|
||||
number = 0
|
||||
|
||||
episodes.append(
|
||||
Episode(
|
||||
id_=item["id"],
|
||||
service=self.__class__,
|
||||
title=title,
|
||||
season=season or 0,
|
||||
number=number or 0,
|
||||
name="",
|
||||
language="en",
|
||||
data=item,
|
||||
)
|
||||
)
|
||||
#return Series(episodes)
|
||||
else:
|
||||
try:
|
||||
response = self.session.get(f'https://tptvencore.co.uk/api/core/catalog/collection/{data[0]}?page=1&pageSize=20&locale=en', headers=headers)
|
||||
|
||||
if response.status_code != 200:
|
||||
raise ConnectionRefusedError()
|
||||
except:
|
||||
try:
|
||||
response = self.session.get(f'https://tptvencore.co.uk/api/core/catalog/item/{data[0]}?locale=en', headers=headers)
|
||||
except:
|
||||
raise ConnectionError("Failed to retrieve title data")
|
||||
|
||||
mydata = json.loads(response.text)
|
||||
titles = mydata['data']
|
||||
|
||||
episodes = []
|
||||
season = 0
|
||||
number = 0
|
||||
if (len(mydata)) > 1:
|
||||
for item in titles:
|
||||
title = item["title"]
|
||||
# some series exist with season/episode info,(most do not),
|
||||
# so we try to extract it from the title if possible
|
||||
match = se_pattern.search(title)
|
||||
if match:
|
||||
season = int(match.group("series"))
|
||||
number = int(match.group("episode"))
|
||||
|
||||
episodes.append(
|
||||
Episode(
|
||||
id_=item["id"],
|
||||
service=self.__class__,
|
||||
title=title,
|
||||
season=season or 0,
|
||||
number=number or 0,
|
||||
|
||||
name="",
|
||||
language="en",
|
||||
data=item,
|
||||
)
|
||||
)
|
||||
else:
|
||||
# single item, treat as a movie
|
||||
item = titles
|
||||
title = item["title"]
|
||||
# some series exist with season/episode info,(most do not),
|
||||
# so we try to extract it from the title if possible
|
||||
match = se_pattern.search(title)
|
||||
if match:
|
||||
season = int(match.group("series"))
|
||||
number = int(match.group("episode"))
|
||||
episodes.append(
|
||||
Episode(
|
||||
id_=item["id"],
|
||||
service=self.__class__,
|
||||
title=item["title"],
|
||||
season=season or 0,
|
||||
number=number or 0,
|
||||
name="",
|
||||
language="en",
|
||||
data=item,
|
||||
)
|
||||
)
|
||||
return Series(episodes)'''
|
||||
|
||||
def get_titles(self) -> Union[Movies, Series]:
|
||||
data = self.get_data(self.title)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user