Skip to content

Commit f0478b3

Browse files
author
Michael Pivonka
authored
Merge pull request #3 from NathanPERIER/dev
Fix for SSL error parsing
2 parents b249843 + 12a7872 commit f0478b3

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

main.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from xml.etree import ElementTree
55
from tqdm.auto import tqdm
66
import os
7+
import re
78
import argparse
89

910
class PlexDownloader:
@@ -16,6 +17,8 @@ class PlexDownloader:
1617
base_url = ""
1718

1819
servers = {}
20+
21+
error_reg = re.compile(r"hostname '[^']+' doesn't match '\*([^']+)'")
1922

2023
def login(self):
2124
if self.token:
@@ -80,23 +83,25 @@ def _generate_baseurl(self):
8083
return url
8184
except requests.exceptions.SSLError as e:
8285
string_error = str(e)
83-
8486
if ".plex.direct" in string_error:
85-
subdomain = str(e).split("doesn't match")[1].lstrip("'* ").rstrip("'\")")
86-
87-
ip = server['address'].replace('.', '-')
88-
89-
url = "https://"+ip+subdomain+":"+server['port']
90-
91-
r = requests.get(url, headers=headers)
92-
93-
if r.status_code == 200:
94-
self.base_url = url
95-
print("Found Plex.Direct URL %s" % self.base_url)
96-
return url
97-
else:
98-
print("Couldn't find Direct.Plex url for Plex Media Server")
99-
return False
87+
error_match = self.error_reg.search(string_error)
88+
89+
if error_match is not None :
90+
91+
subdomain = error_match.group(1)
92+
93+
ip = server['address'].replace('.', '-')
94+
95+
url = "https://"+ip+subdomain+":"+server['port']
96+
r = requests.get(url, headers=headers)
97+
98+
if r.status_code == 200:
99+
self.base_url = url
100+
print("Found Plex.Direct URL %s" % self.base_url)
101+
return url
102+
103+
print("Couldn't find Direct.Plex url for Plex Media Server")
104+
return False
100105
else:
101106
print("Custom cert is enabled, don't know what to do.")
102107
return False
@@ -225,7 +230,6 @@ def download(self):
225230
print("Found %s servers" % server_count)
226231

227232
server = self.servers[self.server_hash]
228-
229233
print("Looking for Plex.Direct URL to %s" % server['name'])
230234
self._generate_baseurl()
231235

0 commit comments

Comments
 (0)