From fca8ed8176fb640f4cd4ca5d429f421081cb795a Mon Sep 17 00:00:00 2001
From: lza_menace
Date: Thu, 10 Mar 2022 15:57:16 -0800
Subject: [PATCH] reskinning for tubbycats
---
Makefile | 3 +-
README.md | 39 +++++++++++-------
alembic/env.py | 8 ++--
...owx.py => 53c117fcef3f_init_tubbymemes.py} | 2 +-
conf/crontab | 4 +-
conf/nginx-site.conf | 14 +++----
conf/suchwowx.service | 26 ++++++------
env-example | 4 +-
manage.sh | 4 +-
{suchwowx => tubbymemes}/__init__.py | 0
{suchwowx => tubbymemes}/app.py | 4 +-
{suchwowx => tubbymemes}/cli/__init__.py | 0
{suchwowx => tubbymemes}/cli/cli.py | 8 ++--
{suchwowx => tubbymemes}/cli/mod.py | 4 +-
{suchwowx => tubbymemes}/config.py | 0
{suchwowx => tubbymemes}/factory.py | 10 ++---
{suchwowx => tubbymemes}/filters.py | 2 +-
{suchwowx => tubbymemes}/helpers.py | 8 ++--
{suchwowx => tubbymemes}/models.py | 4 +-
{suchwowx => tubbymemes}/routes/__init__.py | 0
{suchwowx => tubbymemes}/routes/api.py | 6 +--
{suchwowx => tubbymemes}/routes/meme.py | 8 ++--
{suchwowx => tubbymemes}/routes/meta.py | 6 +--
{suchwowx => tubbymemes}/routes/user.py | 2 +-
.../static/css/bulma.css.map | 0
.../static/css/bulma.min.css | 0
.../static/css/custom.css | 0
.../static/css/vendor/noty-relax.css | 0
.../static/css/vendor/noty.css | 0
.../static/css/vendor/unpoly-2.5.0.min.css | 0
.../static/css/vendor/viewer.min.css | 0
{suchwowx => tubbymemes}/static/favicon.ico | Bin
{suchwowx => tubbymemes}/static/img/logo.png | Bin
{suchwowx => tubbymemes}/static/js/main.js | 0
.../metamask-onboarding-1.0.1.bundle.js | 0
.../static/js/vendor/noty-3.2.0.js | 0
.../static/js/vendor/unpoly-2.5.0.min.js | 0
.../static/js/vendor/viewer-1.10.1.min.js | 0
.../static/js/vendor/web3-1.3.6.min.js | 0
{suchwowx => tubbymemes}/tasks/__init__.py | 0
{suchwowx => tubbymemes}/tasks/config.py | 4 +-
{suchwowx => tubbymemes}/templates/about.html | 2 +-
.../templates/includes/creator.html | 0
.../templates/includes/footer.html | 0
.../templates/includes/head.html | 12 +++---
.../templates/includes/meme_card.html | 0
.../templates/includes/navbar.html | 2 +-
.../templates/includes/scripts.html | 0
.../templates/includes/web3.html | 2 +-
{suchwowx => tubbymemes}/templates/index.html | 0
{suchwowx => tubbymemes}/templates/meme.html | 2 +-
.../templates/profile.html | 0
.../templates/publish.html | 0
.../templates/remotes.html | 2 +-
54 files changed, 100 insertions(+), 92 deletions(-)
rename alembic/versions/{53c117fcef3f_init_suchwowx.py => 53c117fcef3f_init_tubbymemes.py} (99%)
rename {suchwowx => tubbymemes}/__init__.py (100%)
rename {suchwowx => tubbymemes}/app.py (65%)
rename {suchwowx => tubbymemes}/cli/__init__.py (100%)
rename {suchwowx => tubbymemes}/cli/cli.py (97%)
rename {suchwowx => tubbymemes}/cli/mod.py (94%)
rename {suchwowx => tubbymemes}/config.py (100%)
rename {suchwowx => tubbymemes}/factory.py (86%)
rename {suchwowx => tubbymemes}/filters.py (95%)
rename {suchwowx => tubbymemes}/helpers.py (92%)
rename {suchwowx => tubbymemes}/models.py (98%)
rename {suchwowx => tubbymemes}/routes/__init__.py (100%)
rename {suchwowx => tubbymemes}/routes/api.py (97%)
rename {suchwowx => tubbymemes}/routes/meme.py (97%)
rename {suchwowx => tubbymemes}/routes/meta.py (95%)
rename {suchwowx => tubbymemes}/routes/user.py (90%)
rename {suchwowx => tubbymemes}/static/css/bulma.css.map (100%)
rename {suchwowx => tubbymemes}/static/css/bulma.min.css (100%)
rename {suchwowx => tubbymemes}/static/css/custom.css (100%)
rename {suchwowx => tubbymemes}/static/css/vendor/noty-relax.css (100%)
rename {suchwowx => tubbymemes}/static/css/vendor/noty.css (100%)
rename {suchwowx => tubbymemes}/static/css/vendor/unpoly-2.5.0.min.css (100%)
rename {suchwowx => tubbymemes}/static/css/vendor/viewer.min.css (100%)
rename {suchwowx => tubbymemes}/static/favicon.ico (100%)
rename {suchwowx => tubbymemes}/static/img/logo.png (100%)
rename {suchwowx => tubbymemes}/static/js/main.js (100%)
rename {suchwowx => tubbymemes}/static/js/vendor/metamask-onboarding-1.0.1.bundle.js (100%)
rename {suchwowx => tubbymemes}/static/js/vendor/noty-3.2.0.js (100%)
rename {suchwowx => tubbymemes}/static/js/vendor/unpoly-2.5.0.min.js (100%)
rename {suchwowx => tubbymemes}/static/js/vendor/viewer-1.10.1.min.js (100%)
rename {suchwowx => tubbymemes}/static/js/vendor/web3-1.3.6.min.js (100%)
rename {suchwowx => tubbymemes}/tasks/__init__.py (100%)
rename {suchwowx => tubbymemes}/tasks/config.py (62%)
rename {suchwowx => tubbymemes}/templates/about.html (96%)
rename {suchwowx => tubbymemes}/templates/includes/creator.html (100%)
rename {suchwowx => tubbymemes}/templates/includes/footer.html (100%)
rename {suchwowx => tubbymemes}/templates/includes/head.html (73%)
rename {suchwowx => tubbymemes}/templates/includes/meme_card.html (100%)
rename {suchwowx => tubbymemes}/templates/includes/navbar.html (98%)
rename {suchwowx => tubbymemes}/templates/includes/scripts.html (100%)
rename {suchwowx => tubbymemes}/templates/includes/web3.html (98%)
rename {suchwowx => tubbymemes}/templates/index.html (100%)
rename {suchwowx => tubbymemes}/templates/meme.html (99%)
rename {suchwowx => tubbymemes}/templates/profile.html (100%)
rename {suchwowx => tubbymemes}/templates/publish.html (100%)
rename {suchwowx => tubbymemes}/templates/remotes.html (96%)
diff --git a/Makefile b/Makefile
index 93fa92f..7a1b381 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@ shell:
bash manage.sh shell
init:
+ mkdir -p data
.venv/bin/alembic upgrade head
dev:
@@ -40,4 +41,4 @@ sync-remotes:
./manage.sh sync-remotes
kill:
- pkill -e -f suchwowx
+ pkill -e -f tubbymemes
diff --git a/README.md b/README.md
index 16987ce..ebb0eb5 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,10 @@
-# SuchWowX
+# tubbymemes
-This service is a continuation of SuchWow for the Wownero cryptocurrency project. It has been revamped to use Interplanetary Filesystem, server federation / content sharing, and optionally Avalanche network via a smart contract with some useful features (if you're into that). It's a decentralized application (dApp); it's preferred you run it locally and bootstrap the services on your own machine.
+Meme site dedicated to the best project on the Etherium network ;)
+
+https://tubbycats.xyz/about
+
+Memes are backed by Interplanetary Filesystem, server federation / content sharing, and optionally Avalanche network via a smart contract with some useful features (if you're into that). It's a decentralized application (dApp); it's preferred you run it locally and bootstrap the services on your own machine.
## Setup
@@ -18,6 +22,9 @@ I have provided a `Makefile` with some helpful stuff...make sure to install `mak
# install python virtual environment and install application dependencies
make setup
+# setup secrets
+cp env-example .env && vim .env
+
# install ipfs
sudo make install-ipfs
@@ -64,7 +71,7 @@ openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
cp conf/nginx-ssl.conf /etc/nginx/conf.d/ssl.conf
# setup nginx site config from this repo
-cp conf/nginx-site.conf /etc/nginx/sites-enabled/suchwowx.conf
+cp conf/nginx-site.conf /etc/nginx/sites-enabled/tubbymemes.conf
# generate TLS certificates
service nginx stop
@@ -82,24 +89,24 @@ systemctl daemon-reload
systemctl enable ipfs
systemctl start ipfs
-# setup suchwowx service account and storage location
-useradd -m suchwowx
-mkdir -p /opt/suchwowx
+# setup tubbymemes service account and storage location
+useradd -m tubbymemes
+mkdir -p /opt/tubbymemes
-# setup suchwowx application
-git clone https://github.com/lalanza808/suchwowx /opt/suchwowx
-cp /opt/suchwowx/env-example /opt/suchwowx/.env
-vim /opt/suchwowx/.env
-chown -R suchwowx:suchwowx /opt/suchwowx
+# setup tubbymemes application
+git clone https://github.com/lalanza808/tubbymemes /opt/tubbymemes
+cp /opt/tubbymemes/env-example /opt/tubbymemes/.env
+vim /opt/tubbymemes/.env
+chown -R tubbymemes:tubbymemes /opt/tubbymemes
-# setup suchwowx service daemon
-cp conf/suchwowx.service /etc/systemd/system/suchwowx.service
+# setup tubbymemes service daemon
+cp conf/tubbymemes.service /etc/systemd/system/tubbymemes.service
systemctl daemon-reload
-systemctl enable suchwowx
-systemctl start suchwowx
+systemctl enable tubbymemes
+systemctl start tubbymemes
# setup ongoing syncing with remote servers and Avalanche network
-crontab -u suchwowx conf/crontab
+crontab -u tubbymemes conf/crontab
```
At this point you should have Nginx web server running with TLS certificates generated with Letsencrypt/Certbot, Systemd services for IPFS daemon for serving files and Gunicorn for serving the Flask application.
diff --git a/alembic/env.py b/alembic/env.py
index c2a85cf..9fb307e 100644
--- a/alembic/env.py
+++ b/alembic/env.py
@@ -4,9 +4,9 @@ from sqlalchemy import engine_from_config
from sqlalchemy import pool
from alembic import context
-from suchwowx.factory import db
-from suchwowx.models import *
-from suchwowx import config as swx_config
+from tubbymemes.factory import db
+from tubbymemes.models import *
+from tubbymemes import config as c
# this is the Alembic Config object, which provides
@@ -15,7 +15,7 @@ config = context.config
# this will overwrite the ini-file sqlalchemy.url path
# with secrets from our .env file (pulled via config.py)
-sqlalchemy_url = f'sqlite:///{swx_config.DATA_FOLDER}/sqlite.db'
+sqlalchemy_url = f'sqlite:///{c.DATA_FOLDER}/sqlite.db'
config.set_main_option('sqlalchemy.url', sqlalchemy_url)
# Interpret the config file for Python logging.
diff --git a/alembic/versions/53c117fcef3f_init_suchwowx.py b/alembic/versions/53c117fcef3f_init_tubbymemes.py
similarity index 99%
rename from alembic/versions/53c117fcef3f_init_suchwowx.py
rename to alembic/versions/53c117fcef3f_init_tubbymemes.py
index 8c0a53b..b275a82 100644
--- a/alembic/versions/53c117fcef3f_init_suchwowx.py
+++ b/alembic/versions/53c117fcef3f_init_tubbymemes.py
@@ -1,4 +1,4 @@
-"""init suchwowx
+"""init tubbymemes
Revision ID: 53c117fcef3f
Revises:
diff --git a/conf/crontab b/conf/crontab
index eaa8b94..477c63a 100644
--- a/conf/crontab
+++ b/conf/crontab
@@ -1,5 +1,5 @@
# Sync with remote servers specified by operator
-0 * * * * sh -c "cd /opt/suchwowx; ./manage.sh sync-remotes"
+0 * * * * sh -c "cd /opt/tubbymemes; ./manage.sh sync-remotes"
# Sync with Avalanche blockchain to import minted memes
-30 * * * * sh -c "cd /opt/suchwowx; ./manage.sh sync-avax"
+30 * * * * sh -c "cd /opt/tubbymemes; ./manage.sh sync-avax"
diff --git a/conf/nginx-site.conf b/conf/nginx-site.conf
index b59a79b..254fefa 100644
--- a/conf/nginx-site.conf
+++ b/conf/nginx-site.conf
@@ -1,16 +1,16 @@
# Redirect inbound http to https
server {
listen 80;
- server_name suchwowx.xyz;
- return 301 https://suchwowx.xyz$request_uri;
+ server_name tubbymemes.xyz;
+ return 301 https://tubbymemes.xyz$request_uri;
}
# Load SSL configs and serve SSL site
server {
listen 443 ssl;
- server_name suchwowx.xyz;
- error_log /var/log/nginx/suchwowx.xyz-error.log warn;
- access_log /var/log/nginx/suchwowx.xyz-access.log;
+ server_name tubbymemes.xyz;
+ error_log /var/log/nginx/tubbymemes.xyz-error.log warn;
+ access_log /var/log/nginx/tubbymemes.xyz-access.log;
client_body_in_file_only clean;
client_body_buffer_size 32K;
# set max upload size
@@ -39,6 +39,6 @@ server {
}
include conf.d/ssl.conf;
- ssl_certificate /etc/letsencrypt/live/suchwowx.xyz/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/suchwowx.xyz/privkey.pem;
+ ssl_certificate /etc/letsencrypt/live/tubbymemes.xyz/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/tubbymemes.xyz/privkey.pem;
}
diff --git a/conf/suchwowx.service b/conf/suchwowx.service
index ff58fcc..5671b46 100644
--- a/conf/suchwowx.service
+++ b/conf/suchwowx.service
@@ -1,24 +1,24 @@
[Unit]
-Description=SuchWowX meme service
-Documentation=https://suchwowx.xyz
+Description=tubbymemes meme service
+Documentation=https://tubbymemes.xyz
After=network.target
[Service]
PermissionsStartOnly = true
-PIDFile = /opt/suchwowx/data/gunicorn/suchwowx.pid
-User = suchwowx
-Group = suchwowx
-WorkingDirectory = /opt/suchwowx
-ExecStartPre = /bin/mkdir -p /opt/suchwowx/data/gunicorn
-ExecStartPre = /bin/chown -R suchwowx:suchwowx /opt/suchwowx/data/gunicorn
-Environment = FLASK_APP=suchwowx/app.py
+PIDFile = /opt/tubbymemes/data/gunicorn/tubbymemes.pid
+User = tubbymemes
+Group = tubbymemes
+WorkingDirectory = /opt/tubbymemes
+ExecStartPre = /bin/mkdir -p /opt/tubbymemes/data/gunicorn
+ExecStartPre = /bin/chown -R tubbymemes:tubbymemes /opt/tubbymemes/data/gunicorn
+Environment = FLASK_APP=tubbymemes/app.py
Environment = FLASK_SECRETS=config.py
Environment = FLASK_ENV=production
Environment = FLASK_DEBUG=0
-ExecStart = /opt/suchwowx/.venv/bin/gunicorn --bind 127.0.0.1:4000 "suchwowx.app:app" --log-file /opt/suchwowx/data/gunicorn/gunicorn.log --pid /opt/suchwowx/data/gunicorn/suchwowx.pid --reload
-ExecReload = /bin/kill -s HUP /opt/suchwowx/data/gunicorn/suchwowx.pid
-ExecStop = /bin/kill -s TERM /opt/suchwowx/data/gunicorn/suchwowx.pid
-ExecStopPost = /bin/rm -rf /opt/suchwowx/data/gunicorn/suchwowx.pid
+ExecStart = /opt/tubbymemes/.venv/bin/gunicorn --bind 127.0.0.1:4000 "tubbymemes.app:app" --log-file /opt/tubbymemes/data/gunicorn/gunicorn.log --pid /opt/tubbymemes/data/gunicorn/tubbymemes.pid --reload
+ExecReload = /bin/kill -s HUP /opt/tubbymemes/data/gunicorn/tubbymemes.pid
+ExecStop = /bin/kill -s TERM /opt/tubbymemes/data/gunicorn/tubbymemes.pid
+ExecStopPost = /bin/rm -rf /opt/tubbymemes/data/gunicorn/tubbymemes.pid
PrivateTmp = true
[Install]
diff --git a/env-example b/env-example
index 8396d96..928c2bc 100644
--- a/env-example
+++ b/env-example
@@ -1,6 +1,6 @@
# Production env - delete this line and unused config
SECRET_KEY=vrBWMR2$nCdPuZ27
-DATA_FOLDER=/opt/suchwowx/data
+DATA_FOLDER=/opt/tubbymemes/data
SERVER_NAME=myservername.com
AVAX_RPC=https://api.avax.network/ext/bc/C/rpc
TESTNET=0
@@ -8,5 +8,5 @@ WEB3_PROVIDER_URI=https://api.avax.network/ext/bc/C/rpc
# Test env - delete this line and unused config
SECRET_KEY=vrBWMR2$nCdPuZ27
-DATA_FOLDER=/opt/suchwowx/data
+DATA_FOLDER=/opt/tubbymemes/data
WEB3_PROVIDER_URI=https://api.avax-test.network/ext/bc/C/rpc
diff --git a/manage.sh b/manage.sh
index 21a93bc..ce62ad8 100755
--- a/manage.sh
+++ b/manage.sh
@@ -1,7 +1,7 @@
#!/bin/bash
source .venv/bin/activate
-export FLASK_APP=suchwowx/app.py
+export FLASK_APP=tubbymemes/app.py
export FLASK_SECRETS=config.py
export FLASK_DEBUG=1
export FLASK_ENV=development
@@ -18,7 +18,7 @@ then
pgrep -F $BASE/gunicorn.pid
if [[ $? != 0 ]]; then
gunicorn \
- --bind 127.0.0.1:4000 "suchwowx.app:app" \
+ --bind 127.0.0.1:4000 "tubbymemes.app:app" \
--daemon \
--log-file $BASE/gunicorn.log \
--pid $BASE/gunicorn.pid \
diff --git a/suchwowx/__init__.py b/tubbymemes/__init__.py
similarity index 100%
rename from suchwowx/__init__.py
rename to tubbymemes/__init__.py
diff --git a/suchwowx/app.py b/tubbymemes/app.py
similarity index 65%
rename from suchwowx/app.py
rename to tubbymemes/app.py
index ff7e668..fd40fc8 100644
--- a/suchwowx/app.py
+++ b/tubbymemes/app.py
@@ -1,7 +1,7 @@
from logging.config import dictConfig
-from suchwowx.factory import create_app
-from suchwowx import config
+from tubbymemes.factory import create_app
+from tubbymemes import config
app = create_app()
diff --git a/suchwowx/cli/__init__.py b/tubbymemes/cli/__init__.py
similarity index 100%
rename from suchwowx/cli/__init__.py
rename to tubbymemes/cli/__init__.py
diff --git a/suchwowx/cli/cli.py b/tubbymemes/cli/cli.py
similarity index 97%
rename from suchwowx/cli/cli.py
rename to tubbymemes/cli/cli.py
index a28a7fa..4f15733 100644
--- a/suchwowx/cli/cli.py
+++ b/tubbymemes/cli/cli.py
@@ -3,10 +3,10 @@ from flask import Blueprint
from secrets import token_urlsafe
from datetime import datetime
-from suchwowx.factory import db
-from suchwowx.helpers import get_eth_contract
-from suchwowx.models import Meme, User, Remote
-from suchwowx import config
+from tubbymemes.factory import db
+from tubbymemes.helpers import get_eth_contract
+from tubbymemes.models import Meme, User, Remote
+from tubbymemes import config
bp = Blueprint('cli', 'cli', cli_group=None)
diff --git a/suchwowx/cli/mod.py b/tubbymemes/cli/mod.py
similarity index 94%
rename from suchwowx/cli/mod.py
rename to tubbymemes/cli/mod.py
index d01e39c..d4ed2ea 100644
--- a/suchwowx/cli/mod.py
+++ b/tubbymemes/cli/mod.py
@@ -1,8 +1,8 @@
import click
from flask import Blueprint
-from suchwowx.models import Moderator, User
-from suchwowx.factory import db
+from tubbymemes.models import Moderator, User
+from tubbymemes.factory import db
bp = Blueprint('mod', 'mod')
diff --git a/suchwowx/config.py b/tubbymemes/config.py
similarity index 100%
rename from suchwowx/config.py
rename to tubbymemes/config.py
diff --git a/suchwowx/factory.py b/tubbymemes/factory.py
similarity index 86%
rename from suchwowx/factory.py
rename to tubbymemes/factory.py
index 21f875b..fb3e82c 100644
--- a/suchwowx/factory.py
+++ b/tubbymemes/factory.py
@@ -6,7 +6,7 @@ from flask_sqlalchemy import SQLAlchemy
from flask_mobility import Mobility
from web3 import Web3
-from suchwowx import config
+from tubbymemes import config
db = SQLAlchemy()
@@ -39,14 +39,14 @@ def create_app():
@login_manager.user_loader
def load_user(user_id):
- from suchwowx.models import User
+ from tubbymemes.models import User
user = User.query.get(user_id)
return user
with app.app_context():
- from suchwowx import filters
- from suchwowx.routes import api, meme, meta, user
- from suchwowx.cli import mod, cli
+ from tubbymemes import filters
+ from tubbymemes.routes import api, meme, meta, user
+ from tubbymemes.cli import mod, cli
app.register_blueprint(filters.bp)
app.register_blueprint(api.bp)
app.register_blueprint(meme.bp)
diff --git a/suchwowx/filters.py b/tubbymemes/filters.py
similarity index 95%
rename from suchwowx/filters.py
rename to tubbymemes/filters.py
index 1be4450..168225b 100644
--- a/suchwowx/filters.py
+++ b/tubbymemes/filters.py
@@ -1,7 +1,7 @@
from flask import Blueprint
from arrow import get as arrow_get
-from suchwowx import config
+from tubbymemes import config
bp = Blueprint('filters', 'filters')
diff --git a/suchwowx/helpers.py b/tubbymemes/helpers.py
similarity index 92%
rename from suchwowx/helpers.py
rename to tubbymemes/helpers.py
index 505c884..2551f50 100644
--- a/suchwowx/helpers.py
+++ b/tubbymemes/helpers.py
@@ -1,15 +1,15 @@
import ipfsApi
from eth_account.messages import encode_defunct
-from suchwowx.models import Meme
-from suchwowx.factory import w3
-from suchwowx import config
+from tubbymemes.models import Meme
+from tubbymemes.factory import w3
+from tubbymemes import config
def get_eth_contract():
"""
Return a web3 contract object with the currently
- deployed SuchWowX smart contract.
+ deployed tubbymemes smart contract.
"""
contract_abi = config.CONTRACT_ABI
contract_address = w3.toChecksumAddress(config.CONTRACT_ADDRESS)
diff --git a/suchwowx/models.py b/tubbymemes/models.py
similarity index 98%
rename from suchwowx/models.py
rename to tubbymemes/models.py
index ebcb78b..283c675 100644
--- a/suchwowx/models.py
+++ b/tubbymemes/models.py
@@ -5,8 +5,8 @@ from flask import url_for
from flask_login import login_user
from sqlalchemy import inspect
-from suchwowx.factory import db
-from suchwowx import config
+from tubbymemes.factory import db
+from tubbymemes import config
def rand_id():
diff --git a/suchwowx/routes/__init__.py b/tubbymemes/routes/__init__.py
similarity index 100%
rename from suchwowx/routes/__init__.py
rename to tubbymemes/routes/__init__.py
diff --git a/suchwowx/routes/api.py b/tubbymemes/routes/api.py
similarity index 97%
rename from suchwowx/routes/api.py
rename to tubbymemes/routes/api.py
index d39cbfe..1dbf46d 100644
--- a/suchwowx/routes/api.py
+++ b/tubbymemes/routes/api.py
@@ -3,9 +3,9 @@ from secrets import token_urlsafe
from flask import Blueprint, request, jsonify
from flask_login import current_user
-from suchwowx.factory import db
-from suchwowx.helpers import verify_signature
-from suchwowx.models import User, Meme
+from tubbymemes.factory import db
+from tubbymemes.helpers import verify_signature
+from tubbymemes.models import User, Meme
bp = Blueprint('api', 'api', url_prefix='/api/v1')
diff --git a/suchwowx/routes/meme.py b/tubbymemes/routes/meme.py
similarity index 97%
rename from suchwowx/routes/meme.py
rename to tubbymemes/routes/meme.py
index 082ef74..402376e 100644
--- a/suchwowx/routes/meme.py
+++ b/tubbymemes/routes/meme.py
@@ -7,10 +7,10 @@ from flask import redirect, flash, url_for
from flask_login import current_user
from web3 import Web3
-from suchwowx.models import Meme
-from suchwowx.helpers import upload_to_ipfs
-from suchwowx.factory import db
-from suchwowx import config
+from tubbymemes.models import Meme
+from tubbymemes.helpers import upload_to_ipfs
+from tubbymemes.factory import db
+from tubbymemes import config
bp = Blueprint('meme', 'meme')
diff --git a/suchwowx/routes/meta.py b/tubbymemes/routes/meta.py
similarity index 95%
rename from suchwowx/routes/meta.py
rename to tubbymemes/routes/meta.py
index 20053e7..8afa311 100644
--- a/suchwowx/routes/meta.py
+++ b/tubbymemes/routes/meta.py
@@ -2,9 +2,9 @@ from flask import Blueprint, render_template, send_from_directory
from flask import redirect, url_for, flash, request
from flask_login import logout_user, current_user
-from suchwowx.models import User, Remote
-from suchwowx.factory import db
-from suchwowx import config
+from tubbymemes.models import User, Remote
+from tubbymemes.factory import db
+from tubbymemes import config
bp = Blueprint('meta', 'meta')
diff --git a/suchwowx/routes/user.py b/tubbymemes/routes/user.py
similarity index 90%
rename from suchwowx/routes/user.py
rename to tubbymemes/routes/user.py
index 5c5364c..38168e9 100644
--- a/suchwowx/routes/user.py
+++ b/tubbymemes/routes/user.py
@@ -1,7 +1,7 @@
from flask import Blueprint, render_template
from flask import redirect, url_for
-from suchwowx.models import User
+from tubbymemes.models import User
bp = Blueprint('user', 'user')
diff --git a/suchwowx/static/css/bulma.css.map b/tubbymemes/static/css/bulma.css.map
similarity index 100%
rename from suchwowx/static/css/bulma.css.map
rename to tubbymemes/static/css/bulma.css.map
diff --git a/suchwowx/static/css/bulma.min.css b/tubbymemes/static/css/bulma.min.css
similarity index 100%
rename from suchwowx/static/css/bulma.min.css
rename to tubbymemes/static/css/bulma.min.css
diff --git a/suchwowx/static/css/custom.css b/tubbymemes/static/css/custom.css
similarity index 100%
rename from suchwowx/static/css/custom.css
rename to tubbymemes/static/css/custom.css
diff --git a/suchwowx/static/css/vendor/noty-relax.css b/tubbymemes/static/css/vendor/noty-relax.css
similarity index 100%
rename from suchwowx/static/css/vendor/noty-relax.css
rename to tubbymemes/static/css/vendor/noty-relax.css
diff --git a/suchwowx/static/css/vendor/noty.css b/tubbymemes/static/css/vendor/noty.css
similarity index 100%
rename from suchwowx/static/css/vendor/noty.css
rename to tubbymemes/static/css/vendor/noty.css
diff --git a/suchwowx/static/css/vendor/unpoly-2.5.0.min.css b/tubbymemes/static/css/vendor/unpoly-2.5.0.min.css
similarity index 100%
rename from suchwowx/static/css/vendor/unpoly-2.5.0.min.css
rename to tubbymemes/static/css/vendor/unpoly-2.5.0.min.css
diff --git a/suchwowx/static/css/vendor/viewer.min.css b/tubbymemes/static/css/vendor/viewer.min.css
similarity index 100%
rename from suchwowx/static/css/vendor/viewer.min.css
rename to tubbymemes/static/css/vendor/viewer.min.css
diff --git a/suchwowx/static/favicon.ico b/tubbymemes/static/favicon.ico
similarity index 100%
rename from suchwowx/static/favicon.ico
rename to tubbymemes/static/favicon.ico
diff --git a/suchwowx/static/img/logo.png b/tubbymemes/static/img/logo.png
similarity index 100%
rename from suchwowx/static/img/logo.png
rename to tubbymemes/static/img/logo.png
diff --git a/suchwowx/static/js/main.js b/tubbymemes/static/js/main.js
similarity index 100%
rename from suchwowx/static/js/main.js
rename to tubbymemes/static/js/main.js
diff --git a/suchwowx/static/js/vendor/metamask-onboarding-1.0.1.bundle.js b/tubbymemes/static/js/vendor/metamask-onboarding-1.0.1.bundle.js
similarity index 100%
rename from suchwowx/static/js/vendor/metamask-onboarding-1.0.1.bundle.js
rename to tubbymemes/static/js/vendor/metamask-onboarding-1.0.1.bundle.js
diff --git a/suchwowx/static/js/vendor/noty-3.2.0.js b/tubbymemes/static/js/vendor/noty-3.2.0.js
similarity index 100%
rename from suchwowx/static/js/vendor/noty-3.2.0.js
rename to tubbymemes/static/js/vendor/noty-3.2.0.js
diff --git a/suchwowx/static/js/vendor/unpoly-2.5.0.min.js b/tubbymemes/static/js/vendor/unpoly-2.5.0.min.js
similarity index 100%
rename from suchwowx/static/js/vendor/unpoly-2.5.0.min.js
rename to tubbymemes/static/js/vendor/unpoly-2.5.0.min.js
diff --git a/suchwowx/static/js/vendor/viewer-1.10.1.min.js b/tubbymemes/static/js/vendor/viewer-1.10.1.min.js
similarity index 100%
rename from suchwowx/static/js/vendor/viewer-1.10.1.min.js
rename to tubbymemes/static/js/vendor/viewer-1.10.1.min.js
diff --git a/suchwowx/static/js/vendor/web3-1.3.6.min.js b/tubbymemes/static/js/vendor/web3-1.3.6.min.js
similarity index 100%
rename from suchwowx/static/js/vendor/web3-1.3.6.min.js
rename to tubbymemes/static/js/vendor/web3-1.3.6.min.js
diff --git a/suchwowx/tasks/__init__.py b/tubbymemes/tasks/__init__.py
similarity index 100%
rename from suchwowx/tasks/__init__.py
rename to tubbymemes/tasks/__init__.py
diff --git a/suchwowx/tasks/config.py b/tubbymemes/tasks/config.py
similarity index 62%
rename from suchwowx/tasks/config.py
rename to tubbymemes/tasks/config.py
index fcc845a..b51b001 100644
--- a/suchwowx/tasks/config.py
+++ b/tubbymemes/tasks/config.py
@@ -1,7 +1,7 @@
from huey import RedisHuey
-from suchwowx.factory import create_app_huey
-from suchwowx import config
+from tubbymemes.factory import create_app_huey
+from tubbymemes import config
huey = RedisHuey(
diff --git a/suchwowx/templates/about.html b/tubbymemes/templates/about.html
similarity index 96%
rename from suchwowx/templates/about.html
rename to tubbymemes/templates/about.html
index 12b4099..3e5bc4f 100644
--- a/suchwowx/templates/about.html
+++ b/tubbymemes/templates/about.html
@@ -12,7 +12,7 @@
Welcome.
This service is a continuation of SuchWow for the Wownero cryptocurrency project.
- It has been revamped to use Interplanetary Filesystem, server federation / content sharing, and optionally Avalanche network via a smart contract with some useful features (if you're into memes). It's a decentralized application (dApp); it's preferred you run it locally and bootstrap the services on your own machine. Here's the source code and instructions to run: SuchWowX
+ It has been revamped to use Interplanetary Filesystem, server federation / content sharing, and optionally Avalanche network via a smart contract with some useful features (if you're into memes). It's a decentralized application (dApp); it's preferred you run it locally and bootstrap the services on your own machine. Here's the source code and instructions to run: tubbymemes
diff --git a/suchwowx/templates/includes/creator.html b/tubbymemes/templates/includes/creator.html
similarity index 100%
rename from suchwowx/templates/includes/creator.html
rename to tubbymemes/templates/includes/creator.html
diff --git a/suchwowx/templates/includes/footer.html b/tubbymemes/templates/includes/footer.html
similarity index 100%
rename from suchwowx/templates/includes/footer.html
rename to tubbymemes/templates/includes/footer.html
diff --git a/suchwowx/templates/includes/head.html b/tubbymemes/templates/includes/head.html
similarity index 73%
rename from suchwowx/templates/includes/head.html
rename to tubbymemes/templates/includes/head.html
index 89366c8..bebb6b6 100644
--- a/suchwowx/templates/includes/head.html
+++ b/tubbymemes/templates/includes/head.html
@@ -1,15 +1,15 @@
- SuchWowX Interplanetary Memes
+ tubbymemes Interplanetary Memes
-
-
+
+
-
+
-
-
+
+
diff --git a/suchwowx/templates/includes/meme_card.html b/tubbymemes/templates/includes/meme_card.html
similarity index 100%
rename from suchwowx/templates/includes/meme_card.html
rename to tubbymemes/templates/includes/meme_card.html
diff --git a/suchwowx/templates/includes/navbar.html b/tubbymemes/templates/includes/navbar.html
similarity index 98%
rename from suchwowx/templates/includes/navbar.html
rename to tubbymemes/templates/includes/navbar.html
index 3858db2..5ac1798 100644
--- a/suchwowx/templates/includes/navbar.html
+++ b/tubbymemes/templates/includes/navbar.html
@@ -1,6 +1,6 @@
- SuchWowX.
+ tubbymemes.
Memes. Interplanetary!
diff --git a/suchwowx/templates/includes/scripts.html b/tubbymemes/templates/includes/scripts.html
similarity index 100%
rename from suchwowx/templates/includes/scripts.html
rename to tubbymemes/templates/includes/scripts.html
diff --git a/suchwowx/templates/includes/web3.html b/tubbymemes/templates/includes/web3.html
similarity index 98%
rename from suchwowx/templates/includes/web3.html
rename to tubbymemes/templates/includes/web3.html
index 2bc5494..17ce27a 100644
--- a/suchwowx/templates/includes/web3.html
+++ b/tubbymemes/templates/includes/web3.html
@@ -80,7 +80,7 @@
nonce = data['nonce'];
})
- const msg = 'Authentication request from SuchWowX app! Verifying message with nonce ' + nonce
+ const msg = 'Authentication request from tubbymemes app! Verifying message with nonce ' + nonce
const signedData = await window.ethereum.request({
method: 'personal_sign',
params: [msg, allAccounts[0]]
diff --git a/suchwowx/templates/index.html b/tubbymemes/templates/index.html
similarity index 100%
rename from suchwowx/templates/index.html
rename to tubbymemes/templates/index.html
diff --git a/suchwowx/templates/meme.html b/tubbymemes/templates/meme.html
similarity index 99%
rename from suchwowx/templates/meme.html
rename to tubbymemes/templates/meme.html
index d2bd059..788be7b 100644
--- a/suchwowx/templates/meme.html
+++ b/tubbymemes/templates/meme.html
@@ -122,7 +122,7 @@
- Sending a tip via the SuchWowX smart contract will send a small amount to the
+ Sending a tip via the tubbymemes smart contract will send a small amount to the
publisher (the address that minted the meme) and the contract owner ({{ config.CONTRACT_OWNER }}), and the remainder is sent to the meme creator (whoever uploaded it). Everyone gets tipped for their contribution, but primarily the meme creator.
diff --git a/suchwowx/templates/profile.html b/tubbymemes/templates/profile.html
similarity index 100%
rename from suchwowx/templates/profile.html
rename to tubbymemes/templates/profile.html
diff --git a/suchwowx/templates/publish.html b/tubbymemes/templates/publish.html
similarity index 100%
rename from suchwowx/templates/publish.html
rename to tubbymemes/templates/publish.html
diff --git a/suchwowx/templates/remotes.html b/tubbymemes/templates/remotes.html
similarity index 96%
rename from suchwowx/templates/remotes.html
rename to tubbymemes/templates/remotes.html
index 30adea1..185ebf5 100644
--- a/suchwowx/templates/remotes.html
+++ b/tubbymemes/templates/remotes.html
@@ -11,7 +11,7 @@