1
0
mirror of https://github.com/aquatix/digimarks.git synced 2025-12-06 18:35:12 +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 requests
from flask import (Flask, abort, jsonify, redirect, render_template, request,
url_for)
from dateutil import tz
from feedgen.feed import FeedGenerator
from flask import (Flask, abort, jsonify, make_response, redirect,
render_template, request, url_for)
from peewee import * # noqa
from werkzeug.contrib.atom import AtomFeed
try:
# Python 3
@@ -960,23 +961,34 @@ def publictag_feed(tagkey):
Bookmark.tags.contains(this_tag.tag),
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:
entry = feed.add_entry()
updated_date = bookmark.modified_date
if not bookmark.modified_date:
updated_date = bookmark.created_date
bookmarktitle = '{} (no title)'.format(bookmark.url)
if bookmark.title:
bookmarktitle = bookmark.title
feed.add(
bookmarktitle,
content_type='html',
author='digimarks',
url=bookmark.url,
updated=updated_date,
published=bookmark.created_date
)
return feed.get_response()
entry.id(bookmark.url)
entry.title(bookmarktitle)
entry.link(href=bookmark.url)
entry.author(name='digimarks')
entry.pubdate(bookmark.created_date.replace(tzinfo=tz.tzlocal()))
entry.published(bookmark.created_date.replace(tzinfo=tz.tzlocal()))
entry.updated(updated_date.replace(tzinfo=tz.tzlocal()))
response = make_response(feed.atom_str(pretty=True))
response.headers.set('Content-Type', 'application/atom+xml')
return response
except PublicTag.DoesNotExist:
abort(404)

View File

@@ -4,26 +4,29 @@
#
# pip-compile requirements-dev.in
#
astroid==2.4.1 # via pylint
beautifulsoup4==4.9.0 # via bs4
astroid==2.4.2 # via pylint
beautifulsoup4==4.9.1 # via bs4
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
click==7.1.2 # via flask
feedgen==0.9.0 # 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
itsdangerous==1.1.0 # via flask
jinja2==2.11.2 # via flask
lazy-object-proxy==1.4.3 # via astroid
lxml==4.5.2 # via feedgen
markupsafe==1.1.1 # via jinja2
mccabe==0.6.1 # via pylint
peewee==3.13.3 # via -r requirements.in
pylint==2.5.2 # via -r requirements-dev.in
requests==2.23.0 # via -r requirements.in
six==1.14.0 # via astroid
soupsieve==2.0 # via beautifulsoup4
toml==0.10.0 # via pylint
urllib3==1.25.9 # via requests
pylint==2.5.3 # via -r requirements-dev.in
python-dateutil==2.8.1 # via feedgen
requests==2.24.0 # via -r requirements.in
six==1.15.0 # via astroid, python-dateutil
soupsieve==2.0.1 # via beautifulsoup4
toml==0.10.1 # via pylint
urllib3==1.25.10 # via requests
werkzeug==1.0.1 # via flask
wrapt==1.12.1 # via astroid

View File

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

View File

@@ -4,18 +4,22 @@
#
# pip-compile requirements.in
#
beautifulsoup4==4.9.0 # via bs4
beautifulsoup4==4.9.1 # via bs4
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
click==7.1.2 # via flask
feedgen==0.9.0 # 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
jinja2==2.11.2 # via flask
lxml==4.5.2 # via feedgen
markupsafe==1.1.1 # via jinja2
peewee==3.13.3 # via -r requirements.in
requests==2.23.0 # via -r requirements.in
soupsieve==2.0 # via beautifulsoup4
urllib3==1.25.9 # via requests
werkzeug==0.16.1 # via flask
python-dateutil==2.8.1 # via feedgen
requests==2.24.0 # via -r requirements.in
six==1.15.0 # via python-dateutil
soupsieve==2.0.1 # via beautifulsoup4
urllib3==1.25.10 # via requests
werkzeug==1.0.1 # via flask