diff options
author | François Schmidts <francois.schmidts@gmail.com> | 2015-01-20 17:20:07 +0100 |
---|---|---|
committer | François Schmidts <francois.schmidts@gmail.com> | 2015-03-03 22:22:46 +0100 |
commit | 5ce0ce0d57c9d9976a47a120ca6235b84ade236a (patch) | |
tree | 378862500c6ed0b5a7fadc8c3ac0fd2b24398ef1 /pyaggr3g470r/controllers/feed.py | |
parent | a first big refacto of the existing arch (diff) | |
download | newspipe-5ce0ce0d57c9d9976a47a120ca6235b84ade236a.tar.gz newspipe-5ce0ce0d57c9d9976a47a120ca6235b84ade236a.tar.bz2 newspipe-5ce0ce0d57c9d9976a47a120ca6235b84ade236a.zip |
first implementation of fetchable feeds
Diffstat (limited to 'pyaggr3g470r/controllers/feed.py')
-rw-r--r-- | pyaggr3g470r/controllers/feed.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pyaggr3g470r/controllers/feed.py b/pyaggr3g470r/controllers/feed.py index 5ada1a48..ce1c413f 100644 --- a/pyaggr3g470r/controllers/feed.py +++ b/pyaggr3g470r/controllers/feed.py @@ -1,6 +1,23 @@ +from datetime import datetime, timedelta from .abstract import AbstractController from pyaggr3g470r.models import Feed +DEFAULT_MAX_ERROR = 3 +DEFAULT_LIMIT = 5 + class FeedController(AbstractController): _db_cls = Feed + + def list_fetchable(self, max_error=DEFAULT_MAX_ERROR, limit=DEFAULT_LIMIT): + from pyaggr3g470r.controllers import UserController + now = datetime.now() + user = UserController(self.user_id).get(id=self.user_id) + max_last_refresh = now - timedelta(minutes=user.refresh_rate or 60) + feeds = [feed for feed in self.read(user_id=self.user_id, + error_count__le=max_error, + last_refreshed__lt=max_last_refresh).limit(limit)] + + self.update({'id__in': [feed.id for feed in feeds]}, + {'last_refreshed': now}) + return feeds |