diff options
-rw-r--r-- | pyaggr3g470r/lib/article_utils.py | 8 | ||||
-rw-r--r-- | pyaggr3g470r/templates/admin/user.html | 4 | ||||
-rw-r--r-- | pyaggr3g470r/templates/feeds.html | 5 | ||||
-rw-r--r-- | pyaggr3g470r/templates/inactives.html | 9 | ||||
-rw-r--r-- | pyaggr3g470r/views/feed.py | 3 |
5 files changed, 20 insertions, 9 deletions
diff --git a/pyaggr3g470r/lib/article_utils.py b/pyaggr3g470r/lib/article_utils.py index 3c642167..79ac34f5 100644 --- a/pyaggr3g470r/lib/article_utils.py +++ b/pyaggr3g470r/lib/article_utils.py @@ -35,6 +35,8 @@ def extract_id(entry, keys=[('link', 'link'), def construct_article(entry, feed): + if hasattr(feed, 'dump'): # this way can be a sqlalchemy obj or a dict + feed = feed.dump() "Safe method to transorm a feedparser entry into an article" now = datetime.now() @@ -63,10 +65,10 @@ def construct_article(entry, feed): logger.warning("Unable to get the real URL of %s. Error: %s", article_link, error) - return {'feed_id': feed.id, - 'user_id': feed.user_id, + return {'feed_id': feed['id'], + 'user_id': feed['user_id'], 'entry_id': extract_id(entry).get('entry_id', None), - 'link': entry.get('link', feed.site_link), + 'link': entry.get('link', feed['site_link']), 'title': entry.get('title', 'No title'), 'readed': False, 'like': False, 'content': content, diff --git a/pyaggr3g470r/templates/admin/user.html b/pyaggr3g470r/templates/admin/user.html index e50741ee..21bcd6b6 100644 --- a/pyaggr3g470r/templates/admin/user.html +++ b/pyaggr3g470r/templates/admin/user.html @@ -23,7 +23,7 @@ <thead> <tr> <th>#</th> - <th>{{ _('Name') }}</th> + <th>{{ _('Title') }}</th> <th>{{ _('Feed link') }}</th> <th>{{ _('Site link') }}</th> <th>{{ _('(unread) articles') }}</th> @@ -34,7 +34,7 @@ {% for feed in user.feeds|sort(attribute="title") %} <tr> <td>{{ loop.index }}</td> - <td><a href="/feed/{{ feed.id }}">{{ feed.title }}</a></td> + <td><a href="{{ url_for("feed.feed", feed_id=feed.id) }}">{%if feed.icon%}<img src="{{ url_for('feed.icon', feed_id=feed.id) }}" width="16px" />{%endif%}{{ feed.title }}</a></td> <td>{{ feed.link }}</td> <td>{{ feed.site_link }}</td> <td>( {{ unread_article_count.get(feed.id, 0) }} ) {{ article_count.get(feed.id, 0) }}</td> diff --git a/pyaggr3g470r/templates/feeds.html b/pyaggr3g470r/templates/feeds.html index 789decf5..20e0cccb 100644 --- a/pyaggr3g470r/templates/feeds.html +++ b/pyaggr3g470r/templates/feeds.html @@ -28,7 +28,10 @@ <i class="glyphicon glyphicon-exclamation-sign" title="{{ _('Feed encountered too much errors.') }}"></i> {% endif %} </td> - <td><a href="{{ url_for("feed.feed", feed_id=feed.id) }}" {% if feed.description %}title="{{ feed.description }}"{% endif %}>{{ feed.title }}</a></td> + <td><a href="{{ url_for("feed.feed", feed_id=feed.id) }}" {% if feed.description %}title="{{ feed.description }}"{% endif %}> + {% if feed.icon %}<img src="{{ url_for('feed.icon', feed_id=feed.id) }}" width="16px" />{% endif %} + {{ feed.title }} + </a></td> <td><a href="{{ feed.site_link }}">{{ feed.site_link }}</a></td> <td>( {{ unread_article_count.get(feed.id, 0) }} ) {{ article_count.get(feed.id, 0) }}</td> <td> diff --git a/pyaggr3g470r/templates/inactives.html b/pyaggr3g470r/templates/inactives.html index 6a4ff055..eb546eca 100644 --- a/pyaggr3g470r/templates/inactives.html +++ b/pyaggr3g470r/templates/inactives.html @@ -9,8 +9,13 @@ <br /> {% if inactives != [] %} <ul class="list-group"> - {% for item in inactives %} - <li class="list-group-item"><a href="/feed/{{ item[0].id }}">{{ item[0].title }}</a> - {{ item[1].days }} {{ _('days') }}</li> + {% for feed, delta in inactives %} + <li class="list-group-item"> + <a href="{{ url_for('feed.feed', feed_id=feed.id) }}"> + {% if feed.icon %}<img src="{{ url_for('feed.icon', feed_id=feed.id) }}" width="16px" />{% endif %} + {{ feed.title }} + </a> - {{ delta.days }} {{ _('days') }} + </li> {% endfor %} </ul> {% else %} diff --git a/pyaggr3g470r/views/feed.py b/pyaggr3g470r/views/feed.py index 3556d7c7..18e110af 100644 --- a/pyaggr3g470r/views/feed.py +++ b/pyaggr3g470r/views/feed.py @@ -189,7 +189,8 @@ def process_form(feed_id=None): @feed_bp.route('/icon/<int:feed_id>', methods=['GET']) @login_required def icon(feed_id): - icon = FeedController(g.user.id).get(id=feed_id).icon + icon = FeedController(None if g.user.is_admin() else g.user.id)\ + .get(id=feed_id).icon etag = md5(icon.encode('utf8')).hexdigest() headers = {'Cache-Control': 'max-age=86400', 'ETag': etag} if request.headers.get('if-none-match') == etag: |