diff options
author | François Schmidts <francois.schmidts@gmail.com> | 2015-10-11 12:18:07 +0200 |
---|---|---|
committer | François Schmidts <francois.schmidts@gmail.com> | 2016-01-26 23:46:30 +0100 |
commit | 5b7db9398abaacea241d9fcce7885457c562d7fa (patch) | |
tree | ef8982202ac7492892ba184c66c67a303c8cc795 /src/web/controllers/article.py | |
parent | assigning categories to feeds and articles (diff) | |
download | newspipe-5b7db9398abaacea241d9fcce7885457c562d7fa.tar.gz newspipe-5b7db9398abaacea241d9fcce7885457c562d7fa.tar.bz2 newspipe-5b7db9398abaacea241d9fcce7885457c562d7fa.zip |
a bit of cleaning, putting code where it belongs
Diffstat (limited to 'src/web/controllers/article.py')
-rw-r--r-- | src/web/controllers/article.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/web/controllers/article.py b/src/web/controllers/article.py index 3d8d5c01..72288a09 100644 --- a/src/web/controllers/article.py +++ b/src/web/controllers/article.py @@ -1,6 +1,8 @@ import re import logging +import sqlalchemy from sqlalchemy import func +from collections import Counter from bootstrap import db from .abstract import AbstractController @@ -70,3 +72,22 @@ class ArticleController(AbstractController): attrs['link']) return super().create(**attrs) + + def get_history(self, year=None, month=None): + """ + Sort articles by year and month. + """ + articles_counter = Counter() + articles = self.read() + if year is not None: + articles = articles.filter( + sqlalchemy.extract('year', Article.date) == year) + if month is not None: + articles = articles.filter( + sqlalchemy.extract('month', Article.date) == month) + for article in articles.all(): + if year is not None: + articles_counter[article.date.month] += 1 + else: + articles_counter[article.date.year] += 1 + return articles_counter, articles |