Skip to content

Commit 9ffe620

Browse files
authored
Merge pull request #39 from MrServo/master
[OpenATVreader] v2.2 tiny improvements
2 parents efd0d9b + 9962f39 commit 9ffe620

2 files changed

Lines changed: 22 additions & 18 deletions

File tree

src/forumparser.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@ def getHTMLdata(self, url, timeout=(3.05, 6)):
4040
del response
4141
return errMsg, htmlData
4242
except exceptions.RequestException as errMsg:
43-
errMsg = str(errMsg)
44-
errMsg = errMsg[:errMsg.rfind(": ")]
45-
print(f"[{MODULE_NAME}] ERROR in class 'FparserHelper:getHTMLdata': {errMsg}")
43+
errMsg = str(errMsg).replace(atvpglobals.BASEURL.replace("https://", ""), "").replace("'", "").replace("/", "")
44+
print(f"[{MODULE_NAME}] ERROR in module 'getHTMLdata': {errMsg}")
4645
return errMsg, htmlData
4746

4847
def createThreadUrl(self, threadId, startPage=0):
@@ -69,7 +68,7 @@ def setPostKey(key, value, replacements=[]):
6968
try:
7069
xml = BeautifulSoup(htmlData, features="lxml") # .replace('&', '&') # work around BeautifulSoup bug
7170
except Exception as errMsg:
72-
print(f"[{MODULE_NAME}] ERROR in class 'FparserHelper:parseLatest': {errMsg}")
71+
print(f"[{MODULE_NAME}] ERROR in module 'parseLatest': {errMsg}")
7372
threadTitle = "aktuelle Themen"
7473
currPost = startPage
7574
topicList = xml.find("ul", {"class": "topiclist topics collapsible"})
@@ -108,15 +107,15 @@ def convert2int(valueStr, fallbackInt=0):
108107

109108
if not threadUrl:
110109
errMsg = "No threadUrl given."
111-
print(f"[{MODULE_NAME}] ERROR in class 'FparserHelper:parseThread': {errMsg}")
110+
print(f"[{MODULE_NAME}] ERROR in module 'parseThread': {errMsg}")
112111
return errMsg, {}
113112
errMsg, htmlData = fparser.getHTMLdata(threadUrl)
114113
if errMsg:
115114
return errMsg, {}
116115
try:
117116
xml = BeautifulSoup(htmlData, features="lxml") # .replace('&', '&') # work around BeautifulSoup bug
118117
except Exception as errMsg:
119-
print(f"[{MODULE_NAME}] ERROR in class 'FparserHelper:parseThread': {errMsg}")
118+
print(f"[{MODULE_NAME}] ERROR in module 'parseThread': {errMsg}")
120119
titleLine = xml.title.string.replace(" - openATV Forum", "") # "LCD4linux - Seite 150"
121120
foundpos = titleLine.rfind("Seite")
122121
threadTitle = titleLine[:foundpos - 3] if foundpos != -1 else titleLine
@@ -171,15 +170,15 @@ def setPostKey(key, value, replacements=[]):
171170
url = f"{atvpglobals.BASEURL}/viewtopic.php?p={postId}#p{postId}"
172171
else:
173172
errMsg = "Neither threadId nor postId given."
174-
print(f"[{MODULE_NAME}] ERROR in class 'FparserHelper:parseThread': {errMsg}")
173+
print(f"[{MODULE_NAME}] ERROR in module 'parseThread': {errMsg}")
175174
return errMsg, []
176175
errMsg, htmlData = fparser.getHTMLdata(url)
177176
if errMsg:
178177
return errMsg, []
179178
try:
180179
xml = BeautifulSoup(htmlData, features="lxml") # .replace('&', '&') # work around BeautifulSoup bug
181180
except Exception as errMsg:
182-
print(f"[{MODULE_NAME}] ERROR in class 'FparserHelper:parseThread': {errMsg}")
181+
print(f"[{MODULE_NAME}] ERROR in module 'parseThread': {errMsg}")
183182
for post in xml.find_all("div", class_=compile("post has-profile (.*?)")):
184183
pId = post.get("id", "").strip("profile")
185184
if postId != pId:

src/plugin.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -619,21 +619,26 @@ def __init__(self, session, threadLinks=[], favlink="", favMenu=False):
619619
self.offline = LoadPixmap(cached=True, path=statusFile) if exists(statusFile) else None
620620
copy2(join(self.PLUGINPATH, "icons/user_stat.png"), self.AVATARPATH)
621621
copy2(join(self.PLUGINPATH, "icons/unknown.png"), self.AVATARPATH)
622-
self.onShown.append(self.onShownFinished)
622+
errMsg = fparser.checkServerStatus()
623+
if errMsg:
624+
self.terminateTimer = eTimer() # in order to avoid E2 modal error
625+
self.terminateTimer.callback.append(boundFunction(self.terminatePlugin, errMsg))
626+
self.terminateTimer.start(200, True)
627+
else:
628+
self.onLayoutFinish.append(self.layoutFinished)
623629

624-
def onShownFinished(self):
630+
def layoutFinished(self):
625631
self.showPic(self["button_page"], join(self.PLUGINPATH, f"icons/key_updown_{self.RESOLUTION}.png"), show=False, scale=False)
626632
self.showPic(self["button_keypad"], join(self.PLUGINPATH, f"icons/keypad_{self.RESOLUTION}.png"), show=False, scale=False)
627633
self.updateYellowButton()
628-
errMsg = fparser.checkServerStatus()
629-
if errMsg:
630-
self.displayHTMLerror(errMsg)
631-
self.keyExit()
634+
if self.favlink or self.threadLink and self.threadLinks:
635+
callInThread(self.makeThread, self.displayHTMLerror)
632636
else:
633-
if self.favlink or self.threadLink and self.threadLinks:
634-
callInThread(self.makeThread, self.displayHTMLerror)
635-
else:
636-
callInThread(self.makeLatest, self.displayHTMLerror)
637+
callInThread(self.makeLatest, self.displayHTMLerror)
638+
639+
def terminatePlugin(self, errMsg):
640+
self.displayHTMLerror(errMsg)
641+
self.keyExit()
637642

638643
def displayHTMLerror(self, errMsg=""):
639644
if errMsg:

0 commit comments

Comments
 (0)