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:
38
digimarks.py
38
digimarks.py
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user