diff --git a/woodwind/api.py b/woodwind/api.py index 62f5ee4..840c039 100644 --- a/woodwind/api.py +++ b/woodwind/api.py @@ -19,5 +19,5 @@ def forward_request(): 'code': result.status_code, 'content': result.text, 'content-type': result.headers.get('content-type'), - 'location': result.url, + 'location': result.headers.get('location'), }) diff --git a/woodwind/app.py b/woodwind/app.py index 382f4c5..73c8075 100644 --- a/woodwind/app.py +++ b/woodwind/app.py @@ -3,6 +3,7 @@ from .views import views from .api import api from config import Config import flask +import logging def create_app(): diff --git a/woodwind/extensions.py b/woodwind/extensions.py index b69ec53..8f60875 100644 --- a/woodwind/extensions.py +++ b/woodwind/extensions.py @@ -4,7 +4,7 @@ from flask.ext.sqlalchemy import SQLAlchemy db = SQLAlchemy() -micropub = MicropubClient(client_id='redwind-reader') +micropub = MicropubClient(client_id='http://reader.kylewm.com') login_mgr = LoginManager() login_mgr.login_view = 'login' diff --git a/woodwind/static/feed.js b/woodwind/static/feed.js index d1f50ed..7206a9b 100644 --- a/woodwind/static/feed.js +++ b/woodwind/static/feed.js @@ -26,7 +26,7 @@ $(function(){ '/_forward', '_url=' + encodeURIComponent(endpoint) + '&' + form.serialize(), function(result) { - if (result.code == 200) { + if (Math.floor(result.code / 100) == 2) { responseArea.html('Success!'); } else { responseArea.html('Failure'); diff --git a/woodwind/tasks.py b/woodwind/tasks.py index d23cf30..41abce6 100644 --- a/woodwind/tasks.py +++ b/woodwind/tasks.py @@ -62,9 +62,9 @@ def update_feed(feed_id): def process_feed_for_new_entries(session, feed): try: if feed.type == 'xml': - result = process_xml_feed_for_new_entries(session, feed) + result = list(process_xml_feed_for_new_entries(session, feed)) elif feed.type == 'html': - result = process_html_feed_for_new_entries(session, feed) + result = list(process_html_feed_for_new_entries(session, feed)) else: result = None return result diff --git a/woodwind/templates/base.jinja2 b/woodwind/templates/base.jinja2 index f442fd3..ddafd53 100644 --- a/woodwind/templates/base.jinja2 +++ b/woodwind/templates/base.jinja2 @@ -3,15 +3,19 @@ - + Woodwind {% block head %}{% endblock %}
+

Woodwind

+ {% if current_user.is_authenticated() %} -
{{ current_user.domain }}
+
{{ current_user.domain }} + (Logout) +
{% else %}
diff --git a/woodwind/views.py b/woodwind/views.py index e51a14e..7a550ee 100644 --- a/woodwind/views.py +++ b/woodwind/views.py @@ -9,6 +9,7 @@ import mf2py import mf2util import requests import urllib +import cgi views = flask.Blueprint('views', __name__) @@ -74,6 +75,12 @@ def edit_feed(): return flask.redirect(flask.url_for('.feeds')) +@views.route('/logout') +def logout(): + flask_login.logout_user() + return flask.redirect(flask.url_for('.index')) + + @views.route('/login') def login(): me = flask.request.args.get('me') @@ -81,7 +88,7 @@ def login(): return micropub.authorize( me, flask.url_for('.login_callback', _external=True), next_url=flask.request.args.get('next'), - scope='write') + scope='post') return flask.render_template('login.jinja2') @@ -89,11 +96,11 @@ def login(): @micropub.authorized_handler def login_callback(resp): if not resp.me: - flask.flash('Login error: ' + resp.error) + flask.flash(cgi.escape('Login error: ' + resp.error)) return flask.redirect(flask.url_for('.login')) if resp.error: - flask.flash('Warning: ' + resp.error) + flask.flash(cgi.escape('Warning: ' + resp.error)) domain = urllib.parse.urlparse(resp.me).netloc user = load_user(domain) @@ -129,7 +136,7 @@ def subscribe(): feeds = find_possible_feeds(origin) if not feeds: flask.flash('No feeds found for: ' + origin) - return flask.redirect(flask.url_for('.subscribe')) + return flask.redirect(flask.url_for('.index')) if len(feeds) > 1: return flask.render_template( 'select-feed.jinja2', origin=origin, feeds=feeds)