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

Reply via email to