oh shit dog, adding static and templates

graphs-n-shit
lza_menace 4 years ago
parent 4d9b37545d
commit b6aac85f48

@ -1,8 +1,6 @@
import json import json
from flask import Flask, request, session from flask import Flask, request, session
from flask import render_template, flash from flask import render_template, flash
from flask import make_response
from flask import jsonify
from flask_session import Session from flask_session import Session
from suchwow.models import Post, Profile, Comment, Notification, db from suchwow.models import Post, Profile, Comment, Notification, db
from suchwow.routes import auth, comment, post, profile from suchwow.routes import auth, comment, post, profile
@ -19,26 +17,25 @@ app.register_blueprint(auth.bp)
@app.route("/") @app.route("/")
def index(): def index():
page = request.args.get("page", "1") itp = 20
if page.isdigit() is False: page = request.args.get("page", 1)
try:
page = int(page)
except:
flash("Wow, wtf hackerman. Cool it.") flash("Wow, wtf hackerman. Cool it.")
page = 1 page = 1
posts = Post.select().order_by(Post.timestamp).paginate(int(page), 10) posts = Post.select().order_by(Post.timestamp.desc()).paginate(page, itp)
return render_template("index.html", posts=posts, page=page) total_pages = round(Post.select().count() / itp)
return render_template("index.html", posts=posts, page=page, total_pages=total_pages)
@app.route("/debug") @app.route("/about")
@login_required def about():
def debug(): return render_template("about.html")
return f"""
<h3>We are logged in!</h3>
<pre>{json.dumps(session["auth"], indent=4, sort_keys=True)}</pre><br>
<a href="/logout">Logout</a>
"""
@app.errorhandler(404) @app.errorhandler(404)
def not_found(error): def not_found(error):
return make_response(jsonify({"error": "Page not found"}), 404) return "nothin there, brah"
@app.cli.command("dbinit") @app.cli.command("dbinit")
def dbinit(): def dbinit():

@ -7,7 +7,7 @@ db = SqliteDatabase('data/sqlite.db')
class Post(Model): class Post(Model):
id = AutoField() id = AutoField()
title = CharField() title = CharField()
subtitle = CharField() text = CharField()
# submitter = ForeignKeyField(Profile, field=Profile.username) # submitter = ForeignKeyField(Profile, field=Profile.username)
submitter = CharField() submitter = CharField()
image_name = CharField() image_name = CharField()

@ -1,5 +1,5 @@
from os import path from os import path
from flask import render_template, Blueprint, request, session from flask import render_template, Blueprint, request, session, flash
from flask import send_from_directory, redirect, url_for, current_app from flask import send_from_directory, redirect, url_for, current_app
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from suchwow.models import Post from suchwow.models import Post
@ -42,7 +42,7 @@ def create():
# gen wallet # gen wallet
post = Post( post = Post(
title=post_title, title=post_title,
subtitle=request.form.get("subtitle", ""), text=request.form.get("text", ""),
submitter=session["auth"]["preferred_username"], submitter=session["auth"]["preferred_username"],
image_name=filename, image_name=filename,
account_index=0, account_index=0,
@ -54,4 +54,4 @@ def create():
@bp.route("/uploads/<path:filename>") @bp.route("/uploads/<path:filename>")
def uploaded_file(filename): def uploaded_file(filename):
return send_from_directory(current_app.config["UPLOAD_FOLDER"], filename) return send_from_directory(current_app.config["UPLOAD_FOLDER"], filename)

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,342 @@
/*!
* Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: transparent;
}
@-ms-viewport {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: none !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
dfn {
font-style: italic;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
a,
area,
button,
[role="button"],
input:not([type="range"]),
label,
select,
summary,
textarea {
-ms-touch-action: manipulation;
touch-action: manipulation;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #868e96;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: .5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,793 @@
body {
padding-top: 54px;
}
@media (min-width: 992px) {
body {
padding-top: 56px;
}
}
.center {
text-align: center;
margin: 0 auto 0 auto;
}
.navbar {
padding: .1rem 1rem;
}
.navbar .navbar-brand img#logo{
width: 32px;
height: 32px;
display: inline-block;
vertical-align: middle;
}
.navbar .navbar-brand img#text{
width:235px;
margin-top: -4px;
padding-top: 0px;
display: inline-block;
}
.navbar-nav .nav-link{
color: #fff;
font-weight: bold;
font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif
}
.container>div:first-child {
padding-top: 30px;
}
.mb-4, .my-4{
margin-top:0 !important;
}
.mt-4, .my-4 {
margin-top: 0rem !important;
}
.proposal-info-table td {
padding: .35rem !important;
}
.proposal_address {
white-space: pre-wrap;
padding: 2px;
border-radius: 2px;
margin-top: 6px;
font-weight: bold;
color: #ff0000;
font-size: 18px;
margin-bottom: 0;
}
.proposal_content blockquote {
background-color: #efefef;
padding: 8px;
}
.proposal_content h1, .proposal_content h2, .proposal_content h3, .proposal_content h4{
margin-bottom: 16px;
margin-top: 16px;
}
.proposal_content p {
margin-bottom: 0.5rem;
}
.proposal_content img {
margin-top:8px;
margin-bottom:8px;
max-width: 70%;
}
.proposal_content code {
background: #ebebeb;
padding: 2px;
}
.table td, .table th {
padding: 0.35rem;
}
/* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 100%;
}
body {
margin-bottom: 60px; /* Margin bottom by footer height */
font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;
background-image: url("/static/bg.png");
background-repeat: repeat;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
height: 30px;
line-height: 30px;
background-color: #f5f5f5;
}
.bg-dark {
background: linear-gradient(90deg, #d253c8, #ffa93e);
}
.navbar-dark .navbar-brand {
color: #fff;
font-size: 18pt;
margin-top: 0;
padding-top: 0;
margin-bottom: 0;
padding-bottom: 0;
text-shadow: 2px 2px #667ff952;
font-family: "Comic Sans MS", "Comic Sans", cursive;
}
.table-proposal td {
font-size: 15px;
}
.table-proposal tbody td:first-child{
word-break: break-word;
width: 40%;
}
.table-hover tbody tr:hover {
background-color: rgba(0,0,0,.055);
}
.table th, .table td {
border-top: 1px solid #00000029;
padding-top: .65rem;
}
.table-tilted{
-ms-transform: rotate(0.5deg);
-webkit-transform: rotate(0.5deg);
transform: rotate(0.5deg);
}
.table-tilted-v{
-ms-transform: rotate(-0.2deg);
-webkit-transform: rotate(-0.2deg);
transform: rotate(-0.2deg);
}
.table-no-header thead{
display: none;
}
.table-wow{
background-image: url(https://wownero.win/static/game-table-bg.png);
background-size: cover;
}
.table a{
color: #006400;
}
.table thead th {
border-bottom: 1px solid #00000029 !important;
border-top: none;
font-size: 14px;
}
.table tbody td.date {
max-width: 100px;
}
.table tbody td.user {
font-size: 14px;
}
.table tbody td{
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
color: #495057;
background-color: #fff;
border-left-color: #008926;
border-left-width: 2px;
border-top-color: #008926;
border-top-width: 1px;
border-right-color: #008926;
border-right-width: 1px;
}
.nav-tabs .nav-link {
border: 1px solid transparent;
border-top-left-radius: .25rem;
border-top-right-radius: .25rem;
border-bottom-color: #008926;
}
.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
border-color: #e9ecef #e9ecef #dee2e6;
}
.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
border-color: #00892630 #00892630 #008926;
}
a {
color: #008926;
}
.btn-group-toggle a{
color: white;
}
.btn-group-toggle a:hover{
text-decoration: none;
}
.btn-primary{
background-color: #28a745;
border-color: #28a745;
}
.btn-primary:hover{
color: #fff;
background-color: #1e7e34;
border-color: #1c7430;
}
.card-body {
background-color: #00000008;
}
.card {
background-color: #ffffff00;
border: 0px solid rgba(0,0,0,.125);
border-radius: .25rem;
}
.card-header {
padding: 0.5rem;
padding-left: 1.0rem;
font-size: 16px;
margin-bottom: 0;
background-color: rgba(0,0,0,.03);
background: linear-gradient(90deg, #d253c829, #ffa93e69);
/*background: linear-gradient(90deg, #40d61e1f, #ffa93e69);*/
border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0;
border-bottom: 1px solid #e6e6e6;
border-bottom: 0px;
}
.proposal_content{
background-color: #00000008;
padding: 1.25rem 1.25rem;
}
.form-control {
padding: .375rem .75rem;
font-size: 1rem;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #008926;
}
.form-group {
margin-bottom: 1rem;
}
.form-group:last-of-type {
margin-bottom:2.5rem;
}
/*fuku chrome*/
input {
outline:none;
}
input:focus {
outline: 0;
}
*:focus {
outline: none;
}
input[type="text"], textarea {
outline: none;
box-shadow:none !important;
border: 1px solid #008926 !important;
}
.navbar-dark .navbar-nav .nav-link {
color: white;
padding-top: 0.4rem;
padding-bottom: 0.4rem;
font-size: 15px;
padding-right: 1em;
}
.navbar-nav .nav-item {
line-height: 20px;
}
nav .nav-link{
color: white;
}
nav .nav-link .active{
text-shadow: none;
}
.proposal-info-table td{
border-top: 0;
}
.proposal-info-table td span.badge{
font-size:20px;
}
.table-proposal .progress {
max-width: 70px !important;
min-width: 50px !important;
float:right;
}
.table-proposal .progress-bar {
display: -ms-flexbox;
display: flex;
-ms-flex-pack: center;
justify-content: center;
color: #fff;
text-shadow: 1px 1px #000000;
text-align: center;
white-space: nowrap;
background-color: #009845;
transition: width .6s ease;
font-family: monospace;
padding: 6px;
}
#point-wow-left{
display: inline;
}
@media only screen and (max-width: 600px) {
.proposal-info-table tr:first-child>td, .proposal-info-table tr:first-child>td>span {
font-size: 28px !important;
font-weight: 100;
}
.navbar-dark .navbar-brand {
font-size: 13pt;
}
.proposal-info-table tr:first-child>td, .proposal-info-table tr:first-child>td>span {
font-size: 14px !important;
}
.proposal-info-table td span.badge {
font-size: 14px;
}
.proposal_content {
background-color: #00000008;
padding: 0.1rem 0.75rem;
}
.card-body{
padding: 0.5rem;
}
#point-wow-left{
display: none;
}
.table-proposal thead th#date, .table-proposal tbody td#date{
display: none;
}
.table-proposal, .table-proposal td{
font-size:14px !important;
}
.navbar-brand {
display: none;
}
.navbar-brand-mobile{
display: block !important;
color: white;
font-size:14px;
}
pre.proposal_address{
font-size:14px;
}
label {
font-size:12px !important;
}
}
@media only screen and (max-width: 768px) {
#point-wow-left {
display: none;
}
}
textarea.comment{
padding-left: 6px;
padding-right: 6px;
padding-bottom: 6px;
width: 100%;
max-width: 600px;
}
.votearrow {
width: 10px;
height: 10px;
border: 0px;
margin: 3px 2px 6px;
margin-right: 10px;
margin-top: 7px;
background: url(/static/grayarrow.gif) no-repeat;
}
span.username a{
font-family: Verdana, Geneva, sans-serif;
font-size: 12pt;
color: #828282;
}
.comment-container a.reply{
margin-bottom:2px;
font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;
font-size: 11pt;
text-decoration: underline;
color: black;
}
span.date_posted a{
color: #828282;
font-family: Verdana, Geneva, sans-serif;
font-size: 10pt;
margin-left:2px;
}
.comment-container .comment-container{
margin-top: 0.4rem !important;
}
.comment-container, .comment-container .comment-container{
margin-bottom: 0.4rem !important;
font-family: serif;
font-size: 16px;
}
span.username a.author{
color: #008926;
font-weight: bold;
}
:target {
background: linear-gradient(90deg, #ff606008, #ffa93e2b);
}
.form-admin{
border: 1px solid #b60000;
}
ul.b {
list-style-type: square;
padding-left: 1.0rem;
}
.media-body #comment{
word-break: break-all;
}
.api_documentation code{
background-color: #f3f3f3;
padding: 4px;
padding-top:2px;
padding-bottom:2px;
}
.api_documentation pre{
margin-top:0;
background-color: #f3f3f3;
padding: 4px;
font-size: 12px;
padding-left:8px;
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
.api_documentation .api_container hr{
margin-bottom: 14px;
margin-top: 12px;
}
.api_documentation .api_container{
margin-bottom: 60px;
}
.sidebar .card-body{
padding-top: 1rem;
padding-left: 1rem;
padding-right: 1rem;
font-size: 14px;
}
.sidebar .card-body ul.b{
margin-bottom:0;
}
.card-header {
border-radius: 10px 0 0 !important;
}
/* cyrillic-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-1.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-2.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-3.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-4.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-5.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-6.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(/static/fonts/roboto-7.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
.proposal-overview .table-proposal[data-status="4"] {
opacity: 0.4;
}
.proposal-overview .table-proposal[data-status="4"] thead th {
border-bottom: 1px solid #4b4b4b !important;
}
.proposal-overview .table-proposal[data-status="4"] td {
border-top: 1px solid #4b4b4b;
}
.proposal-overview .table-proposal[data-status="4"], .proposal-overview .table-proposal[data-status="4"] a {
color: #4b4b4b;
}
.comments-panel {
background-color: #ffffffb0;
}
.wow_addy{
color: red;
cursor: pointer;
font-family: monospace;
background: #f6f6f6;
font-size:14px;
}
.wow_addy[data-active="true"]{
cursor: default;
}
.proposal_qr{
margin-top:8px;
margin-bottom:8px;
}
.table-proposal tr {
background: #00000005;
}
.tx_item {
padding-top: 4px;
padding-bottom: 4px;
background: #ffffff80;
}
.tx_item .amount {
float:right;
font-weight:bold;
color:#890000;
}
.tx_item .amount.in {
color:#008926;
}
.tx_item .datetime {
font-size: 14px;
color: #999;
}
.tx_item .height b {
font-size:14px;
}
.container>.content h1,
.container>.content h2,
.container>.content h3,
.container>.content h4{
margin-bottom:20px;
}
.comment-container .media-body span.body {
word-wrap: break-word;
display: block;
margin-top: 4px;
margin-bottom: 4px;
}
.comment-container .media-body span.body img {
width: 100%;
max-width:500px;
max-height:600px;
margin-top:10px;
margin-bottom:10px;
display: block;
}
.navbar-brand {
margin-top:0
margin-bottom:0
padding-top:0
padding-bottom:0;
}
.card h5{
color: #0000009e;
font-size: 14px;
}
.wowtable{
width:100%;
display: block;
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
}
.wowtable .trow{
width: 100%;
height: 34px;
display: table;
}
.wowtable .trow .item{
float:right;
width:100px;
}
.wowtable .trow .item.one{
width:30%;
min-width: 200px;
}
.wowtable .trow .item.small{
max-width:100px;
text-align:right;
}
.wowtable .trow.header .item span {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 14px;
font-weight: 700;
padding-top:6px;
display: block;
}
.wowtable .trow .item.comments{
max-width:70px;
text-align: center;
}
.wowtable .trow .item.big{
display: inline-block;
text-align: left;
float: left;
width: auto;
max-width: 50%;
}
.wowtable .trow.header .item.big span{
padding-left:7px;
padding-top:3px;
font-size:18px;
word-break: break-word;
}
.trow.divider{
height:1px;
background: #00000029 !important;
}
.wowtable .trow.body .item span {
font-size:14px;
padding-top:6px;
display: block;
}
.wowtable .trow.body .item.big a {
display: block;
padding-left: 7px;
color: #006400;
padding-top: 6px;
font-size: 15px;
font-weight: 700;
word-break: break-word;
}
.wowtable .trow span.alignl{
text-align:left;
padding-left:7px;
}
@media (max-width: 990px) {
.wowtable .small{
display:none
}
.wowtable .trow .item.big{
max-width: 88%;
}
}
.subtext {
color: grey;
margin: 0;
}
.subtitle {
font-size: 1.2em;
}
.container {
margin: 0 auto;
display: block;
}
.flashes {
text-align: center;
font-size: 1.5em;
}
.navbar-nav {
flex-direction: row;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

@ -0,0 +1,12 @@
{% extends 'base.html' %}
{% block content %}
<div class="container" style="width:40%;text-align:center;">
<div class="about">
<h1>About</h1>
<p>Post memes! Have fun! <s>Comment and talk shit! Earn WOW!</s> (soon :tm:)</p>
</div>
</div>
{% endblock %}

@ -1,31 +1,70 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="en">
<head> <!--
░░░░░░░█▐▓▓░████▄▄▄█▀▄▓▓▓▌█ very website
░░░░░▄█▌▀▄▓▓▄▄▄▄▀▀▀▄▓▓▓▓▓▌█
░░░▄█▀▀▄▓█▓▓▓▓▓▓▓▓▓▓▓▓▀░▓▌█
░░█▀▄▓▓▓███▓▓▓███▓▓▓▄░░▄▓▐█▌ such html
░█▌▓▓▓▀▀▓▓▓▓███▓▓▓▓▓▓▓▄▀▓▓▐█
▐█▐██▐░▄▓▓▓▓▓▀▄░▀▓▓▓▓▓▓▓▓▓▌█▌ WOW
█▌███▓▓▓▓▓▓▓▓▐░░▄▓▓███▓▓▓▄▀▐█
█▐█▓▀░░▀▓▓▓▓▓▓▓▓▓██████▓▓▓▓▐█
▌▓▄▌▀░▀░▐▀█▄▓▓██████████▓▓▓▌█▌
▌▓▓▓▄▄▀▀▓▓▓▀▓▓▓▓▓▓▓▓█▓█▓█▓▓▌█▌ many memes
█▐▓▓▓▓▓▓▄▄▄▓▓▓▓▓▓█▓█▓█▓█▓▓▓▐█
-->
<head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SuchWOW!</title> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="name">
<meta name="description" content="description here"> <meta name="HandheldFriendly" content="True">
<meta name="keywords" content="keywords,here"> <meta name="MobileOptimized" content="320">
</head> <link rel="shortcut icon" href="/static/favicon.ico" type="image/x-icon" />
<body>
<a href="/">Home</a><br> <meta property="fb:app_id" content="0" />
{% if session.auth == None %} <meta property="og:image" content="https://funding.wownero.com/static/wowdoge-a.jpg" />
<a href="{{ url_for('auth.login') }}">Login</a><br> <meta property="og:description" content="SuchWow! Memes n shit!" />
{% else %} <meta property="og:url" content="https://suchwow.xyz/" />
<a href="{{ url_for('auth.logout') }}">Logout</a><br> <meta property="og:title" content="SuchWow!" />
{% endif %} <meta property="og:type" content="website" />
<hr>
{% with messages = get_flashed_messages() %} <meta name="viewport" content="width=device-width, initial-scale=1"/>
{% if messages %} <meta name="theme-color" content="#ffffff">
<ul class=flashes> <meta name="apple-mobile-web-app-title" content="SuchWow!">
{% for message in messages %} <meta name="application-name" content="SuchWow!">
<li>{{ message }}</li> <meta name="msapplication-TileColor" content="#da532c">
{% endfor %} <meta name="keywords" content="wownero, memes, monero, xmr, bitmonero, cryptocurrency, crypto money, mining crypto currencies, virtual currency">
</ul>
{% endif %} <link href="/static/css/bootstrap.min.css" rel="stylesheet">
{% endwith %} <link href="/static/css/bootstrap-grid.min.css" rel="stylesheet">
<hr> <link href="/static/css/bootstrap-reboot.min.css" rel="stylesheet">
{% block content %}{% endblock %} <link href="/static/css/wow.css" rel="stylesheet">
</body> </head>
<body>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul class=flashes>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
{% include 'navbar.html' %}
<!-- Page Content -->
{% block content %} {% endblock %}
<!-- Footer -->
<footer class="bg-dark footer">
<div class="container">
<p class="m-0 text-center text-white">SuchWow! 2020</p>
</div>
</footer>
</body>
</html> </html>

@ -1,20 +1,29 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<a href="{{ url_for('post.create') }}">Submit A Meme</a><br> <div class="container" style="text-align:center;">
<a href="{{ url_for('debug') }}">Debug</a>
{% block header %} <div class="title">
<h1>{% block title %}Latest Submissions{% endblock %}</h1> <h3>{% block title %}Latest Submissions{% endblock %}</h3>
{% endblock %} </div>
<ul> <ul>
{% for post in posts %} {% for post in posts %}
<li><a href="{{ url_for('post.read', id=post.id) }}">{{ post.title }}</a></li> <li>#{{ post.id }} - <a href="{{ url_for('post.read', id=post.id) }}">{{ post.title }}</a> - {{ post.submitter }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
{{ page }}
{% if page > 1 %}
<a href="/?page={{ page - 1 }}" style="padding:1em;">Back</a>
{% endif %}
{% if not page == total_pages %}
<a href="/?page={{ page + 1 }}" style="padding:1em;">Next</a>
{% endif %}
</div>
{% endblock %} {% endblock %}

@ -0,0 +1,28 @@
<!-- 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">
<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">
<a class="nav-link" href="{{ url_for('auth.logout') }}">Logout</a>
</li>
{% endif %}
</ul>
</div>
</div>
</nav>

@ -1,12 +1,26 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
<title>Upload new File</title>
<h1>Upload new File</h1> <div class="container" style="width:40%;">
<form method=post enctype=multipart/form-data> <div class="submit">
<input type="text" name="title"><br> <h1>Submit A Meme</h1>
<input type="text" name="subtitle"><br> <form method=post enctype=multipart/form-data class="form-horizontal">
<input type=file name=file> <div class="form-group">
<input type=submit value=Submit> <label class="sr-only" for="inlineFormInput">Title</label>
</form> <input type="text" class="form-control mb-2 mr-sm-2 mb-sm-0" id="inlineFormInput" placeholder="Title" name="title">
</div>
<div class="form-group">
<label class="sr-only" for="inlineFormInput">Text</label>
<input type="text" class="form-control mb-2 mr-sm-2 mb-sm-0" id="inlineFormInput" placeholder="Text" name="text">
</div>
<div class="form-group">
<input type=file name=file>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</div>
{% endblock %} {% endblock %}

@ -1,19 +1,20 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %}
<h1>{% block title %}View Post{% endblock %}</h1>
{% endblock %}
{% block content %} {% block content %}
<div class="container" style="width:40%;">
<div class="post" style="text-align:center;">
<a href="/">< Go Back</a>
{% if post.hidden %} {% if post.hidden %}
You cannot see this post <h2>You cannot see this post</h2>
{% else %} {% else %}
<p>Submitter: {{ post.submitter }}</p> <h1>{{ post.title }}</h1>
<p>ID: {{ post.id }}</p> <p class="subtitle">{{ post.text }}</p>
<p>Title: {{ post.title }}</p> <img src="{{ url_for('post.uploaded_file', filename=post.image_name) }}" width=500/ style="margin-bottom:1em;border-radius:4px;">
<p>Subtitle: {{ post.subtitle }}</p> <p class="subtext">Submitted by <i>{{ post.submitter }}</i> at <i>{{ post.timestamp }}</i></p>
<p>Submitted: {{ post.timestamp }}</p>
<p>Image Name: {{ post.image_name }}</p>
<img src="{{ url_for('post.uploaded_file', filename=post.image_name) }}" width=500/>
{% endif %} {% endif %}
</div>
</div>
{% endblock %} {% endblock %}

Loading…
Cancel
Save