The branch, dharma has been updated
via 7f6c5eb2e8167ce0a4ef81543e7a34220cb16786 (commit)
from 56d837e09d7dfa5b85581e399ac1a695130aa4cc (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=7f6c5eb2e8167ce0a4ef81543e7a34220cb16786
commit 7f6c5eb2e8167ce0a4ef81543e7a34220cb16786
Author: spiff <[email protected]>
Date: Sat May 7 10:54:00 2011 +0200
[plugin.audio.podcatcher] updated to version 0.1.2
diff --git a/plugin.audio.podcatcher/addon.xml
b/plugin.audio.podcatcher/addon.xml
index 043858d..b513757 100644
--- a/plugin.audio.podcatcher/addon.xml
+++ b/plugin.audio.podcatcher/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="plugin.audio.podcatcher"
- version="0.1.1"
+ version="0.1.2"
name="AudioPodcatcher"
provider-name="Raptor 2101 [[email protected]]">
<requires>
diff --git a/plugin.audio.podcatcher/changelog.txt
b/plugin.audio.podcatcher/changelog.txt
index 1127c9c..7c09fea 100644
--- a/plugin.audio.podcatcher/changelog.txt
+++ b/plugin.audio.podcatcher/changelog.txt
@@ -1,3 +1,6 @@
+version 0.1.2 - FIX; "play unread items" now working properly again
+ FIX: progress bar display correct values
+ ADD: background downloader
version 0.1.1 - Improved Icon from freezy
version 0.1.0 - Bugfixing, Hardening and so on ...
opml-file to load is now changeable by addon-settings
diff --git a/plugin.audio.podcatcher/feedreader/__init__.py
b/plugin.audio.podcatcher/feedreader/__init__.py
index a7fabb2..2ec12e9 100644
--- a/plugin.audio.podcatcher/feedreader/__init__.py
+++ b/plugin.audio.podcatcher/feedreader/__init__.py
@@ -61,8 +61,6 @@ class Feed(object):
self.archiveFile=ArchiveFile(self.objectId);
self.feedItems = self.archiveFile.feedItems;
- for feedItem in self.feedItems:
- self.gui.log(feedItem.title);
self.lastLoad = self.archiveFile.lastLoad;
@@ -91,8 +89,6 @@ class Feed(object):
self.archiveFile=ArchiveFile(self.objectId);
self.feedItems = self.archiveFile.feedItems;
- for feedItem in self.feedItems:
- self.gui.log(feedItem.title);
self.lastLoad = self.archiveFile.lastLoad;
@@ -103,7 +99,6 @@ class Feed(object):
self.maxArticleNumber = stateObject.maxArticleNumber
def saveChanges(self):
- self.gui.log(self.archiveFile.archiveFile);
self.archiveFile.save();
def hasUnreadItems(self):
@@ -125,7 +120,7 @@ class Feed(object):
def displayMenu(self, path):
self.loadFeed();
for feedItem in self.feedItems:
- self.gui.buildMenuEntry(feedItem);
+ self.gui.buildMenuEntry(feedItem,len(self.feedItems));
def insertFeedItem(self,newItem):
i = 0
@@ -155,7 +150,7 @@ class Feed(object):
self.saveChanges();
else:
self.gui.play(self);
- #self.markRead();
+ self.markRead();
def markRead(self, path = []):
@@ -175,6 +170,7 @@ class Feed(object):
def checkArticleAge(self, articleDate):
articleAge = time.time() - time.mktime(articleDate);
articleAge = articleAge / 86400 #to days;
+
return articleAge < self.maxArticleAge;
def updatedNeeded(self):
diff --git a/plugin.audio.podcatcher/feedreader/archivefile.py
b/plugin.audio.podcatcher/feedreader/archivefile.py
index 264e0c9..e66b92c 100644
--- a/plugin.audio.podcatcher/feedreader/archivefile.py
+++ b/plugin.audio.podcatcher/feedreader/archivefile.py
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import xbmcaddon, os, pickle;
+import os, pickle;
from xml.dom import minidom
class FeedState(object):
diff --git a/plugin.audio.podcatcher/feedreader/opml.py
b/plugin.audio.podcatcher/feedreader/opml.py
index 5a82948..4bbc4f4 100644
--- a/plugin.audio.podcatcher/feedreader/opml.py
+++ b/plugin.audio.podcatcher/feedreader/opml.py
@@ -62,7 +62,7 @@ class OpmlFolder(object):
element.displayMenu(path);
else:
for element in self.elements:
- self.gui.buildMenuEntry(element);
+ self.gui.buildMenuEntry(element,len(self.elements));
def play(self, path):
if len(path) > 0:
@@ -94,6 +94,13 @@ class OpmlFolder(object):
for element in self.elements:
element.reload();
+ def load(self):
+ for element in self.elements:
+ if(type(element).__name__ == "OpmlFolder"):
+ element.load();
+ else:
+ element.loadFeed();
+
def hasUnreadItems(self):
for element in self.elements:
if(element.hasUnreadItems()):
@@ -144,3 +151,6 @@ class OpmlFile:
def reload(self, path):
self.opmlFolder.reload(path);
+ def load(self):
+ self.opmlFolder.load();
+
diff --git a/plugin.audio.podcatcher/feedreader/rss.py
b/plugin.audio.podcatcher/feedreader/rss.py
index f6648af..6e31932 100644
--- a/plugin.audio.podcatcher/feedreader/rss.py
+++ b/plugin.audio.podcatcher/feedreader/rss.py
@@ -24,12 +24,13 @@ findPicLink = re.compile("src=\".*?\"");
class RssFeed (Feed):
def updateFeed(self):
+ feedItems = [];
try:
xmlPage = self.loadPage(self.feedUrl);
xmlDocument = minidom.parseString(xmlPage);
counter = 0;
for itemNode in xmlDocument.getElementsByTagName("item"):
- try:
+ try:
feedItem = FeedItem();
feedItem.guid = self.readText(itemNode,"guid");
feedItem.title = self.readText(itemNode,"title");
@@ -38,19 +39,6 @@ class RssFeed (Feed):
dateString = self.readText(itemNode,"pubDate");
feedItem.date = self.parseDate(dateString);
- if(not self.checkArticleAge(feedItem.date)):
- break;
-
- eject = False;
- for i in range(counter,len(self.feedItems)):
- storedItem = self.feedItems[i];
- if(not storedItem.date < feedItem.date):
- eject =True;
- break;
-
- if(eject == True):
- break;
-
feedItem.author = self.readText(itemNode,"itunes:author");
feedItem.duration =
self.readText(itemNode,"itunes:duration").replace("00:","");
enclosures = itemNode.getElementsByTagName("enclosure")
@@ -79,12 +67,31 @@ class RssFeed (Feed):
feedItem.picture = "";
feedItem.readed = False;
- self.insertFeedItem(feedItem);
- counter += 1;
- if(counter>self.maxArticleNumber):
- break;
+ feedItems.append(feedItem);
except:
self.gui.log("Error while parsing item: %s"%itemNode.toxml());
+
+ sortedList = sorted(feedItems, key = lambda item:item.date,
reverse=True);
+
+ for feedItem in sortedList:
+ if(not self.checkArticleAge(feedItem.date)):
+ break;
+
+ eject = False;
+ for i in range(counter,len(self.feedItems)):
+ storedItem = self.feedItems[i];
+ if(not storedItem.date < feedItem.date):
+ eject =True;
+ break;
+
+ if(eject == True):
+ break;
+
+
+ self.insertFeedItem(feedItem);
+ counter += 1;
+ if(counter>self.maxArticleNumber):
+ break;
except:
self.gui.log("Error while processing %s"%self.feedUrl)
self.shrinkFeedItems();
diff --git a/plugin.audio.podcatcher/simplexbmc.py
b/plugin.audio.podcatcher/simplexbmc.py
index 26aab7d..1167ae5 100644
--- a/plugin.audio.podcatcher/simplexbmc.py
+++ b/plugin.audio.podcatcher/simplexbmc.py
@@ -62,7 +62,7 @@ class SimpleXbmcGui(object):
});
return liz;
- def buildMenuEntry(self, menuElement ):
+ def buildMenuEntry(self, menuElement, elementCount ):
if(self.path == ""):
path = "%d"%(self.counter);
else:
@@ -90,11 +90,10 @@ class SimpleXbmcGui(object):
]
liz.addContextMenuItems(contextMenuEntries,True)
u = "%s?path=%s&action=browse" % (sys.argv[0],path)
-
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
+
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True,totalItems
= elementCount)
self.counter+=1;
def play(self, playableObject):
- xbmc.executebuiltin("Playlist.Clear");
player = xbmc.Player();
playerItem = xbmcgui.ListItem(playableObject.title)
if(type(playableObject).__name__ == 'FeedItem'):
@@ -104,11 +103,12 @@ class SimpleXbmcGui(object):
items = [];
playableObject.getAllUnreadItems(items);
playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)
+ playlist.clear();
for item in items:
listItem = self.buildMediaItem(item,False);
playlist.add(url=item.link, listitem=listItem)
- player.play(playlist,playerItem);
+ player.play(playlist, playerItem);
xbmc.executebuiltin("ActivateWindow(musicplaylist)");
def openMenuContext(self):
@@ -117,6 +117,7 @@ class SimpleXbmcGui(object):
def closeMenuContext(self):
xbmcplugin.endOfDirectory(int(sys.argv[1]))
+
def refresh(self):
xbmc.executebuiltin("Container.Refresh")
-----------------------------------------------------------------------
Summary of changes:
plugin.audio.podcatcher/addon.xml | 2 +-
plugin.audio.podcatcher/changelog.txt | 3 +
plugin.audio.podcatcher/feedreader/__init__.py | 10 +---
plugin.audio.podcatcher/feedreader/archivefile.py | 2 +-
plugin.audio.podcatcher/feedreader/opml.py | 12 +++++-
plugin.audio.podcatcher/feedreader/rss.py | 43 ++++++++++++---------
plugin.audio.podcatcher/simplexbmc.py | 9 ++--
7 files changed, 49 insertions(+), 32 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons