mirror of
https://github.com/aquatix/digimarks.git
synced 2025-12-06 19:45:12 +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 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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
# Core application
|
||||
flask
|
||||
peewee
|
||||
|
||||
# Fetch title etc from links
|
||||
bs4
|
||||
requests
|
||||
|
||||
# Generate (atom) feeds for tags and such
|
||||
feedgen
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user