Author: dmeyer
Date: Sat Oct 13 07:39:45 2007
New Revision: 2856

Log:
small update improvements

Modified:
   trunk/feedmanager/src/__init__.py
   trunk/feedmanager/src/core.py

Modified: trunk/feedmanager/src/__init__.py
==============================================================================
--- trunk/feedmanager/src/__init__.py   (original)
+++ trunk/feedmanager/src/__init__.py   Sat Oct 13 07:39:45 2007
@@ -34,6 +34,7 @@
 
 # kaa imports
 import kaa.rpc
+import kaa.notifier.url
 
 # feedmanager imports
 import manager
@@ -46,20 +47,14 @@
         """
         Remove feed
         """
-        for c in manager.list_feeds():
-            if self.get('id') == c.id:
-                manager.remove_feed(c)
-                return True
-        return False
+        return remove_feed(self)
 
     def update(self, verbose=False):
         """
         Update feed
         """
-        for c in manager.list_feeds():
-            if self.get('id') == c.id:
-                return c.update(verbose)
-        return False
+        return update_feed(self, verbose)
+
 
 def list_feeds():
     """
@@ -78,6 +73,30 @@
     return Feed(manager.add_feed(url, destdir, download, num, 
keep).get_config())
 
 
+def remove_feed(feed):
+    """
+    Remove a feed.
+    """
+    if isinstance(feed, dict):
+        feed = feed.get('id')
+    for c in manager.list_feeds():
+        if feed == c.id:
+            manager.remove_feed(c)
+            return True
+    return False
+
+
+def update_feed(feed, verbose=False):
+    """
+    Update a feed.
+    """
+    if isinstance(feed, dict):
+        feed = feed.get('id')
+    for c in manager.list_feeds():
+        if feed == c.id:
+            return c.update(verbose)
+
+
 def set_database(database):
     """
     Set the database. Called by server at startup.

Modified: trunk/feedmanager/src/core.py
==============================================================================
--- trunk/feedmanager/src/core.py       (original)
+++ trunk/feedmanager/src/core.py       Sat Oct 13 07:39:45 2007
@@ -85,6 +85,7 @@
         self._download = True
         self._num = 0
         self._keep = True
+        self._updating = False
         if not os.path.isdir(destdir):
             os.makedirs(destdir)
         self.id = Feed.NEXT_ID
@@ -179,6 +180,10 @@
             sys.stdout.write("%s\r" % s.get_progressbar())
             sys.stdout.flush()
 
+        if self._updating:
+            log.error('feed %s is already updating', self.url)
+            yield False
+        self._updating = True
         log.info('update feed %s', self.url)
 
         # get directory information
@@ -260,7 +265,9 @@
             elif os.path.isfile(filename):
                 # delete file on disc
                 os.unlink(filename)
-
+        self._updating = False
+        yield True
+    
 
     @kaa.notifier.yield_execution()
     def remove(self):

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to