diff options
Diffstat (limited to 'podcast/src/plugin.py')
-rw-r--r-- | podcast/src/plugin.py | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/podcast/src/plugin.py b/podcast/src/plugin.py index 374f036..cd42050 100644 --- a/podcast/src/plugin.py +++ b/podcast/src/plugin.py @@ -212,7 +212,7 @@ class PodcastMovies(Screen): if self.working == False: if len(self.list) > 0:
idx = self["list"].getSelectionIndex()
- (url, length, type) = self.splitExtraInfo(self.movies[idx][2]) + (url, length, type) = self.splitExtraInfo(self.movies[idx][1]) if config.plugins.Podcast.buffer.value: file = url while file.__contains__("/"): @@ -249,19 +249,36 @@ class PodcastMovies(Screen): getPage(self.url).addCallback(self.showMovies).addErrback(self.error) def showMovies(self, page): - reonecat = re.compile(r'<title>(.+?)</title>.+?<description>(.+?)</description>.+?<pubDate>(.+?)</pubDate>.+?<enclosure(.+?)/>.+?', re.DOTALL)
- for title, description, pubDate, extra in reonecat.findall(page): - if title.startswith("<![CDATA["): - title = title[9:] - if title.endswith("]]>"): - title = title[:-3] - if description.__contains__("<![CDATA["): - idx = description.index("<![CDATA[") - description = description[idx+10:] - if description.endswith("]]>"): - description = description[:-3]
- self.list.append(encodeUrl(title))
- self.movies.append([description, pubDate, extra])
+ if page.__contains__("<itunes"): + reonecat = re.compile(r'<item>(.+?)</item>', re.DOTALL) + for item in reonecat.findall(page): + reonecat2 = re.compile(r'<title>(.+?)</title>.+?<description>(.+?)</description>.+?<enclosure(.+?)/>.+?', re.DOTALL)
+ for title, description, extra in reonecat2.findall(item): + if title.startswith("<![CDATA["): + title = title[9:] + if title.endswith("]]>"): + title = title[:-3] + if description.__contains__("<![CDATA["): + idx = description.index("<![CDATA[") + description = description[idx+10:] + if description.endswith("]]>"): + description = description[:-3]
+ self.list.append(encodeUrl(title))
+ self.movies.append([description, extra]) + else: + reonecat = re.compile(r'<title>(.+?)</title>.+?<description>(.+?)</description>.+?<enclosure(.+?)/>.+?', re.DOTALL)
+ for title, description, extra in reonecat.findall(page): + if title.startswith("<![CDATA["): + title = title[9:] + if title.endswith("]]>"): + title = title[:-3] + if description.__contains__("<![CDATA["): + idx = description.index("<![CDATA[") + description = description[idx+10:] + if description.endswith("]]>"): + description = description[:-3]
+ self.list.append(encodeUrl(title))
+ self.movies.append([description, extra])
self["list"].setList(self.list)
self.showInfo() self.working = False @@ -275,9 +292,8 @@ class PodcastMovies(Screen): if len(self.list) > 0:
idx = self["list"].getSelectionIndex()
description = self.movies[idx][0]
- pubDate = self.movies[idx][1]
- (url, length, type) = self.splitExtraInfo(self.movies[idx][2])
- self["info"].setText("%s: %s\n%s: %s %s: %s\n%s" % (_("Date"), pubDate, _("Length"), length, _("Type"), type, encodeUrl(description)))
+ (url, length, type) = self.splitExtraInfo(self.movies[idx][1])
+ self["info"].setText("%s: %s %s: %s\n%s" % (_("Length"), length, _("Type"), type, encodeUrl(description)))
def splitExtraInfo(self, info):
if info.__contains__('url="'):
|