Compare commits

...
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

4 Commits

@ -1,43 +1,63 @@
from flask import jsonify, Blueprint, url_for, request, abort from flask import jsonify, Blueprint, url_for, request, abort
from suchwow.models import Post from suchwow.models import Post
from suchwow import wownero from suchwow import wownero
from suchwow.utils.helpers import rw_cache, get_top_posters, get_top_posts
bp = Blueprint("api", "api")
@bp.route("/api/list") bp = Blueprint("api", "api")
def api_list():
limit = request.args.get('limit', 30)
offset = request.args.get('offset', 0) @bp.route("/api/list")
def api_list():
# Hacky way to convert query str value to int limit = request.args.get('limit', 30)
try: offset = request.args.get('offset', 0)
limit = int(limit)
offset = int(offset) # Hacky way to convert query str value to int
except: try:
abort(500, "Bleep bleep") limit = int(limit)
offset = int(offset)
if limit > 30: except:
limit = 30 abort(500, "Bleep bleep")
all_posts = [] if limit > 30:
posts = Post.select().where(Post.approved==True).order_by(Post.timestamp.desc()).limit(limit).offset(offset) limit = 30
for post in posts:
wallet = wownero.Wallet() all_posts = []
if wallet.connected: posts = Post.select().where(Post.approved == True).order_by(
address = wallet.get_address(account=post.account_index) Post.timestamp.desc()).limit(limit).offset(offset)
else: for post in posts:
address = '' wallet = wownero.Wallet()
if wallet.connected:
payload = { address = wallet.get_address(account=post.account_index)
'image': url_for('post.uploaded_file', filename=post.image_name, _external=True), else:
'submitter': post.submitter, address = ''
'address': address,
'title': post.title, payload = {
'text': post.text, 'image': url_for('post.uploaded_file', filename=post.image_name, _external=True),
'href': url_for('post.read', id=post.id, _external=True), 'submitter': post.submitter,
'id': post.id, 'address': address,
'timestamp': post.timestamp 'title': post.title,
} 'text': post.text,
all_posts.append(payload) 'href': url_for('post.read', id=post.id, _external=True),
return jsonify(all_posts) 'id': post.id,
'timestamp': post.timestamp
}
all_posts.append(payload)
return jsonify(all_posts)
@bp.route("/api/posters")
def api_posters():
posters = get_top_posters()
all_posters = {}
for poster, data in posters.items():
payload = {
"submitter": poster,
"posts": data["posts"],
"amount": data["amount"],
}
all_posters.append(payload)
return jsonify(posters)

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

@ -1,9 +1,9 @@
body { body {
background-image: url("/static/bg.png"); background-image: url("/static/bg.webp");
background-repeat: repeat; background-repeat: repeat;
} }
.current-page-btn { .current-page-btn {
color: blue; color: blue;
border: 1px blue solid; border: 1px blue solid;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -1,91 +1,49 @@
<nav class="navbar" role="navigation" aria-label="main navigation"> <nav class="navbar" role="navigation" aria-label="main navigation">
<div class="navbar-brand"> <div class="navbar-brand">
<a class="navbar-item" href="/"> <a class="navbar-item" href="/">
<img src="/static/wow_logo.png"> <img src="/static/wow_logo.webp">
</a> </a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample"> <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
</a> </a>
</div> </div>
<div id="navbarBasicExample" class="navbar-menu"> <div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start"> <div class="navbar-start">
<a class="navbar-item" href="{{ url_for('index') }}">Home</a> <a class="navbar-item" href="{{ url_for('index') }}">Home</a>
<div class="navbar-item has-dropdown is-hoverable"> <div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">Leaderboards</a> <a class="navbar-link">Leaderboards</a>
<div class="navbar-dropdown"> <div class="navbar-dropdown">
<a class="navbar-item" href="{{ url_for('leaderboard.top_posters') }}">Top Posters</a> <a class="navbar-item" href="{{ url_for('leaderboard.top_posters') }}">Top Posters</a>
<a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=1">Top Memes Last 1 Day</a> <a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=1">Top Memes Last 1 Day</a>
<a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=3">Top Memes Last 3 Days</a> <a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=3">Top Memes Last 3 Days</a>
<a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=7">Top Memes Last Week</a> <a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=7">Top Memes Last Week</a>
<a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=30">Top Memes Last Month</a> <a class="navbar-item" href="{{ url_for('leaderboard.top_posts') }}?days=30">Top Memes Last Month</a>
</div> </div>
</div> </div>
<a class="navbar-item" href="{{ url_for('about') }}">About</a> <a class="navbar-item" href="{{ url_for('about') }}">About</a>
<a class="navbar-item" href="{{ url_for('post.create') }}">Submit</a> <a class="navbar-item" href="{{ url_for('post.create') }}">Submit</a>
{% if session.auth %} {% if session.auth %}
<a class="navbar-item" style="color: orange;" href="{{ url_for('mod_queue') }}">Mods!</a> <a class="navbar-item" style="color: orange;" href="{{ url_for('mod_queue') }}">Mods!</a>
{% endif %} {% endif %}
</div> </div>
<div class="navbar-end"> <div class="navbar-end">
<div class="navbar-item"> <div class="navbar-item">
<div class="buttons"> <div class="buttons">
{% if not 'auth' in session %} {% if not 'auth' in session %}
<a class="button is-primary" href="https://login.wownero.com/developer/"><strong>Sign up</strong></a> <a class="button is-primary" href="https://login.wownero.com/developer/"><strong>Sign up</strong></a>
<a class="button is-light" href="{{ url_for('auth.login') }}">Log in</a> <a class="button is-light" href="{{ url_for('auth.login') }}">Log in</a>
{% else %} {% else %}
<a class="button is-primary" href="{{ url_for('profile.edit') }}">Profile ({{ session.auth.preferred_username }})</a> <a class="button is-primary" href="{{ url_for('profile.edit') }}">Profile ({{ session.auth.preferred_username }})</a>
<a class="button is-light" href="{{ url_for('auth.logout') }}">Logout</a> <a class="button is-light" href="{{ url_for('auth.logout') }}">Logout</a>
{% endif %} {% endif %}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</nav> </nav>
<!-- Navigation -->
<!-- <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<a class="navbar-brand" href="/">
<h3>SuchWow!</h3>
</a>
<div class="" id="">
<ul class="navbar-nav ml-auto">
{% if session.auth %}
<li class="nav-item">
</li>
{% endif %}
<li class="nav-item">
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('post.create') }}">Submit</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('about') }}">About</a>
</li>
{% if session.auth == None %}
<li class="nav-item">
<a class="nav-link" href="{{ url_for('auth.login') }}">Login</a>
</li>
{% else %}
<li class="nav-item">
{% if session.auth %}
<a class="nav-link" href="{{ url_for('profile.edit') }}">Profile ({{ session.auth.preferred_username }})</a>
{% endif %}
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('auth.logout') }}">Logout</a>
</li>
{% endif %}
</ul>
</div>
</div>
</nav> -->