1
0
mirror of https://github.com/aquatix/digimarks.git synced 2025-12-06 20:55:10 +01:00

Replaced deprecated AtomFeed by feedgen; some dep updates

This commit is contained in:
2020-07-28 14:52:44 +02:00
parent 315c664fcc
commit 7a1bc11004
4 changed files with 55 additions and 30 deletions

View File

@@ -10,10 +10,11 @@ import sys
import bs4 import bs4
import requests import requests
from flask import (Flask, abort, jsonify, redirect, render_template, request, from dateutil import tz
url_for) from feedgen.feed import FeedGenerator
from flask import (Flask, abort, jsonify, make_response, redirect,
render_template, request, url_for)
from peewee import * # noqa from peewee import * # noqa
from werkzeug.contrib.atom import AtomFeed
try: try:
# Python 3 # Python 3
@@ -960,23 +961,34 @@ def publictag_feed(tagkey):
Bookmark.tags.contains(this_tag.tag), Bookmark.tags.contains(this_tag.tag),
Bookmark.status == Bookmark.VISIBLE Bookmark.status == Bookmark.VISIBLE
) )
feed = AtomFeed(this_tag.tag, feed_url=request.url, url=make_external(url_for('publictag_page', tagkey=tagkey)))
feed = FeedGenerator()
feed.title(this_tag.tag)
feed.id(request.url)
feed.link(href=request.url, rel='self')
feed.link(href=make_external(url_for('publictag_page', tagkey=tagkey)))
for bookmark in bookmarks: for bookmark in bookmarks:
entry = feed.add_entry()
updated_date = bookmark.modified_date updated_date = bookmark.modified_date
if not bookmark.modified_date: if not bookmark.modified_date:
updated_date = bookmark.created_date updated_date = bookmark.created_date
bookmarktitle = '{} (no title)'.format(bookmark.url) bookmarktitle = '{} (no title)'.format(bookmark.url)
if bookmark.title: if bookmark.title:
bookmarktitle = bookmark.title bookmarktitle = bookmark.title
feed.add(
bookmarktitle, entry.id(bookmark.url)
content_type='html', entry.title(bookmarktitle)
author='digimarks', entry.link(href=bookmark.url)
url=bookmark.url, entry.author(name='digimarks')
updated=updated_date, entry.pubdate(bookmark.created_date.replace(tzinfo=tz.tzlocal()))
published=bookmark.created_date entry.published(bookmark.created_date.replace(tzinfo=tz.tzlocal()))
) entry.updated(updated_date.replace(tzinfo=tz.tzlocal()))
return feed.get_response()
response = make_response(feed.atom_str(pretty=True))
response.headers.set('Content-Type', 'application/atom+xml')
return response
except PublicTag.DoesNotExist: except PublicTag.DoesNotExist:
abort(404) abort(404)

View File

@@ -4,26 +4,29 @@
# #
# pip-compile requirements-dev.in # pip-compile requirements-dev.in
# #
astroid==2.4.1 # via pylint astroid==2.4.2 # via pylint
beautifulsoup4==4.9.0 # via bs4 beautifulsoup4==4.9.1 # via bs4
bs4==0.0.1 # via -r requirements.in bs4==0.0.1 # via -r requirements.in
certifi==2020.4.5.1 # via requests certifi==2020.6.20 # via requests
chardet==3.0.4 # via requests chardet==3.0.4 # via requests
click==7.1.2 # via flask click==7.1.2 # via flask
feedgen==0.9.0 # via -r requirements.in
flask==1.1.2 # via -r requirements.in flask==1.1.2 # via -r requirements.in
idna==2.9 # via requests idna==2.10 # via requests
isort==4.3.21 # via pylint isort==4.3.21 # via pylint
itsdangerous==1.1.0 # via flask itsdangerous==1.1.0 # via flask
jinja2==2.11.2 # via flask jinja2==2.11.2 # via flask
lazy-object-proxy==1.4.3 # via astroid lazy-object-proxy==1.4.3 # via astroid
lxml==4.5.2 # via feedgen
markupsafe==1.1.1 # via jinja2 markupsafe==1.1.1 # via jinja2
mccabe==0.6.1 # via pylint mccabe==0.6.1 # via pylint
peewee==3.13.3 # via -r requirements.in peewee==3.13.3 # via -r requirements.in
pylint==2.5.2 # via -r requirements-dev.in pylint==2.5.3 # via -r requirements-dev.in
requests==2.23.0 # via -r requirements.in python-dateutil==2.8.1 # via feedgen
six==1.14.0 # via astroid requests==2.24.0 # via -r requirements.in
soupsieve==2.0 # via beautifulsoup4 six==1.15.0 # via astroid, python-dateutil
toml==0.10.0 # via pylint soupsieve==2.0.1 # via beautifulsoup4
urllib3==1.25.9 # via requests toml==0.10.1 # via pylint
urllib3==1.25.10 # via requests
werkzeug==1.0.1 # via flask werkzeug==1.0.1 # via flask
wrapt==1.12.1 # via astroid wrapt==1.12.1 # via astroid

View File

@@ -1,4 +1,10 @@
# Core application
flask flask
peewee peewee
# Fetch title etc from links
bs4 bs4
requests requests
# Generate (atom) feeds for tags and such
feedgen

View File

@@ -4,18 +4,22 @@
# #
# pip-compile requirements.in # pip-compile requirements.in
# #
beautifulsoup4==4.9.0 # via bs4 beautifulsoup4==4.9.1 # via bs4
bs4==0.0.1 # via -r requirements.in bs4==0.0.1 # via -r requirements.in
certifi==2020.4.5.1 # via requests certifi==2020.6.20 # via requests
chardet==3.0.4 # via requests chardet==3.0.4 # via requests
click==7.1.2 # via flask click==7.1.2 # via flask
feedgen==0.9.0 # via -r requirements.in
flask==1.1.2 # via -r requirements.in flask==1.1.2 # via -r requirements.in
idna==2.9 # via requests idna==2.10 # via requests
itsdangerous==1.1.0 # via flask itsdangerous==1.1.0 # via flask
jinja2==2.11.2 # via flask jinja2==2.11.2 # via flask
lxml==4.5.2 # via feedgen
markupsafe==1.1.1 # via jinja2 markupsafe==1.1.1 # via jinja2
peewee==3.13.3 # via -r requirements.in peewee==3.13.3 # via -r requirements.in
requests==2.23.0 # via -r requirements.in python-dateutil==2.8.1 # via feedgen
soupsieve==2.0 # via beautifulsoup4 requests==2.24.0 # via -r requirements.in
urllib3==1.25.9 # via requests six==1.15.0 # via python-dateutil
werkzeug==0.16.1 # via flask soupsieve==2.0.1 # via beautifulsoup4
urllib3==1.25.10 # via requests
werkzeug==1.0.1 # via flask