diff --git a/suchwow/app.py b/suchwow/app.py index a42ff29..6c4c81c 100644 --- a/suchwow/app.py +++ b/suchwow/app.py @@ -8,7 +8,7 @@ from flask import render_template, flash, url_for from flask_session import Session from suchwow import config from suchwow.models import Post, Profile, Comment, Notification, db, Moderator -from suchwow.routes import auth, comment, post, profile, leaderboard +from suchwow.routes import auth, comment, post, profile, leaderboard, api from suchwow.utils.decorators import login_required, moderator_required from suchwow.utils.helpers import post_webhook from suchwow.reddit import make_post @@ -26,6 +26,7 @@ app.register_blueprint(auth.bp) app.register_blueprint(profile.bp) app.register_blueprint(comment.bp) app.register_blueprint(leaderboard.bp) +app.register_blueprint(api.bp) @app.route("/") def index(): diff --git a/suchwow/routes/api.py b/suchwow/routes/api.py new file mode 100644 index 0000000..8cb8d73 --- /dev/null +++ b/suchwow/routes/api.py @@ -0,0 +1,27 @@ +from flask import jsonify, Blueprint, url_for +from suchwow.models import Post +from suchwow import wownero + + +bp = Blueprint("api", "api") + +@bp.route("/api/list") +def api_list(): + all_posts = [] + posts = Post.select().where(Post.approved==True) + for post in posts: + wallet = wownero.Wallet() + if wallet.connected: + address = wallet.get_address(account=post.account_index) + else: + address = '' + + payload = { + 'image': url_for('post.uploaded_file', filename=post.image_name, _external=True), + 'submitter': post.submitter, + 'address': address, + 'title': post.title, + 'href': url_for('post.read', id=post.id, _external=True) + } + all_posts.append(payload) + return jsonify(all_posts)