From 4b5fde06cba5bfa6db316f5c942a51b729584140 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Tue, 5 Nov 2019 11:25:56 +0100 Subject: [PATCH] Update requirements --- requirements.txt | 12 +- royalnet/web/__init__.py | 4 - royalnet/web/flaskserver.py | 54 - royalnet/web/royalprint.py | 18 - royalnet/web/royalprints/__init__.py | 26 - .../web/royalprints/diarioview/__init__.py | 25 - .../diarioview/templates/diarioview_page.html | 46 - royalnet/web/royalprints/docs/__init__.py | 11 - royalnet/web/royalprints/home/__init__.py | 13 - .../web/royalprints/home/templates/home.html | 24 - royalnet/web/royalprints/login/__init__.py | 42 - .../login/templates/login_index.html | 48 - .../login/templates/login_success.html | 18 - royalnet/web/royalprints/mcstatus/__init__.py | 30 - .../mcstatus/templates/mcstatus.html | 54 - .../web/royalprints/newaccount/__init__.py | 40 - .../templates/newaccount_index.html | 36 - royalnet/web/royalprints/profile/__init__.py | 60 -- .../profile/templates/profile_editbio.html | 126 --- .../profile/templates/profile_index.html | 22 - .../profile/templates/profile_page.html | 97 -- royalnet/web/royalprints/tglogin/__init__.py | 50 - .../tglogin/templates/tglogin_index.html | 39 - .../tglogin/templates/tglogin_success.html | 18 - royalnet/web/royalprints/wikiedit/__init__.py | 80 -- .../wikiedit/templates/wikiedit_page.html | 145 --- royalnet/web/royalprints/wikiview/__init__.py | 50 - .../wikiview/templates/wikiview_index.html | 27 - .../wikiview/templates/wikiview_page.html | 34 - royalnet/web/shortcuts.py | 16 - royalnet/web/static/generic.png | Bin 94773 -> 0 bytes royalnet/web/static/logo.png | Bin 50018 -> 0 bytes royalnet/web/static/logo.svg | 219 ---- royalnet/web/static/ryg.css | 812 --------------- royalnet/web/static/ryg.css.map | 1 - royalnet/web/static/ryg.less | 985 ------------------ royalnet/web/static/tf2.css | 309 ------ royalnet/web/static/tf2.css.map | 1 - royalnet/web/static/tf2.less | 362 ------- royalnet/web/templates/base.html | 67 -- royalnet/web/templates/error.html | 23 - setup.py | 2 +- 42 files changed, 6 insertions(+), 4040 deletions(-) delete mode 100644 royalnet/web/flaskserver.py delete mode 100644 royalnet/web/royalprint.py delete mode 100644 royalnet/web/royalprints/__init__.py delete mode 100644 royalnet/web/royalprints/diarioview/__init__.py delete mode 100644 royalnet/web/royalprints/diarioview/templates/diarioview_page.html delete mode 100644 royalnet/web/royalprints/docs/__init__.py delete mode 100644 royalnet/web/royalprints/home/__init__.py delete mode 100644 royalnet/web/royalprints/home/templates/home.html delete mode 100644 royalnet/web/royalprints/login/__init__.py delete mode 100644 royalnet/web/royalprints/login/templates/login_index.html delete mode 100644 royalnet/web/royalprints/login/templates/login_success.html delete mode 100644 royalnet/web/royalprints/mcstatus/__init__.py delete mode 100644 royalnet/web/royalprints/mcstatus/templates/mcstatus.html delete mode 100644 royalnet/web/royalprints/newaccount/__init__.py delete mode 100644 royalnet/web/royalprints/newaccount/templates/newaccount_index.html delete mode 100644 royalnet/web/royalprints/profile/__init__.py delete mode 100644 royalnet/web/royalprints/profile/templates/profile_editbio.html delete mode 100644 royalnet/web/royalprints/profile/templates/profile_index.html delete mode 100644 royalnet/web/royalprints/profile/templates/profile_page.html delete mode 100644 royalnet/web/royalprints/tglogin/__init__.py delete mode 100644 royalnet/web/royalprints/tglogin/templates/tglogin_index.html delete mode 100644 royalnet/web/royalprints/tglogin/templates/tglogin_success.html delete mode 100644 royalnet/web/royalprints/wikiedit/__init__.py delete mode 100644 royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html delete mode 100644 royalnet/web/royalprints/wikiview/__init__.py delete mode 100644 royalnet/web/royalprints/wikiview/templates/wikiview_index.html delete mode 100644 royalnet/web/royalprints/wikiview/templates/wikiview_page.html delete mode 100644 royalnet/web/shortcuts.py delete mode 100644 royalnet/web/static/generic.png delete mode 100644 royalnet/web/static/logo.png delete mode 100644 royalnet/web/static/logo.svg delete mode 100644 royalnet/web/static/ryg.css delete mode 100644 royalnet/web/static/ryg.css.map delete mode 100644 royalnet/web/static/ryg.less delete mode 100644 royalnet/web/static/tf2.css delete mode 100644 royalnet/web/static/tf2.css.map delete mode 100644 royalnet/web/static/tf2.less delete mode 100644 royalnet/web/templates/base.html delete mode 100644 royalnet/web/templates/error.html diff --git a/requirements.txt b/requirements.txt index 7842e1bd..bf33e55a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ bcrypt==3.1.7 certifi==2019.9.11 cffi==1.13.01 chardet==3.0.4 -Click==7.0 +click==7.0 cryptography==2.8 dateparser==0.7.2 dice==2.4.2 @@ -13,14 +13,11 @@ dnspython==1.15.0 dnspython3==1.15.0 entrypoints==0.3 ffmpeg-python==0.2.0 -Flask==1.1.1 future==0.18.1 idna==2.8 -itsdangerous==1.1.0 -Jinja2==2.10.3 keyring==19.2.0 markdown2==2.3.8 -MarkupSafe==1.1.1 +markupsafe==1.1.1 mcstatus==2.2.1 multidict==4.5.2 psycopg2-binary==2.8.3 @@ -34,12 +31,13 @@ royalherald==5.1b2 sentry-sdk==0.13.0 six==1.12.0 sortedcontainers==2.1.0 -SQLAlchemy==1.3.10 +sqlalchemy==1.3.10 tornado==6.0.3 tzlocal==2.0.0 urllib3==1.25.6 websockets==8.0.2 -Werkzeug==0.16.0 yarl==1.3.0 youtube-dl==2019.10.16 riotwatcher==2.7.1 +# discord.py is missing as we currently use the git version and we ignore the websockets<7.0 requirement +starlette==0.12.13 diff --git a/royalnet/web/__init__.py b/royalnet/web/__init__.py index d3899afd..e69de29b 100644 --- a/royalnet/web/__init__.py +++ b/royalnet/web/__init__.py @@ -1,4 +0,0 @@ -from .flaskserver import create_app -from .royalprint import Royalprint - -__all__ = ["create_app", "Royalprint"] diff --git a/royalnet/web/flaskserver.py b/royalnet/web/flaskserver.py deleted file mode 100644 index b85f4c5d..00000000 --- a/royalnet/web/flaskserver.py +++ /dev/null @@ -1,54 +0,0 @@ -import typing -import flask as f -import os -from sqlalchemy.orm import scoped_session -from ..database import Alchemy -from .royalprint import Royalprint - - -def create_app(config_obj: typing.Type, blueprints: typing.List[Royalprint]): - """Create a :py:class:`flask.Flask` application object. - - Gets the ``app.secret_key`` from the ``SECRET_KEY`` envvar. - - Also requires a ``DB_PATH`` key in ``config_obj`` to initialize the database connection. - - Warning: - The code for this class was written at 1 AM, and I have no clue of how and why it works or even if it really does work. - Use with caution? - - Args: - config_obj: The object to be passed to :py:meth:`flask.Flask.config.from_object`. - blueprints: A list of blueprints to be registered to the application. - - Returns: - The created :py:class:`flask.Flask`.""" - app = f.Flask(__name__) - app.config.from_object(config_obj) - app.secret_key = os.environ["SECRET_KEY"] - - # Load blueprints - required_tables = set() - for blueprint in blueprints: - required_tables = required_tables.union(blueprint.required_tables) - app.register_blueprint(blueprint) - - # Init Alchemy - # Seems like a dirty hack to me, but experiments are fun, right? - # WARNING BLACK SORCERY BELOW EDIT AT YOUR OWN RISK - if len(required_tables) > 0: - alchemy = Alchemy(app.config["DB_PATH"], required_tables) - app.config["ALCHEMY"] = alchemy - app.config["ALCHEMY_SESSION"] = scoped_session(alchemy.Session) - else: - app.config["ALCHEMY"] = None - app.config["ALCHEMY_SESSION"] = None - - @app.teardown_request - def teardown_alchemy_session(*_, **__): - alchemy_session = app.config["ALCHEMY_SESSION"] - if alchemy_session is not None: - alchemy_session.remove() - # END OF BLACK SORCERY - - return app diff --git a/royalnet/web/royalprint.py b/royalnet/web/royalprint.py deleted file mode 100644 index 719cc823..00000000 --- a/royalnet/web/royalprint.py +++ /dev/null @@ -1,18 +0,0 @@ -import typing -import flask as f - - -class Royalprint(f.Blueprint): - """An edited :py:class:`flask.Blueprint` containing an additional ``required_tables`` parameter.""" - - def __init__(self, name, import_name, static_folder=None, - static_url_path=None, template_folder=None, - url_prefix=None, subdomain=None, url_defaults=None, - root_path=None, required_tables: typing.Optional[set] = None): - super().__init__(name, import_name, static_folder=static_folder, - static_url_path=static_url_path, template_folder=template_folder, - url_prefix=url_prefix, subdomain=subdomain, url_defaults=url_defaults, - root_path=root_path) - self.required_tables = required_tables - if self.required_tables is None: - self.required_tables = set() diff --git a/royalnet/web/royalprints/__init__.py b/royalnet/web/royalprints/__init__.py deleted file mode 100644 index d2dfd110..00000000 --- a/royalnet/web/royalprints/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -"""Some Royalprints that can be used with the Royalnet Flask server.""" - -from . import home -from . import wikiview -from . import tglogin -from . import docs -from . import wikiedit -from . import mcstatus -from . import diarioview -from . import profile -from . import login -from . import newaccount - -rp_home = home.rp -rp_wikiview = wikiview.rp -rp_tglogin = tglogin.rp -rp_docs = docs.rp -rp_wikiedit = wikiedit.rp -rp_mcstatus = mcstatus.rp -rp_diarioview = diarioview.rp -rp_profile = profile.rp -rp_login = login.rp -rp_newaccount = newaccount.rp - -__all__ = ["rp_home", "rp_wikiview", "rp_tglogin", "rp_docs", "rp_wikiedit", "rp_mcstatus", "rp_diarioview", - "rp_profile", "rp_login", "rp_newaccount"] diff --git a/royalnet/web/royalprints/diarioview/__init__.py b/royalnet/web/royalprints/diarioview/__init__.py deleted file mode 100644 index 5ca08415..00000000 --- a/royalnet/web/royalprints/diarioview/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -"""A User Games Diario viewer :py:class:`royalnet.web.Royalprint`.""" - -import flask as f -import os -from ...royalprint import Royalprint -from ...shortcuts import error -from royalnet.packs.common.tables import User -from royalnet.packs.royal.tables import Diario - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("diarioview", __name__, url_prefix="/diario", template_folder=tmpl_dir, - required_tables={User, Diario}) - - -@rp.route("/", defaults={"page": 1}) -@rp.route("/") -def diarioview_page(page): - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - if page < 1: - return error(404, "Il numero di pagina deve essere maggiore di 0.") - entries = alchemy_session.query(alchemy.Diario).order_by(alchemy.Diario.diario_id.desc()).offset((page - 1) * 1000).limit(1000).all() - if len(entries) == 0: - return error(404, "Non ci sono righe di diario in questa pagina (e in tutte le successive).") - return f.render_template("diarioview_page.html", page=page, entries=entries) diff --git a/royalnet/web/royalprints/diarioview/templates/diarioview_page.html b/royalnet/web/royalprints/diarioview/templates/diarioview_page.html deleted file mode 100644 index ef7ea435..00000000 --- a/royalnet/web/royalprints/diarioview/templates/diarioview_page.html +++ /dev/null @@ -1,46 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Diario: Pagina {{ page }} -{% endblock %} - -{% block content %} -
- {% if page > 1 %} - Pagina precedente - {% endif %} - {% for entry in entries %} -
-
- {% if entry.media_url %} - Caricamento immagine fallito - {% endif %} - {% if entry.text %} - "{{ entry.text }}" - {% endif %} -
- {% if entry.quoted %} -
- — - {% if entry.quoted_account %} - {{ entry.quoted }} - {% else %} - {{ entry.quoted }} - {% endif %} - {% if entry.context %} - , {{ entry.context }} - {% endif %} -
- {% endif %} - {% if entry.creator %} - - {% endif %} - - #{{ entry.diario_id }} -
- {% endfor %} - {% if entries|length == 1000 %} - Pagina successiva - {% endif %} -
-{% endblock %} diff --git a/royalnet/web/royalprints/docs/__init__.py b/royalnet/web/royalprints/docs/__init__.py deleted file mode 100644 index 588bc98c..00000000 --- a/royalnet/web/royalprints/docs/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -"""Quick docs link :py:class:`royalnet.web.Royalprint`.""" -import flask as f -from ...royalprint import Royalprint - - -rp = Royalprint("docs", __name__, url_prefix="/docs") - - -@rp.route("/") -def home_index(): - return f.redirect("https://royal-games.github.io/royalnet/html/index.html") diff --git a/royalnet/web/royalprints/home/__init__.py b/royalnet/web/royalprints/home/__init__.py deleted file mode 100644 index 25d01dff..00000000 --- a/royalnet/web/royalprints/home/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -"""Homepage :py:class:`royalnet.web.Royalprint` of the User Games website.""" -import flask as f -import os -from ...royalprint import Royalprint - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("home", __name__, template_folder="templates") - - -@rp.route("/") -def home_index(): - return f.render_template("home.html") diff --git a/royalnet/web/royalprints/home/templates/home.html b/royalnet/web/royalprints/home/templates/home.html deleted file mode 100644 index 2cea7a6d..00000000 --- a/royalnet/web/royalprints/home/templates/home.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Home -{% endblock %} - -{% block content %} -
-
- Benvenuto! -
-
-

- Benvenuto al sito web della Royal Games! -

-

- Siamo una piccola community amichevole principalmente dedicata al PC gaming. -

-

- Vienici a trovare su Discord o Steam! -

-
-
-{% endblock %} \ No newline at end of file diff --git a/royalnet/web/royalprints/login/__init__.py b/royalnet/web/royalprints/login/__init__.py deleted file mode 100644 index 5a7abe9f..00000000 --- a/royalnet/web/royalprints/login/__init__.py +++ /dev/null @@ -1,42 +0,0 @@ -"""A Royalnet password-based login :py:class:`royalnet.web.Royalprint`.""" -import flask as f -import os -import datetime -import bcrypt -from ...royalprint import Royalprint -from ...shortcuts import error -from royalnet.packs.common.tables import User - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("login", __name__, url_prefix="/login/password", required_tables={User}, - template_folder=tmpl_dir) - - -@rp.route("/") -def login_index(): - f.session.pop("royal", None) - return f.render_template("login_index.html") - - -@rp.route("/done", methods=["POST"]) -def login_done(): - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - fd = f.request.form - if "username" not in fd: - return error(400, "Nessun username inserito.") - royal_user = alchemy_session.query(alchemy.User).filter_by(username=fd["username"]).one_or_none() - if royal_user is None: - return error(404, "L'username inserito non corrisponde a nessun account registrato.") - if "password" not in fd: - return error(400, "Nessuna password inserita.") - if not bcrypt.checkpw(bytes(fd["password"], encoding="utf8"), royal_user.password): - return error(400, "La password inserita non è valida.") - f.session["royal"] = { - "uid": royal_user.uid, - "username": royal_user.username, - "avatar": royal_user.avatar, - "role": royal_user.role - } - f.session["login_date"] = datetime.datetime.now() - return f.render_template("login_success.html") diff --git a/royalnet/web/royalprints/login/templates/login_index.html b/royalnet/web/royalprints/login/templates/login_index.html deleted file mode 100644 index 8ba7986c..00000000 --- a/royalnet/web/royalprints/login/templates/login_index.html +++ /dev/null @@ -1,48 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Password Login -{% endblock %} - -{% block content %} - -{% endblock %} diff --git a/royalnet/web/royalprints/login/templates/login_success.html b/royalnet/web/royalprints/login/templates/login_success.html deleted file mode 100644 index 3b72851b..00000000 --- a/royalnet/web/royalprints/login/templates/login_success.html +++ /dev/null @@ -1,18 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Password Login riuscito -{% endblock %} - -{% block content %} -
-
- - Password Login - -
-
- Login riuscito! Sei connesso come {{ session["royal"]["username"] }}! -
-
-{% endblock %} diff --git a/royalnet/web/royalprints/mcstatus/__init__.py b/royalnet/web/royalprints/mcstatus/__init__.py deleted file mode 100644 index 06b39912..00000000 --- a/royalnet/web/royalprints/mcstatus/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Minecraft server status :py:class:`royalnet.web.Royalprint`.""" -import os -import flask as f -import socket -from ...royalprint import Royalprint -from ...shortcuts import error -from mcstatus import MinecraftServer - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("mcstatus", __name__, url_prefix="/mcstatus", template_folder=tmpl_dir) - - -@rp.route("/") -def mcstatus_index(server_str: str): - try: - if ":" not in server_str: - server_str += ":25565" - server = MinecraftServer.lookup(server_str) - status = server.status() - try: - query = server.query() - except (socket.timeout, ConnectionRefusedError, OSError): - query = None - except socket.gaierror: - return error(400, "L'indirizzo richiesto non è valido.") - except (socket.timeout, ConnectionRefusedError, OSError): - status = None - query = None - return f.render_template("mcstatus.html", server_str=server_str, status=status, query=query) diff --git a/royalnet/web/royalprints/mcstatus/templates/mcstatus.html b/royalnet/web/royalprints/mcstatus/templates/mcstatus.html deleted file mode 100644 index d259c420..00000000 --- a/royalnet/web/royalprints/mcstatus/templates/mcstatus.html +++ /dev/null @@ -1,54 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Minecraft {{ server_str }} -{% endblock %} - -{% block content %} -
-
- Minecraft Server Status -
-
-
- {% if query %} - {% if status.favicon %} -
Server icon
- {% else %} -
- {% endif %} -
{{ server_str }}
-
{{ query.motd }}
-
{{ query.players.online }}/{{ query.players.max }}
-
{{ query.software.brand }} {{ query.software.version }} ({{ status.version.protocol }})
- {% elif status %} - {% if status.favicon %} -
Server icon
- {% else %} -
- {% endif %} -
{{ server_str }}
-
{{ status.description }}
-
{{ status.players.online }}/{{ status.players.max }}
-
{{ status.version.name }} ({{ status.version.protocol }})
- {% else %} -
-
{{ server_str }}
-
-
-
0/0
-
Offline (-)
- {% endif %} -
- {% if query %} -
-

Giocatori connessi:

-
    - {% for player in query.players.names %} -
  • {{ player }}
  • - {% endfor %} -
-
- {% endif %} -
-
-{% endblock %} \ No newline at end of file diff --git a/royalnet/web/royalprints/newaccount/__init__.py b/royalnet/web/royalprints/newaccount/__init__.py deleted file mode 100644 index f599a023..00000000 --- a/royalnet/web/royalprints/newaccount/__init__.py +++ /dev/null @@ -1,40 +0,0 @@ -"""A :py:class:`royalnet.web.Royalprint` to create new Royals.""" -import flask as f -import os -import bcrypt -from ...royalprint import Royalprint -from ...shortcuts import error -from royalnet.packs.common.tables import User -from royalnet.packs.royal.tables import Alias - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("newaccount", __name__, url_prefix="/newaccount", required_tables={User, Alias}, - template_folder=tmpl_dir) - - -@rp.route("/", methods=["GET", "POST"]) -def login_index(): - if f.request.method == "GET": - return f.render_template("newaccount_index.html") - elif f.request.method == "POST": - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - fd = f.request.form - if "username" not in fd: - return error(400, "Non è stato inserito nessun username.") - if "password" not in fd: - return error(400, "Non è stata inserita nessuna password.") - royal = alchemy_session.query(alchemy.User).filter_by(username=fd["username"]).one_or_none() - if royal is not None: - return error(403, "Esiste già un utente con quell'username.") - alias = alchemy_session.query(alchemy.Alias).filter_by(alias=fd["username"]).one_or_none() - if alias is not None: - return error(403, "Esiste già un utente con quell'alias.") - royal = alchemy.Royal(username=fd["username"], - password=bcrypt.hashpw(bytes(fd["password"], encoding="utf8"), bcrypt.gensalt()), - role="Guest") - alchemy_session.add(royal) - alias = alchemy.Alias(royal=royal, alias=royal.username.lower()) - alchemy_session.add(alias) - alchemy_session.commit() - return f.redirect(f.url_for("login.login_index")) diff --git a/royalnet/web/royalprints/newaccount/templates/newaccount_index.html b/royalnet/web/royalprints/newaccount/templates/newaccount_index.html deleted file mode 100644 index eb682e1d..00000000 --- a/royalnet/web/royalprints/newaccount/templates/newaccount_index.html +++ /dev/null @@ -1,36 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Nuovo account -{% endblock %} - -{% block content %} - -{% endblock %} diff --git a/royalnet/web/royalprints/profile/__init__.py b/royalnet/web/royalprints/profile/__init__.py deleted file mode 100644 index 6fded50f..00000000 --- a/royalnet/web/royalprints/profile/__init__.py +++ /dev/null @@ -1,60 +0,0 @@ -"""The profile page :py:class:`royalnet.web.Royalprint` for Royalnet members.""" - -import flask as f -import os -from ...royalprint import Royalprint -from ...shortcuts import error -from ....utils.wikirender import prepare_page_markdown, RenderError -from royalnet.packs.royal.tables import * - - -# Maybe some of these tables are optional... -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("profile", __name__, url_prefix="/profile", template_folder=tmpl_dir, - required_tables={User, Alias, Diario, Discord, Telegram, WikiPage, WikiRevision, Bio, TriviaScore}) - - -@rp.route("/") -def profile_index(): - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - royals = alchemy_session.query(alchemy.User).order_by(alchemy.User.username).all() - return f.render_template("profile_index.html", royals=royals) - - -@rp.route("/") -def profile_page(username): - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - royal = alchemy_session.query(alchemy.User).filter_by(username=username).one_or_none() - if royal is None: - return error(404, "Non esiste nessun utente con l'username richiesto.") - if royal.bio is not None and royal.bio.contents != "": - try: - parsed_bio = f.Markup(prepare_page_markdown(royal.bio.contents)) - except RenderError as e: - return error(500, f"Il profilo non può essere visualizzato a causa di un errore nella bio: {str(e)}") - else: - parsed_bio = None - return f.render_template("profile_page.html", royal=royal, parsed_bio=parsed_bio) - - -@rp.route("//editbio", methods=["GET", "POST"]) -def profile_editbio(username): - if "royal" not in f.session: - return error(403, "Devi aver effettuato il login per modificare una bio.") - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - royal = alchemy_session.query(alchemy.User).filter_by(username=username).one_or_none() - if not (f.session["royal"]["uid"] == royal.uid or f.session["royal"]["role"] == "Admin"): - return error(403, "Non sei autorizzato a modificare questa pagina bio.") - - if f.request.method == "GET": - return f.render_template("profile_editbio.html", royal=royal) - - elif f.request.method == "POST": - fd = f.request.form - if royal.bio is None: - bio = alchemy.Bio(royal=royal, contents=fd.get("contents", "")) - alchemy_session.add(bio) - else: - royal.bio.contents = fd.get("contents", "") - alchemy_session.commit() - return f.redirect(f.url_for(".profile_page", username=username)) diff --git a/royalnet/web/royalprints/profile/templates/profile_editbio.html b/royalnet/web/royalprints/profile/templates/profile_editbio.html deleted file mode 100644 index 0d8c92d8..00000000 --- a/royalnet/web/royalprints/profile/templates/profile_editbio.html +++ /dev/null @@ -1,126 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - {{ royal.username }} - RYGbioeditor -{% endblock %} - -{% block head %} - - -{% endblock %} - -{% block content %} -
-
- - Editor Bio - -
-
-
- - - -
-
-
-{% endblock %} - -{% block footscripts %} - -{% endblock %} \ No newline at end of file diff --git a/royalnet/web/royalprints/profile/templates/profile_index.html b/royalnet/web/royalprints/profile/templates/profile_index.html deleted file mode 100644 index 81361bf6..00000000 --- a/royalnet/web/royalprints/profile/templates/profile_index.html +++ /dev/null @@ -1,22 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Elenco profili -{% endblock %} - -{% block content %} -
-
- - Elenco profili - -
-
- -
-
-{% endblock %} diff --git a/royalnet/web/royalprints/profile/templates/profile_page.html b/royalnet/web/royalprints/profile/templates/profile_page.html deleted file mode 100644 index 3cf2598f..00000000 --- a/royalnet/web/royalprints/profile/templates/profile_page.html +++ /dev/null @@ -1,97 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Profilo: {{ royal.username }} -{% endblock %} - -{% block content %} -
-

- {{ royal.username }} -

-
-
-
- - Bio - - - {% if session["royal"] and (session["royal"]["uid"] == royal.uid or session["royal"]["role"] == "Admin") %} - Modifica - {% else %} - Modifica - {% endif %} - -
-
- {% if parsed_bio %} - {{ parsed_bio }} - {% else %} - Questo utente non ha nessuna bio. - {% endif %} -
-
-
-
-
- -
-
-
-
- Statistiche -
-
-
    -
  • Righe del diario create: {{ royal.diario_created|length }}
  • -
  • Righe del diario in cui è menzionato: {{ royal.diario_quoted|length }}
  • -
  • Modifiche alla wiki: {{ royal.wiki_contributions|length }} - {% if royal.trivia_score %} -
  • Punteggio trivia: {{ royal.trivia_score.correct_answers }}/{{ royal.trivia_score.total_answers }}
  • - {% else %} -
  • Punteggio trivia: 0/0
  • - {% endif %} -
-
-
-
-
-
-
- Alias -
-
-
    - {% for alias in royal.aliases %} -
  • {{ alias.alias|capitalize }}
  • - {% endfor %} -
-
-
-
-
-
-{% endblock %} diff --git a/royalnet/web/royalprints/tglogin/__init__.py b/royalnet/web/royalprints/tglogin/__init__.py deleted file mode 100644 index eca18d9c..00000000 --- a/royalnet/web/royalprints/tglogin/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -"""A Royalnet Telegram login :py:class:`royalnet.web.Royalprint`.""" -import flask as f -import hashlib -import hmac -import datetime -import os -from ...royalprint import Royalprint -from ...shortcuts import error -from royalnet.packs.common.tables import User, Telegram - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("tglogin", __name__, url_prefix="/login/telegram", required_tables={User, Telegram}, - template_folder=tmpl_dir) - - -@rp.route("/") -def tglogin_index(): - #if f.request.url_root != "https://ryg.steffo.eu/": - # return error(404, "Il login tramite Telegram non è possibile su questo dominio.") - f.session.pop("royal", None) - return f.render_template("tglogin_index.html") - - -@rp.route("/done") -def tglogin_done(): - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - data_check_string = "" - for field in sorted(list(f.request.args)): - if field == "hash": - continue - data_check_string += f"{field}={f.request.args[field]}\n" - data_check_string = data_check_string.rstrip("\n") - data_check = bytes(data_check_string, encoding="ascii") - secret_key = hashlib.sha256(bytes(f.current_app.config["TG_AK"], encoding="ascii")).digest() - hex_data = hmac.new(key=secret_key, msg=data_check, digestmod="sha256").hexdigest() - if hex_data != f.request.args["hash"]: - return error(400, "L'autenticazione è fallita: l'hash ricevuto non coincide con quello calcolato.") - tg_user = alchemy_session.query(alchemy.Telegram).filter(alchemy.Telegram.tg_id == f.request.args["id"]).one_or_none() - if tg_user is None: - return error(404, "L'account Telegram con cui hai fatto il login non è connesso a nessun account User Games. Se sei un membro User Games, assicurati di aver syncato con il bot il tuo account di Telegram!") - royal_user = tg_user.royal - f.session["royal"] = { - "uid": royal_user.uid, - "username": royal_user.username, - "avatar": royal_user.avatar, - "role": royal_user.role - } - f.session["login_date"] = datetime.datetime.now() - return f.render_template("login_success.html") diff --git a/royalnet/web/royalprints/tglogin/templates/tglogin_index.html b/royalnet/web/royalprints/tglogin/templates/tglogin_index.html deleted file mode 100644 index 20b38606..00000000 --- a/royalnet/web/royalprints/tglogin/templates/tglogin_index.html +++ /dev/null @@ -1,39 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Telegram Login -{% endblock %} - -{% block content %} -
-
- - Telegram Login - -
-
- -

- Per fare il login, devi aver syncato il tuo account sul gruppo Telegram Royal Games! -

-
-

- Facendo il login su questo sito, acconsenti a ricevere due biscottini che memorizzino l'account con cui hai fatto il login.
-

-

- Essi avranno il seguente formato: -

-
session["royal"] = {
-    "uid": [il tuo id Royalnet]
-    "username": [il tuo username Royalnet],
-    "avatar": [il tuo avatar Royalnet],
-    "role": [il tuo ruolo Royalnet]
-}
-
-session["login_date"] = [la data e l'ora di adesso]
-
-
-
-{% endblock %} diff --git a/royalnet/web/royalprints/tglogin/templates/tglogin_success.html b/royalnet/web/royalprints/tglogin/templates/tglogin_success.html deleted file mode 100644 index eb080a7a..00000000 --- a/royalnet/web/royalprints/tglogin/templates/tglogin_success.html +++ /dev/null @@ -1,18 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Telegram Login riuscito -{% endblock %} - -{% block content %} -
-
- - Telegram Login - -
-
- Login riuscito! Sei connesso come {{ session["royal"]["username"] }}! -
-
-{% endblock %} diff --git a/royalnet/web/royalprints/wikiedit/__init__.py b/royalnet/web/royalprints/wikiedit/__init__.py deleted file mode 100644 index 63d73fce..00000000 --- a/royalnet/web/royalprints/wikiedit/__init__.py +++ /dev/null @@ -1,80 +0,0 @@ -"""A User Games Wiki viewer :py:class:`royalnet.web.Royalprint`. Doesn't support any kind of edit.""" -import flask as f -import uuid -import os -import datetime -import difflib -from ...royalprint import Royalprint -from ...shortcuts import error, from_urluuid -from royalnet.packs.common.tables import User -from royalnet.packs.royal.tables import WikiPage, WikiRevision - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("wikiedit", __name__, url_prefix="/wiki/edit", template_folder=tmpl_dir, - required_tables={User, WikiPage, WikiRevision}) - - -@rp.route("/newpage", methods=["GET", "POST"]) -def wikiedit_newpage(): - if "royal" not in f.session: - return error(403, "Devi aver effettuato il login per creare pagine wiki.") - - if f.request.method == "GET": - return f.render_template("wikiedit_page.html", page=None) - - elif f.request.method == "POST": - fd = f.request.form - if not ("title" in fd and "contents" in fd and "css" in fd): - return error(400, "Uno dei campi obbligatori non è stato compilato. Controlla e riprova!") - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - page = alchemy.WikiPage(page_id=uuid.uuid4(), - title=fd["title"], - contents=fd["contents"], - format="markdown", - css=fd["css"] if fd["css"] != "None" else None) - revision = alchemy.WikiRevision(revision_id=uuid.uuid4(), - page=page, - author_id=f.session["royal"]["uid"], - timestamp=datetime.datetime.now(), - reason=fd.get("reason"), - diff="\n".join(difflib.unified_diff([], page.contents.split("\n")))) - alchemy_session.add(page) - alchemy_session.add(revision) - alchemy_session.commit() - return f.redirect(f.url_for("wikiview.wikiview_by_id", page_id=page.page_short_id, title=page.title)) - - -@rp.route("/", defaults={"title": ""}, methods=["GET", "POST"]) -@rp.route("//", methods=["GET", "POST"]) -def wikiedit_by_id(page_id: str, title: str): - page_uuid = from_urluuid(page_id) - if "royal" not in f.session: - return error(403, "Devi aver effettuato il login per modificare pagine wiki.") - - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - page = alchemy_session.query(alchemy.WikiPage).filter(alchemy.WikiPage.page_id == page_uuid).one_or_none() - if page is None: - return error(404, "La pagina che stai cercando di modificare non esiste.") - - if f.request.method == "GET": - return f.render_template("wikiedit_page.html", page=page) - - elif f.request.method == "POST": - fd = f.request.form - if not ("title" in fd and "contents" in fd and "css" in fd): - return error(400, "Uno dei campi obbligatori non è stato compilato. Controlla e riprova!") - # Create new revision - revision = alchemy.WikiRevision(revision_id=uuid.uuid4(), - page=page, - author_id=f.session["royal"]["uid"], - timestamp=datetime.datetime.now(), - reason=fd.get("reason"), - diff="\n".join(difflib.unified_diff(page.contents.split("\n"), fd["contents"].split("\n")))) - alchemy_session.add(revision) - # Apply changes - page.contents = fd["contents"] - page.title = fd["title"] - page.css = fd["css"] if fd["css"] != "None" else None - alchemy_session.commit() - return f.redirect(f.url_for("wikiview.wikiview_by_id", page_id=page.page_short_id, title=page.title)) diff --git a/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html b/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html deleted file mode 100644 index b9e6fff6..00000000 --- a/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html +++ /dev/null @@ -1,145 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - {{ page.title }} - RYGwikieditor -{% endblock %} - -{% block head %} - <link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css"> - <script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script> -{% endblock %} - -{% block content %} - <div class="dbox"> - <div class="dbox-top"> - <span class="left"> - Editor Wiki - </span> - </div> - <div class="dbox-bot"> - <form method="POST" class="wikiedit-form full"> - <label for="wikiedit-title" class="label-big"> - <span class="label-text">Titolo</span> - <input id="wikiedit-title" type="text" name="title" value="{{ page.title }}"> - </label> - <label for="wikiedit-format"> - <span class="label-text">Formato</span> - <input id="wikiedit-format" type="text" name="format" disabled value="markdown"> - </label> - <!--suppress HtmlFormInputWithoutLabel --> - <textarea id="wikiedit-contents" name="contents">{{ page.contents }}</textarea> - <label for="wikiedit-css"> - <span class="label-text">Tema</span> - <select id="wikiedit-css" name="css"> - <option value="None" {% if page.css == None %}selected{% endif %}>Royal Games</option> - <option value="tf2.css" {% if page.css == "tf2.css" %}selected{% endif %}>Team Fortress 2</option> - </select> - </label> - <label for="wikiedit-reason"> - <span class="label-text">Motivo</span> - <input id="wikiedit-reason" type="text" name="reason"> - </label> - <label for="wikiedit-submit"> - <input id="wikiedit-submit" type="submit" value="Salva"> - </label> - </form> - </div> - </div> -{% endblock %} - -{% block footscripts %} - <script> - //TODO: maybe enable autosave? - let simplemde = new SimpleMDE({ - element: document.getElementById("wikiedit-contents"), - blockStyles: { - italic: "_" - }, - tabSize: 4, - spellChecker: false, - toolbar: [ - { - name: "bold", - action: SimpleMDE.toggleBold, - className: "fas fa-bold no-icon", - title: "Grassetto", - }, - { - name: "italic", - action: SimpleMDE.toggleItalic, - className: "fas fa-italic no-icon", - title: "Corsivo", - }, - { - name: "strikethrough", - action: SimpleMDE.toggleStrikethrough, - className: "fas fa-strikethrough no-icon", - title: "Barrato", - }, - { - name: "link", - action: SimpleMDE.drawLink, - className: "fas fa-link no-icon", - title: "Link", - }, - "|", - { - name: "heading-smaller", - action: SimpleMDE.toggleHeadingSmaller, - className: "fas fa-header no-icon", - title: "(Rimpicciolisci) Titolo", - }, - { - name: "heading", - action: SimpleMDE.toggleHeadingBigger, - className: "fas fa-header fa-lg no-icon", - title: "(Ingrandisci) Titolo", - }, - "|", - { - name: "code", - action: SimpleMDE.toggleCodeBlock, - className: "fas fa-code no-icon", - title: "Codice", - }, - { - name: "quote", - action: SimpleMDE.toggleBlockquote, - className: "fas fa-quote-left no-icon", - title: "Citazione", - }, - { - name: "unordered-list", - action: SimpleMDE.toggleUnorderedList, - className: "fas fa-list-ul no-icon", - title: "Lista puntata", - }, - { - name: "ordered-list", - action: SimpleMDE.toggleOrderedList, - className: "fas fa-list-ol no-icon", - title: "Lista ordinata", - }, - { - name: "horizontal-rule", - action: SimpleMDE.drawHorizontalRule, - className: "fas fa-minus no-icon", - title: "Separatore", - }, - "|", - { - name: "image", - action: SimpleMDE.drawImage, - className: "fas fa-picture-o no-icon", - title: "Immagine", - }, - { - name: "table", - action: SimpleMDE.drawTable, - className: "fas fa-table no-icon", - title: "Tabella", - } - ], - }); - </script> -{% endblock %} \ No newline at end of file diff --git a/royalnet/web/royalprints/wikiview/__init__.py b/royalnet/web/royalprints/wikiview/__init__.py deleted file mode 100644 index 3f3fcbbf..00000000 --- a/royalnet/web/royalprints/wikiview/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -"""A User Games Wiki viewer :py:class:`royalnet.web.Royalprint`. Doesn't support any kind of edit.""" - -import flask as f -import os -from ...royalprint import Royalprint -from ...shortcuts import error, from_urluuid -from royalnet.packs.common.tables import User -from royalnet.packs.royal.tables import WikiPage, WikiRevision -from ....utils.wikirender import prepare_page_markdown, RenderError - - -tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') -rp = Royalprint("wikiview", __name__, url_prefix="/wiki/view", template_folder=tmpl_dir, - required_tables={User, WikiPage, WikiRevision}) - - -def prepare_page(page): - try: - if page.format == "markdown": - return f.render_template("wikiview_page.html", - page=page, - parsed_contents=f.Markup(prepare_page_markdown(page.contents)), - css=page.css) - elif page.format == "html": - return f.render_template("wikiview_page.html", - page=page, - parsed_contents=f.Markup(page.contents), - css=page.css) - else: - return error(500, f"Non esiste nessun handler in grado di preparare pagine con il formato {page.format}.") - except RenderError as e: - return error(500, f"La pagina Wiki non può essere preparata a causa di un errore: {str(e)}") - - -@rp.route("/") -def wikiview_index(): - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - pages = sorted(alchemy_session.query(alchemy.WikiPage).all(), key=lambda page: page.title) - return f.render_template("wikiview_index.html", pages=pages) - - -@rp.route("/<page_id>", defaults={"title": ""}) -@rp.route("/<page_id>/<title>") -def wikiview_by_id(page_id: str, title: str): - page_uuid = from_urluuid(page_id) - alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"] - page = alchemy_session.query(alchemy.WikiPage).filter(alchemy.WikiPage.page_id == page_uuid).one_or_none() - if page is None: - return error(404, f"La pagina richiesta non esiste.") - return prepare_page(page) diff --git a/royalnet/web/royalprints/wikiview/templates/wikiview_index.html b/royalnet/web/royalprints/wikiview/templates/wikiview_index.html deleted file mode 100644 index 98bb99ce..00000000 --- a/royalnet/web/royalprints/wikiview/templates/wikiview_index.html +++ /dev/null @@ -1,27 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Wiki -{% endblock %} - -{% block content %} - <div class="dbox"> - <div class="dbox-top"> - <span class="left"> - Wiki - </span> - </div> - <div class="dbox-bot"> - {% if session.royal %} - <a href="{{ url_for("wikiedit.wikiedit_newpage") }}" class="btn no-icon">Crea nuova pagina</a> - {% else %} - <button disabled title="Devi fare il login per creare nuove pagine!">Crea nuova pagina</button> - {% endif %} - <ul class="multicolumn"> - {% for page in pages %} - <li><a href="{{ url_for("wikiview.wikiview_by_id", page_id=page.page_short_id, title=page.title) }}">{{ page.title }}</a></li> - {% endfor %} - </ul> - </div> - </div> -{% endblock %} diff --git a/royalnet/web/royalprints/wikiview/templates/wikiview_page.html b/royalnet/web/royalprints/wikiview/templates/wikiview_page.html deleted file mode 100644 index 9b5448ae..00000000 --- a/royalnet/web/royalprints/wikiview/templates/wikiview_page.html +++ /dev/null @@ -1,34 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Wiki: {{ page.title }} -{% endblock %} - -{% block content %} - <div class="wikiview"> - <div class="dbox wiki-doublebox"> - <div class="dbox-top"> - <span class="left"> - Wiki page - </span> - <span class="right"> - {% if session.royal %} - <a class="edit no-icon" href="{{ url_for("wikiedit.wikiedit_by_id", page_id=page.page_short_id, title=page.title) }}">Modifica</a> - {% else %} - <a class="edit no-icon disabled" title="Devi fare il login per modificare pagine!">Modifica</a> - {% endif %} - </span> - </div> - <div class="dbox-bot"> - <div class="wikiview-page"> - <h1 class="wikiview-title"> - {{ page.title }} - </h1> - <div class="wikiview-contents"> - {{ parsed_contents }} - </div> - </div> - </div> - </div> - </div> -{% endblock %} diff --git a/royalnet/web/shortcuts.py b/royalnet/web/shortcuts.py deleted file mode 100644 index 3a2bd8e3..00000000 --- a/royalnet/web/shortcuts.py +++ /dev/null @@ -1,16 +0,0 @@ -import flask as f -import uuid as _uuid -import base64 - - -def error(code, reason): - return f.render_template("error.html", title=f"Errore {code}", reason=reason), code - - -def to_urluuid(uuid: _uuid.UUID) -> str: - """Return a base64 url-friendly short UUID.""" - return str(base64.urlsafe_b64encode(uuid.bytes), encoding="ascii").rstrip("=") - - -def from_urluuid(b: str) -> _uuid.UUID: - return _uuid.UUID(bytes=base64.urlsafe_b64decode(bytes(b + "==", encoding="ascii"))) diff --git a/royalnet/web/static/generic.png b/royalnet/web/static/generic.png deleted file mode 100644 index afc09e340b7a02fc2095d32c8a662bda590ee5ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94773 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 OjvYRADCVzAH~$yK{?obu diff --git a/royalnet/web/static/logo.png b/royalnet/web/static/logo.png deleted file mode 100644 index 2cca0cc9d323e44604eff36fd99199bc2e089476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50018 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 z 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 XXIAb<N)FsYd!>9??NZ)F^LzgVBce4b diff --git a/royalnet/web/static/logo.svg b/royalnet/web/static/logo.svg deleted file mode 100644 index 373effee..00000000 --- a/royalnet/web/static/logo.svg +++ /dev/null @@ -1,219 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="1000" - height="1000" - viewBox="0 0 264.58332 264.58333" - version="1.1" - id="svg8" - inkscape:version="0.92.3 (2405546, 2018-03-11)" - sodipodi:docname="LogoRoyalGames.svg" - inkscape:export-filename="C:\Users\stepi\Pictures\LogoRoyalGames.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96"> - <title - id="title5190">Royal Games - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Royal Games - - - - - - - - diff --git a/royalnet/web/static/ryg.css b/royalnet/web/static/ryg.css deleted file mode 100644 index 0ab2a195..00000000 --- a/royalnet/web/static/ryg.css +++ /dev/null @@ -1,812 +0,0 @@ -/*** Variables ***/ -/*** Standard elements ***/ -body { - font-family: "Arial", "Helvetica Neue", sans-serif; - background-color: #0d193b; - color: #a0ccff; - box-sizing: border-box; -} -a { - color: #00caca; - text-decoration: none; -} -a:hover { - color: #4affff; -} -a:active { - color: white; -} -a:not(.no-icon)::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0c1"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://t.me"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f2c6"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://www.youtube.com"]::before, -a:not(.no-icon)[href^="https://youtu.be"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f167"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://vimeo.com"]::before, -a:not(.no-icon)[href^="https://player.vimeo.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f27d"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://github.com"]::before, -a:not(.no-icon)[href^="https://gist.github.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f09b"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://itch.io"]::before, -a:not(.no-icon)[href^="https://steffo.itch.io"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f83a"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://www.kickstarter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f3bb"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://reddit.com"]::before, -a:not(.no-icon)[href^="https://new.reddit.com"]::before, -a:not(.no-icon)[href^="https://old.reddit.com"]::before, -a:not(.no-icon)[href^="https://redd.it"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f281"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://www.twitch.tv"]::before, -a:not(.no-icon)[href^="https://clips.twitch.tv"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1e8"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://store.steampowered.com"]::before, -a:not(.no-icon)[href^="https://steamcommunity.com"]::before, -a:not(.no-icon)[href^="https://partner.steamgames.com"]::before, -a:not(.no-icon)[href^="steam:"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1b6"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://twitter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f099"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://it.wikipedia.org"]::before, -a:not(.no-icon)[href^="https://en.wikipedia.org"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f266"; - margin-right: 3px; -} -a:not(.no-icon)[href^="#"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f13d"; - margin-right: 3px; -} -a:not(.no-icon)[href^="http:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f09c"; - margin-right: 4px; -} -a:not(.no-icon)[href^="magnet:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f076"; - margin-right: 4px; -} -b, -strong { - color: #ffff7d; -} -i, -em { - color: #ffbb7d; -} -h1, -h2, -h3, -h4, -h5, -h6 { - color: #ffffff; - margin-top: 0; - margin-bottom: 0; - font-weight: normal; -} -pre { - padding: 2px 4px 2px 8px; - margin: 8px; - color: lightgray; - border: 1px solid rgba(211, 211, 211, 0.2); - background-color: rgba(211, 211, 211, 0.1); - font-family: "Consolas", "Source Code Pro", monospace; -} -*:not(pre) > code { - color: lightgray; - border: 1px solid rgba(211, 211, 211, 0.2); - background-color: rgba(211, 211, 211, 0.1); -} -code { - font-family: "Consolas", "Source Code Pro", monospace; -} -blockquote { - color: #7dff7d; - border-left: 3px solid #7dff7d; - background-color: rgba(125, 255, 125, 0.1); - padding: 2px 4px 2px 8px; - margin: 8px; -} -textarea { - background-color: rgba(160, 204, 255, 0.1); - color: #a0ccff; - border: 1px solid #a0ccff; - padding: 2px; - margin: 1px; - font-size: small; - font-family: "Consolas", "Source Code Pro", monospace; - width: 100%; - height: 300px; -} -button, -input[type="submit"], -.btn { - background-color: rgba(160, 204, 255, 0.1); - color: #a0ccff !important; - border: 1px solid #a0ccff; - border-radius: 0; - padding: 2px 8px; - margin: 1px; - font-size: medium; - font-family: "Arial", "Helvetica Neue", sans-serif; - text-decoration: none; - cursor: default; -} -button:hover, -input[type="submit"]:hover, -.btn:hover { - background-color: rgba(160, 204, 255, 0.2); - color: #ffffff; - border-color: #ffffff; -} -button:active, -input[type="submit"]:active, -.btn:active { - background-color: rgba(160, 204, 255, 0.3); - color: white; - border-color: white; -} -input[type="text"], -input[type="password"], -input[type="email"] { - background-color: rgba(160, 204, 255, 0.1); - color: #a0ccff; - border: none; - border-bottom: 1px dashed #a0ccff; - padding: 2px; - margin: 1px; - font-size: medium; - font-family: "Arial", "Helvetica Neue", sans-serif; -} -select { - background-color: rgba(160, 204, 255, 0.1); - color: #a0ccff; - border: none; - border-bottom: 1px dotted #a0ccff; - padding: 2px; - margin: 1px; - font-size: medium; - font-family: "Arial", "Helvetica Neue", sans-serif; -} -select option { - background-color: #293c61; - color: #a0ccff; -} -img { - margin-left: auto; - margin-right: auto; - display: block; - max-width: 100%; -} -nav { - display: flex; - justify-content: space-between; - height: 50px; - line-height: 50px; - min-width: 400px; -} -nav .nav-left { - text-align: left; -} -nav .nav-center { - text-align: center; -} -nav .nav-right { - text-align: right; -} -nav .nav-image { - height: 50px; - display: inline; - vertical-align: middle; -} -nav .nav-sitename { - font-weight: bold; -} -nav .nav-login-unavailable { - opacity: 0.25; -} -table { - border-collapse: collapse; -} -table thead { - margin-top: 4px; - margin-left: 4px; - margin-right: 4px; - padding: 8px; -} -table thead th { - background-color: rgba(160, 204, 255, 0.2); - color: #ffffff; - padding-left: 4px; - padding-right: 4px; - text-align: left; - font-size: small; - font-weight: bold; -} -table thead tr:first-child th:first-child { - border-radius: 4px 0 0 0; -} -table thead tr:first-child th:last-child { - border-radius: 0 4px 0 0; -} -table tbody { - margin-bottom: 4px; - margin-left: 4px; - margin-right: 4px; - padding: 8px; -} -table tbody td { - background-color: rgba(160, 204, 255, 0.1); - padding-left: 4px; - padding-right: 4px; -} -table tbody tr { - border-bottom: 1px solid rgba(160, 204, 255, 0.2); -} -table tbody tr:last-child { - border-bottom: none; -} -table tbody tr:last-child td:first-child { - border-radius: 0 0 0 4px; -} -table tbody tr:last-child td:last-child { - border-radius: 0 0 4px 0; -} -form.full label { - margin-top: 4px; - margin-bottom: 4px; - display: flex; -} -form.full label .label-text { - margin-right: 12px; - min-width: 60px; -} -form.full label input { - flex-grow: 1; -} -form.full label.label-big { - font-size: x-large; -} -form.full label.label-big * { - font-size: x-large; -} -*[disabled=""], -.disabled { - opacity: 0.3; -} -/*** Modifiers ***/ -.tiny { - font-size: xx-small; -} -.center { - margin: auto; -} -/*** Custom elements ***/ -.CodeMirror { - font-family: "Consolas", monospace !important; - background-color: #0d193b !important; - color: #a0ccff !important; - border-top: 0 !important; - border-bottom: 0 !important; - border-left: 1px solid rgba(160, 204, 255, 0.2) !important; - border-right: 1px solid rgba(160, 204, 255, 0.2) !important; - border-radius: 0 !important; - caret-color: white; -} -.CodeMirror .cm-link { - color: #7dffff !important; -} -.CodeMirror .cm-url { - color: #00caca !important; -} -.CodeMirror .cm-tag { - color: #ff7dff !important; -} -.CodeMirror .cm-strong { - color: #ffff7d !important; -} -.CodeMirror .cm-em { - color: #ffbb7d !important; -} -.CodeMirror .cm-quote { - color: #7dff7d !important; -} -.CodeMirror .cm-comment { - color: lightgray !important; -} -.CodeMirror .cm-header { - color: #ffffff !important; -} -.CodeMirror .CodeMirror-cursor { - border-left: 1px solid #a0ccff !important; -} -.editor-toolbar, -.editor-statusbar { - background-color: #1c2b4f !important; - color: #a0ccff !important; - opacity: 1 !important; -} -.editor-toolbar a, -.editor-statusbar a { - color: #a0ccff !important; - border: 0 !important; -} -.editor-toolbar a:hover, -.editor-statusbar a:hover { - background-color: rgba(160, 204, 255, 0.2) !important; - color: #ffffff !important; -} -.editor-toolbar a.active, -.editor-statusbar a.active { - background-color: rgba(160, 204, 255, 0.3) !important; - color: white !important; -} -.editor-toolbar a.active:hover, -.editor-statusbar a.active:hover { - background-color: rgba(160, 204, 255, 0.2) !important; - color: #ffffff !important; -} -.editor-toolbar .fas, -.editor-statusbar .fas, -.editor-toolbar .far, -.editor-statusbar .far, -.editor-toolbar .fab, -.editor-statusbar .fab { - color: #a0ccff !important; -} -.editor-toolbar .fas:hover, -.editor-statusbar .fas:hover, -.editor-toolbar .far:hover, -.editor-statusbar .far:hover, -.editor-toolbar .fab:hover, -.editor-statusbar .fab:hover { - color: #a0ccff !important; -} -.editor-toolbar .fas:active, -.editor-statusbar .fas:active, -.editor-toolbar .far:active, -.editor-statusbar .far:active, -.editor-toolbar .fab:active, -.editor-statusbar .fab:active { - color: white !important; -} -.editor-toolbar { - border-top: 1px solid #2b3e62 !important; - border-left: 1px solid #2b3e62 !important; - border-right: 1px solid #2b3e62 !important; - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.editor-statusbar { - border-bottom: 1px solid #2b3e62 !important; - border-left: 1px solid #2b3e62 !important; - border-right: 1px solid #2b3e62 !important; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} -.horizontal-container-main { - display: flex; - justify-content: center; - align-content: center; - flex-direction: row; -} -@media (max-width: 1199px) { - .horizontal-container-main { - flex-direction: column; - } -} -.columns-3 { - display: flex; - justify-content: center; - align-content: center; - flex-direction: row; - flex-wrap: wrap; -} -.columns-3 .column { - width: 33.3%; - min-width: 400px; -} -.fill { - width: 100%; - height: 100%; - margin: 0 !important; -} -.vertical-main { - width: 100%; - min-width: 400px; - max-width: 1200px; -} -.box { - background-color: rgba(160, 204, 255, 0.1); - border-radius: 4px; - padding: 8px; - margin: 8px; -} -.dbox { - margin: 8px; -} -.dbox .dbox-top { - display: flex; - justify-content: space-between; - background-color: rgba(160, 204, 255, 0.2); - padding: 4px; - border-radius: 4px 4px 0 0; - color: #ffffff; - font-size: smaller; - font-weight: bold; - height: 16px; -} -.dbox .dbox-top .left { - align-self: flex-start; -} -.dbox .dbox-top .right { - align-self: flex-end; -} -.dbox .dbox-bot { - background-color: rgba(160, 204, 255, 0.1); - padding: 8px; - border-radius: 0 0 4px 4px; -} -.color { - border-radius: 4px; - width: 32px; - height: 32px; - display: inline-block; -} -.color.color-light { - border: 1px solid black; -} -.color.color-dark { - border: 1px solid white; -} -.proscons { - padding: 4px 4px 4px 8px; - margin: 4px; - border-radius: 4px; -} -.proscons.plus { - color: #7dff7d; - background-color: rgba(125, 255, 125, 0.1); -} -.proscons.plus::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0fe"; - margin-right: 6px; -} -.proscons.minus { - color: #ff7d7d; - background-color: rgba(255, 125, 125, 0.1); -} -.proscons.minus::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f146"; - margin-right: 6px; -} -.proscons.stars { - background-color: rgba(255, 255, 125, 0.1); - color: #ffff7d; - display: flex; -} -.proscons.stars .stars-0 { - margin-right: 6px; -} -.proscons.stars .stars-0::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005\f005\f005\f005"; -} -.proscons.stars .stars-1 { - margin-right: 6px; -} -.proscons.stars .stars-1::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005"; -} -.proscons.stars .stars-1::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005\f005\f005"; -} -.proscons.stars .stars-2 { - margin-right: 6px; -} -.proscons.stars .stars-2::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005"; -} -.proscons.stars .stars-2::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005\f005"; -} -.proscons.stars .stars-3 { - margin-right: 6px; -} -.proscons.stars .stars-3::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005\f005"; -} -.proscons.stars .stars-3::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005"; -} -.proscons.stars .stars-4 { - margin-right: 6px; -} -.proscons.stars .stars-4::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005\f005\f005"; -} -.proscons.stars .stars-4::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005"; -} -.proscons.stars .stars-5 { - margin-right: 6px; -} -.proscons.stars .stars-5::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005\f005\f005\f005"; -} -.proscons:not(.plus):not(.minus):not(.stars) { - color: #a0ccff; - background-color: rgba(160, 204, 255, 0.1); -} -.proscons:not(.plus):not(.minus):not(.stars)::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0c8"; - margin-right: 6px; -} -.proscons.label-big { - font-size: xx-large; -} -.spoiler { - color: transparent; - background-color: rgba(255, 125, 125, 0.1); - border: 1px solid rgba(255, 125, 125, 0.1); - border-radius: 2px; - padding: 4px; -} -.spoiler b, -.spoiler strong, -.spoiler i, -.spoiler em { - color: inherit; -} -.spoiler b:hover, -.spoiler strong:hover, -.spoiler i:hover, -.spoiler em:hover { - color: inherit; -} -.spoilerblockquote { - border-radius: 2px; - padding: 4px; -} -.spoiler:hover { - color: #ff7d7d; -} -.wiki .wiki-doublebox .dbox-bot, -.profile-bio .wiki-doublebox .dbox-bot { - background-color: transparent; - border-top: 0; - border-bottom: 4px solid rgba(160, 204, 255, 0.2); - border-left: 4px solid rgba(160, 204, 255, 0.2); - border-right: 4px solid rgba(160, 204, 255, 0.2); -} -.wiki .wiki-doublebox .dbox-bot .wikiview-title, -.profile-bio .wiki-doublebox .dbox-bot .wikiview-title { - text-align: center; - font-size: 42px; - margin-top: 0; -} -.wiki h1, -.profile-bio h1, -.wiki h2, -.profile-bio h2, -.wiki h3, -.profile-bio h3, -.wiki h4, -.profile-bio h4, -.wiki h5, -.profile-bio h5, -.wiki h6, -.profile-bio h6 { - margin-top: revert; - margin-bottom: revert; -} -.error .error-dbox .dbox-top { - background-color: rgba(255, 125, 125, 0.2); - color: #ff7d7d; -} -.error .error-dbox .dbox-bot { - background-color: rgba(255, 125, 125, 0.1); - color: #ff7d7d; -} -.diario { - display: grid; - grid-template-columns: auto auto 40px; -} -.diario .diario-content { - grid-row: 1; - grid-column-start: 1; - grid-column-end: 4; -} -.diario .diario-content .diario-img img { - color: red; - margin-top: 2px; - margin-bottom: 2px; - max-height: 400px; -} -.diario .diario-content .diario-text { - margin-top: 2px; - margin-bottom: 2px; -} -.diario .diario-quote { - grid-row: 2; - grid-column-start: 1; - grid-column-end: 4; - font-size: small; - margin-top: 2px; - margin-bottom: 2px; -} -.diario .diario-quote .diario-context { - font-style: italic; -} -.diario .diario-timestamp { - grid-row: 3; - grid-column: 1; - font-size: x-small; - margin-top: 2px; - margin-bottom: 2px; -} -.diario .diario-created { - grid-row: 3; - grid-column: 2; - justify-self: end; - font-size: x-small; - margin-top: 2px; - margin-bottom: 2px; -} -.diario .diario-id { - grid-row: 3; - grid-column: 3; - justify-self: end; - font-size: x-small; - margin-top: 2px; - margin-bottom: 2px; -} -.diario.diario-spoiler { - color: transparent; - background-color: rgba(255, 125, 125, 0.1); - border-left: 3px solid #ff7d7d; -} -.diario.diario-spoiler:hover { - color: #ff7d7d; -} -ul.multicolumn, -ol.multicolumn { - column-width: 300px; -} -/*** Page specific classes ***/ -.mcstatus-grid { - display: grid; - grid-template-columns: 64px auto auto; - grid-column-gap: 12px; - align-items: center; -} -.mcstatus-grid .mcstatus-icon { - grid-column: 1; - grid-row-start: 1; - grid-row-end: 3; - width: 64px; - height: 64px; -} -.mcstatus-grid .mcstatus-icon .mcstatus-icon-img { - width: 64px; - height: 64px; -} -.mcstatus-grid .mcstatus-address { - font-weight: bold; - grid-column: 2; - justify-self: start; - grid-row: 1; -} -.mcstatus-grid .mcstatus-address .server-up { - color: #7dff7d; -} -.mcstatus-grid .mcstatus-address .server-down { - color: #ff7d7d; -} -.mcstatus-grid .mcstatus-description { - grid-column: 2; - justify-self: start; - grid-row: 2; -} -.mcstatus-grid .mcstatus-players { - grid-column: 3; - justify-self: end; - grid-row: 1; -} -.mcstatus-grid .mcstatus-version { - grid-column: 3; - justify-self: end; - grid-row: 2; -} -.profile .profile-links .links-linked { - font-family: "Consolas", "Source Code Pro", monospace; -} -.profile .profile-links .links-missing { - color: #ff7d7d; -} -.profile .profile-stats .stats-value { - font-weight: bold; -} -.tg-login-container { - width: 238px; - height: 40px; -} -/*# sourceMappingURL=ryg.css.map */ \ No newline at end of file diff --git a/royalnet/web/static/ryg.css.map b/royalnet/web/static/ryg.css.map deleted file mode 100644 index 6bad31c9..00000000 --- a/royalnet/web/static/ryg.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["ryg.less"],"names":[],"mappings":"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","file":"ryg.css"} \ No newline at end of file diff --git a/royalnet/web/static/ryg.less b/royalnet/web/static/ryg.less deleted file mode 100644 index dbd9ecd4..00000000 --- a/royalnet/web/static/ryg.less +++ /dev/null @@ -1,985 +0,0 @@ -/*** Variables ***/ - -@bg: #0d193b; //Background color -@fg: #a0ccff; //Foreground color -@li: #00caca; //Link -@ec: #ffffff; //Extra color - -@fg-ten: fade(@fg, 10%); -@fg-twenty: fade(@fg, 20%); - -@fg-ten-hard: screen(@bg, @fg-ten); -@fg-twenty-hard: screen(@bg, @fg-twenty); - -@pastel-red: #ff7d7d; -@pastel-orange: #ffbb7d; -@pastel-yellow: #ffff7d; -@pastel-lime: #7dff7d; -@pastel-cyan: #7dffff; -@pastel-blue: #7d7dff; -@pastel-magenta: #ff7dff; - -@main-fonts: "Arial", "Helvetica Neue", sans-serif; -@monospace-fonts: "Consolas", "Source Code Pro", monospace; - - -/*** Standard elements ***/ - -body { - font-family: @main-fonts; - background-color: @bg; - color: @fg; - box-sizing: border-box; -} - -a { - color: @li; - text-decoration: none; - - &:hover { - color: lighten(@li, 25%); - } - - &:active { - color: white; - } - - //Icon link - //noinspection CssNoGenericFontName - &:not(.no-icon) { - //External link - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0c1"; - margin-right: 4px; - } - - //Telegram link - &[href^="https://t.me"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f2c6"; - margin-right: 3px; - } - - //YouTube link - &[href^="https://www.youtube.com"]::before, &[href^="https://youtu.be"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f167"; - margin-right: 3px; - } - - //Vimeo link - &[href^="https://vimeo.com"]::before, &[href^="https://player.vimeo.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f27d"; - margin-right: 4px; - } - - //GitHub link - &[href^="https://github.com"]::before, &[href^="https://gist.github.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f09b"; - margin-right: 4px; - } - - //Itchio link - &[href^="https://itch.io"]::before, &[href^="https://steffo.itch.io"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f83a"; - margin-right: 3px; - } - - //Kickstarter link - &[href^="https://www.kickstarter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f3bb"; - margin-right: 4px; - } - - //Reddit link - &[href^="https://reddit.com"]::before, &[href^="https://new.reddit.com"]::before, &[href^="https://old.reddit.com"]::before, &[href^="https://redd.it"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f281"; - margin-right: 3px; - } - - //Twitch link - &[href^="https://www.twitch.tv"]::before, &[href^="https://clips.twitch.tv"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1e8"; - margin-right: 4px; - } - - //Steam link - &[href^="https://store.steampowered.com"]::before, &[href^="https://steamcommunity.com"]::before, &[href^="https://partner.steamgames.com"]::before, &[href^="steam:"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1b6"; - margin-right: 4px; - } - - //Twitter link - &[href^="https://twitter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f099"; - margin-right: 3px; - } - - //Wikipedia link - &[href^="https://it.wikipedia.org"]::before, &[href^="https://en.wikipedia.org"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f266"; - margin-right: 3px; - } - - //Anchor - &[href^="#"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f13d"; - margin-right: 3px; - } - - //Unsafe link - &[href^="http:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f09c"; - margin-right: 4px; - } - - //Magnet link - &[href^="magnet:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f076"; - margin-right: 4px; - } - } -} - -b, strong { - color: @pastel-yellow; -} - -i, em { - color: @pastel-orange; -} - -h1, h2, h3, h4, h5, h6 { - color: @ec; - margin-top: 0; - margin-bottom: 0; - font-weight: normal; -} - -pre { - padding: 2px 4px 2px 8px; - margin: 8px; - - color: lightgray; - border: 1px solid fade(lightgray, 20%); - background-color: fade(lightgray, 10%); - font-family: @monospace-fonts; -} - -*:not(pre) > code { - color: lightgray; - border: 1px solid fade(lightgray, 20%); - background-color: fade(lightgray, 10%); -} -code { - font-family: @monospace-fonts; -} - -blockquote { - color: @pastel-lime; - border-left: 3px solid @pastel-lime; - background-color: fade(@pastel-lime, 10%); - padding: 2px 4px 2px 8px; - margin: 8px; -} - -textarea { - background-color: @fg-ten; - color: @fg; - border: 1px solid @fg; - padding: 2px; - margin: 1px; - font-size: small; - font-family: @monospace-fonts; - width: 100%; - height: 300px; -} - -button, input[type="submit"], .btn { - background-color: @fg-ten; - color: @fg !important; - border: 1px solid @fg; - border-radius: 0; - padding: 2px 8px; - margin: 1px; - font-size: medium; - font-family: @main-fonts; - text-decoration: none; - cursor: default; - - &:hover { - background-color: @fg-twenty; - color: lighten(@fg, 25%); - border-color: lighten(@fg, 25%); - } - - &:active { - background-color: fade(@fg, 30%); - color: white; - border-color: white; - } -} - -input[type="text"], input[type="password"], input[type="email"] { - background-color: @fg-ten; - color: @fg; - border: none; - border-bottom: 1px dashed @fg; - padding: 2px; - margin: 1px; - font-size: medium; - font-family: @main-fonts; -} - -select { - background-color: @fg-ten; - color: @fg; - border: none; - border-bottom: 1px dotted @fg; - padding: 2px; - margin: 1px; - font-size: medium; - font-family: @main-fonts; - - option { - background-color: #293c61; - color: @fg; - } -} - -img { - margin-left: auto; - margin-right: auto; - display: block; - max-width: 100%; -} - -nav { - display: flex; - justify-content: space-between; - height: 50px; - line-height: 50px; - min-width: 400px; - - .nav-left { - text-align: left; - } - - .nav-center { - text-align: center; - } - - .nav-right { - text-align: right; - } - - .nav-image { - height: 50px; - display: inline; - vertical-align: middle; - } - - .nav-sitename { - font-weight: bold; - } - - .nav-login-unavailable { - opacity: 0.25; - } -} - -table { - border-collapse: collapse; - - thead { - margin-top: 4px; - margin-left: 4px; - margin-right: 4px; - padding: 8px; - - th { - background-color: @fg-twenty; - color: @ec; - padding-left: 4px; - padding-right: 4px; - text-align: left; - font-size: small; - font-weight: bold; - } - - tr:first-child { - th:first-child { - border-radius: 4px 0 0 0; - } - - th:last-child { - border-radius: 0 4px 0 0; - } - } - } - - tbody { - margin-bottom: 4px; - margin-left: 4px; - margin-right: 4px; - padding: 8px; - - td { - background-color: @fg-ten; - padding-left: 4px; - padding-right: 4px; - } - - tr { - border-bottom: 1px solid @fg-twenty; - - &:last-child { - border-bottom: none; - - td:first-child { - border-radius: 0 0 0 4px; - } - - td:last-child { - border-radius: 0 0 4px 0; - } - } - } - } -} - -form.full { - - label { - margin-top: 4px; - margin-bottom: 4px; - display: flex; - - .label-text { - margin-right: 12px; - min-width: 60px; - } - - input { - flex-grow: 1; - } - - &.label-big { - font-size: x-large; - - * { - font-size: x-large; - } - } - } -} - -*[disabled=""], .disabled { - opacity: 0.3; -} - - -/*** Modifiers ***/ -.tiny { - font-size: xx-small; -} - -.center { - margin: auto; -} - - -/*** Custom elements ***/ - -//Markdown editor -.CodeMirror { - font-family: "Consolas", monospace !important; - background-color: @bg !important; - color: @fg !important; - border-top: 0 !important; - border-bottom: 0 !important; - border-left: 1px solid @fg-twenty !important; - border-right: 1px solid @fg-twenty !important; - border-radius: 0 !important; - caret-color: white; - - .cm-link { - color: @pastel-cyan !important; - } - - .cm-url { - color: @li !important; - } - - .cm-tag { - color: @pastel-magenta !important; - } - - .cm-strong { - color: @pastel-yellow !important; - } - - .cm-em { - color: @pastel-orange !important; - } - - .cm-quote { - color: @pastel-lime !important; - } - - .cm-comment { - color: lightgray !important; - } - - .cm-header { - color: @ec !important; - } - - .CodeMirror-cursor { - border-left: 1px solid @fg !important; - } -} -.editor-toolbar, .editor-statusbar { - background-color: @fg-ten-hard !important; - color: @fg !important; - opacity: 1 !important; - - a { - color: @fg !important; - border: 0 !important; - - &:hover { - background-color: @fg-twenty !important; - color: lighten(@fg, 25%) !important; - } - - &.active { - background-color: fade(@fg, 30%) !important; - color: white !important; - - &:hover { - background-color: @fg-twenty !important; - color: lighten(@fg, 25%) !important; - } - } - } - - .fas, .far, .fab { - color: @fg !important; - - &:hover { - color: @fg !important; - } - - &:active { - color: white !important; - } - } -} -.editor-toolbar { - border-top: 1px solid @fg-twenty-hard !important; - border-left: 1px solid @fg-twenty-hard !important; - border-right: 1px solid @fg-twenty-hard !important; - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.editor-statusbar { - border-bottom: 1px solid @fg-twenty-hard !important; - border-left: 1px solid @fg-twenty-hard !important; - border-right: 1px solid @fg-twenty-hard !important; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} - -//Horizontal container, should contain elements such as main and sidebar -.horizontal-container-main { - display: flex; - justify-content: center; - align-content: center; - flex-direction: row; - - @media (max-width: 1199px) - { - flex-direction: column; - } -} - -//Tripart horizontal container -.columns-3 { - display: flex; - justify-content: center; - align-content: center; - flex-direction: row; - flex-wrap: wrap; - - .column { - width: 33.3%; - min-width: 400px; - } -} - -//Fill the whole parent element and ignore margins -.fill { - width: 100%; - height: 100%; - margin: 0 !important; -} - -//Vertical main page container -.vertical-main { - width: 100%; - min-width: 400px; - max-width: 1200px; -} - -//A simple box -.box { - background-color: @fg-ten; - border-radius: 4px; - padding: 8px; - margin: 8px; -} - -//A double box -.dbox { - margin: 8px; - - .dbox-top { - display: flex; - justify-content: space-between; - background-color: @fg-twenty; - padding: 4px; - border-radius: 4px 4px 0 0; - color: @ec; - font-size: smaller; - font-weight: bold; - height: 16px; - - .left { - align-self: flex-start; - } - - .right { - align-self: flex-end; - } - } - - .dbox-bot { - background-color: @fg-ten; - padding: 8px; - border-radius: 0 0 4px 4px; - } -} - -//A palette color -.color { - border-radius: 4px; - width: 32px; - height: 32px; - display: inline-block; - - &.color-light { - border: 1px solid black; - } - - &.color-dark { - border: 1px solid white; - } -} - -//Pros and cons of something -.proscons { - padding: 4px 4px 4px 8px; - margin: 4px; - border-radius: 4px; - - //noinspection CssNoGenericFontName - &.plus { - color: @pastel-lime; - background-color: fade(@pastel-lime, 10%); - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0fe"; - margin-right: 6px; - } - } - - //noinspection CssNoGenericFontName - &.minus { - color: @pastel-red; - background-color: fade(@pastel-red, 10%); - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f146"; - margin-right: 6px; - } - } - - //noinspection CssNoGenericFontName - &.stars { - background-color: fade(@pastel-yellow, 10%); - color: @pastel-yellow; - display: flex; - - .stars-0 { - margin-right: 6px; - - &::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005\f005\f005\f005"; - } - } - - .stars-1 { - margin-right: 6px; - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005"; - } - - &::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005\f005\f005"; - } - } - - .stars-2 { - margin-right: 6px; - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005"; - } - - &::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005\f005"; - } - } - - .stars-3 { - margin-right: 6px; - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005\f005"; - } - - &::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005\f005"; - } - } - - .stars-4 { - margin-right: 6px; - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005\f005\f005"; - } - - &::after { - font-family: "Font Awesome 5 Free"; - font-weight: normal; - content: "\f005"; - } - } - - .stars-5 { - margin-right: 6px; - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f005\f005\f005\f005\f005"; - } - } - } - - //noinspection CssNoGenericFontName - &:not(.plus):not(.minus):not(.stars) { - color: @fg; - background-color: @fg-ten; - - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0c8"; - margin-right: 6px; - } - } - - &.label-big { - font-size: xx-large; - } -} - -//A spoiler -.spoiler { - color: transparent; - background-color: fade(@pastel-red, 10%); - border: 1px solid fade(@pastel-red, 10%); - border-radius: 2px; - padding: 4px; - - b, strong, i, em { - color: inherit; - - &:hover { - color: inherit; - } - } - - &blockquote { - border-radius: 2px; - padding: 4px; - } - - &:hover { - color: @pastel-red; - } -} - -//Wiki page -.wiki, .profile-bio { - .wiki-doublebox { - .dbox-bot { - background-color: transparent; - border-top: 0; - border-bottom: 4px solid @fg-twenty; - border-left: 4px solid @fg-twenty; - border-right: 4px solid @fg-twenty; - - .wikiview-title { - text-align: center; - font-size: 42px; - margin-top: 0; - } - } - } - - h1, h2, h3, h4, h5, h6 { - margin-top: revert; - margin-bottom: revert; - } -} - -//An error -.error { - .error-dbox { - .dbox-top { - background-color: fade(@pastel-red, 20%); - color: @pastel-red; - } - - .dbox-bot { - background-color: fade(@pastel-red, 10%); - color: @pastel-red; - } - } -} - -//A diario entry -.diario { - display: grid; - grid-template-columns: auto auto 40px; - - .diario-content { - grid-row: 1; - grid-column-start: 1; - grid-column-end: 4; - - .diario-img img { - color: red; - margin-top: 2px; - margin-bottom: 2px; - max-height: 400px; - } - - .diario-text { - margin-top: 2px; - margin-bottom: 2px; - } - } - - .diario-quote { - grid-row: 2; - grid-column-start: 1; - grid-column-end: 4; - font-size: small; - margin-top: 2px; - margin-bottom: 2px; - - .diario-context { - font-style: italic; - } - } - - .diario-timestamp { - grid-row: 3; - grid-column: 1; - font-size: x-small; - margin-top: 2px; - margin-bottom: 2px; - } - - .diario-created { - grid-row: 3; - grid-column: 2; - justify-self: end; - font-size: x-small; - margin-top: 2px; - margin-bottom: 2px; - } - - .diario-id { - grid-row: 3; - grid-column: 3; - justify-self: end; - font-size: x-small; - margin-top: 2px; - margin-bottom: 2px; - } - - &.diario-spoiler { - color: transparent; - background-color: fade(@pastel-red, 10%); - border-left: 3px solid @pastel-red; - - &:hover { - color: @pastel-red; - } - } -} - -//Multicolumn lists -ul.multicolumn, ol.multicolumn { - column-width: 300px; -} - - -/*** Page specific classes ***/ - -.mcstatus-grid { - display: grid; - - grid-template-columns: 64px auto auto; - grid-column-gap: 12px; - - align-items: center; - - .mcstatus-icon { - grid-column: 1; - grid-row-start: 1; - grid-row-end: 3; - width: 64px; - height: 64px; - - .mcstatus-icon-img { - width: 64px; - height: 64px; - } - } - - .mcstatus-address { - font-weight: bold; - - grid-column: 2; - justify-self: start; - grid-row: 1; - - .server-up { - color: @pastel-lime; - } - - .server-down { - color: @pastel-red; - } - } - - .mcstatus-description { - grid-column: 2; - justify-self: start; - grid-row: 2; - } - - .mcstatus-players { - grid-column: 3; - justify-self: end; - grid-row: 1; - } - - .mcstatus-version { - grid-column: 3; - justify-self: end; - grid-row: 2; - } -} - -.profile { - - .profile-links { - - .links-linked { - font-family: @monospace-fonts; - } - - .links-missing { - color: @pastel-red; - } - } - - .profile-stats { - - .stats-value { - font-weight: bold; - } - } -} - -.tg-login-container { - width: 238px; - height: 40px; -} diff --git a/royalnet/web/static/tf2.css b/royalnet/web/static/tf2.css deleted file mode 100644 index 2e73cc59..00000000 --- a/royalnet/web/static/tf2.css +++ /dev/null @@ -1,309 +0,0 @@ -@font-face { - font-family: 'TF2'; - src: url('https://scaleway.steffo.eu/tf2.ttf'); -} -@font-face { - font-family: 'TF2 Build'; - src: url('https://scaleway.steffo.eu/tf2build.ttf'); -} -@font-face { - font-family: 'TF2 Professor'; - src: url('https://scaleway.steffo.eu/tf2professor.ttf'); -} -@font-face { - font-family: 'TF2 Secondary'; - src: url('https://scaleway.steffo.eu/tf2secondary.ttf'); -} -body { - font-family: "TF2 Secondary", sans-serif; - background-color: #2e2a28; - color: #d2cdc8; - box-sizing: border-box; -} -a { - color: #9a4713; - text-decoration: none; -} -a:hover { - color: #e88345; -} -a:active { - color: white; -} -a:not(.no-icon)::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0c1"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://t.me"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f2c6"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://www.youtube.com"]::before, -a:not(.no-icon)[href^="https://youtu.be"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f167"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://vimeo.com"]::before, -a:not(.no-icon)[href^="https://player.vimeo.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f27d"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://github.com"]::before, -a:not(.no-icon)[href^="https://gist.github.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f09b"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://itch.io"]::before, -a:not(.no-icon)[href^="https://steffo.itch.io"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f83a"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://www.kickstarter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f3bb"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://reddit.com"]::before, -a:not(.no-icon)[href^="https://new.reddit.com"]::before, -a:not(.no-icon)[href^="https://old.reddit.com"]::before, -a:not(.no-icon)[href^="https://redd.it"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f281"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://www.twitch.tv"]::before, -a:not(.no-icon)[href^="https://clips.twitch.tv"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1e8"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://store.steampowered.com"]::before, -a:not(.no-icon)[href^="https://steamcommunity.com"]::before, -a:not(.no-icon)[href^="https://partner.steamgames.com"]::before, -a:not(.no-icon)[href^="steam:"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1b6"; - margin-right: 4px; -} -a:not(.no-icon)[href^="https://twitter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f099"; - margin-right: 3px; -} -a:not(.no-icon)[href^="https://it.wikipedia.org"]::before, -a:not(.no-icon)[href^="https://en.wikipedia.org"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f266"; - margin-right: 3px; -} -a:not(.no-icon)[href^="#"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f13d"; - margin-right: 3px; -} -a:not(.no-icon)[href^="http:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f09c"; - margin-right: 4px; -} -a:not(.no-icon)[href^="magnet:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f076"; - margin-right: 4px; -} -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: "TF2 Build", sans-serif; - color: #ffffff; - margin-top: 0; - margin-bottom: 0; - font-weight: normal; -} -code { - font-family: "Consolas", "Source Code Pro", monospace; -} -blockquote { - color: #d2cdc8; - border-left: 3px solid #d2cdc8; - background-color: rgba(210, 205, 200, 0.1); - padding: 2px 4px 2px 8px; - margin: 8px; -} -textarea { - background-color: rgba(210, 205, 200, 0.1); - color: #d2cdc8; - border: 1px solid #d2cdc8; - padding: 2px; - margin: 1px; - font-size: small; - font-family: "Consolas", "Source Code Pro", monospace; - width: 100%; - height: 300px; -} -button, -input[type="submit"], -.btn { - background-color: rgba(210, 205, 200, 0.1); - color: #d2cdc8 !important; - border: 1px solid #d2cdc8; - border-radius: 0; - padding: 2px 8px; - margin: 1px; - font-size: medium; - font-family: sans-serif; - text-decoration: none; - cursor: default; -} -button:hover, -input[type="submit"]:hover, -.btn:hover { - background-color: rgba(210, 205, 200, 0.2); - color: #ffffff; - border-color: #ffffff; -} -button:active, -input[type="submit"]:active, -.btn:active { - background-color: rgba(210, 205, 200, 0.3); - color: white; - border-color: white; -} -pre { - margin: 0; -} -img { - margin-left: auto; - margin-right: auto; - display: block; - max-width: 100%; -} -nav { - display: flex; - justify-content: space-between; - height: 50px; - line-height: 50px; -} -nav .nav-left { - text-align: left; -} -nav .nav-center { - text-align: center; -} -nav .nav-right { - text-align: right; -} -nav .nav-image { - height: 50px; - display: none; - vertical-align: middle; -} -nav .nav-sitename { - font-weight: bold; -} -nav .nav-login-unavailable { - opacity: 0.25; -} -.horizontal-container-main { - display: flex; - justify-content: center; - align-content: center; - flex-direction: column; -} -@media (min-width: 800px) { - .horizontal-container-main { - flex-direction: row; - } -} -.vertical-main { - width: 100%; -} -@media (min-width: 800px) { - .vertical-main { - width: 800px; - } -} -@media (min-width: 1200px) { - .vertical-main { - width: 1200px; - } -} -.box { - background-color: #d2cdc8; - color: black; - border-radius: 2px; - padding: 4px; - margin: 8px; -} -.dbox { - margin: 8px; -} -.dbox .dbox-top { - display: flex; - justify-content: space-between; - background-color: #9a4713; - padding: 8px; - border-radius: 4px 4px 0 0; - color: #ffffff; - font-family: "TF2 Build", sans-serif; - font-weight: normal; -} -.dbox .dbox-top .left { - align-self: flex-start; -} -.dbox .dbox-top .right { - align-self: flex-end; -} -.dbox .dbox-top a { - color: #00caca; -} -.dbox .dbox-bot { - background-color: #d2cdc8; - color: black; - padding: 8px; - border-radius: 0 0 4px 4px; -} -.dbox .dbox-bot h1, -.dbox .dbox-bot h2, -.dbox .dbox-bot h3, -.dbox .dbox-bot h4, -.dbox .dbox-bot h5, -.dbox .dbox-bot h6 { - color: black; -} -.spoiler { - color: rgba(0, 0, 0, 0); - border: 1px solid rgba(210, 205, 200, 0.1); - border-radius: 2px; -} -.spoiler:hover { - color: #d2cdc8; -} -.disabled { - opacity: 0.3; -} -/*# sourceMappingURL=tf2.css.map */ \ No newline at end of file diff --git a/royalnet/web/static/tf2.css.map b/royalnet/web/static/tf2.css.map deleted file mode 100644 index 05323f86..00000000 --- a/royalnet/web/static/tf2.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["tf2.less"],"names":[],"mappings":"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","file":"tf2.css"} \ No newline at end of file diff --git a/royalnet/web/static/tf2.less b/royalnet/web/static/tf2.less deleted file mode 100644 index 541033d2..00000000 --- a/royalnet/web/static/tf2.less +++ /dev/null @@ -1,362 +0,0 @@ -@bg: #2e2a28; //Background color -@fg: #d2cdc8; //Foreground color -@li: #9a4713; //Link -@ec: #ffffff; //Extra color - - -@font-face { - font-family: 'TF2'; - src: url('https://scaleway.steffo.eu/tf2.ttf'); -} - -@font-face { - font-family: 'TF2 Build'; - src: url('https://scaleway.steffo.eu/tf2build.ttf'); -} - -@font-face { - font-family: 'TF2 Professor'; - src: url('https://scaleway.steffo.eu/tf2professor.ttf'); -} - -@font-face { - font-family: 'TF2 Secondary'; - src: url('https://scaleway.steffo.eu/tf2secondary.ttf'); -} - -@main-fonts: "TF2 Secondary", sans-serif; -@monospace-fonts: "Consolas", "Source Code Pro", monospace; - -//General -body { - font-family: @main-fonts; - background-color: @bg; - color: @fg; - box-sizing: border-box; -} - -a { - color: @li; - text-decoration: none; - - &:hover { - color: lighten(@li, 25%); - } - - &:active { - color: white; - } - - //Icon link - //noinspection CssNoGenericFontName - &:not(.no-icon) { - //External link - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f0c1"; - margin-right: 4px; - } - - //Telegram link - &[href^="https://t.me"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f2c6"; - margin-right: 3px; - } - - //YouTube link - &[href^="https://www.youtube.com"]::before, &[href^="https://youtu.be"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f167"; - margin-right: 3px; - } - - //Vimeo link - &[href^="https://vimeo.com"]::before, &[href^="https://player.vimeo.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f27d"; - margin-right: 4px; - } - - //GitHub link - &[href^="https://github.com"]::before, &[href^="https://gist.github.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f09b"; - margin-right: 4px; - } - - //Itchio link - &[href^="https://itch.io"]::before, &[href^="https://steffo.itch.io"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f83a"; - margin-right: 3px; - } - - //Kickstarter link - &[href^="https://www.kickstarter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f3bb"; - margin-right: 4px; - } - - //Reddit link - &[href^="https://reddit.com"]::before, &[href^="https://new.reddit.com"]::before, &[href^="https://old.reddit.com"]::before, &[href^="https://redd.it"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f281"; - margin-right: 3px; - } - - //Twitch link - &[href^="https://www.twitch.tv"]::before, &[href^="https://clips.twitch.tv"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1e8"; - margin-right: 4px; - } - - //Steam link - &[href^="https://store.steampowered.com"]::before, &[href^="https://steamcommunity.com"]::before, &[href^="https://partner.steamgames.com"]::before, &[href^="steam:"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f1b6"; - margin-right: 4px; - } - - //Twitter link - &[href^="https://twitter.com"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f099"; - margin-right: 3px; - } - - //Wikipedia link - &[href^="https://it.wikipedia.org"]::before, &[href^="https://en.wikipedia.org"]::before { - font-family: "Font Awesome 5 Brands"; - font-weight: bold; - content: "\f266"; - margin-right: 3px; - } - - //Anchor - &[href^="#"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f13d"; - margin-right: 3px; - } - - //Unsafe link - &[href^="http:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f09c"; - margin-right: 4px; - } - - //Magnet link - &[href^="magnet:"]::before { - font-family: "Font Awesome 5 Free"; - font-weight: bold; - content: "\f076"; - margin-right: 4px; - } - } -} - -h1, h2, h3, h4, h5, h6 { - font-family: "TF2 Build", sans-serif; - color: @ec; - margin-top: 0; - margin-bottom: 0; - font-weight: normal; -} - -code { - font-family: @monospace-fonts; -} - -blockquote { - color: @fg; - border-left: 3px solid @fg; - background-color: fade(@fg, 10%); - padding: 2px 4px 2px 8px; - margin: 8px; -} - -textarea { - background-color: fade(@fg, 10%); - color: @fg; - border: 1px solid @fg; - padding: 2px; - margin: 1px; - font-size: small; - font-family: @monospace-fonts; - width: 100%; - height: 300px; -} - -button, input[type="submit"], .btn { - background-color: fade(@fg, 10%); - color: @fg !important; - border: 1px solid @fg; - border-radius: 0; - padding: 2px 8px; - margin: 1px; - font-size: medium; - font-family: sans-serif; - text-decoration: none; - cursor: default; - - &:hover { - background-color: fade(@fg, 20%); - color: lighten(@fg, 25%); - border-color: lighten(@fg, 25%); - } - - &:active { - background-color: fade(@fg, 30%); - color: white; - border-color: white; - } -} - -pre { - margin: 0; -} - -img { - margin-left: auto; - margin-right: auto; - display: block; - max-width: 100%; -} - -nav { - display: flex; - justify-content: space-between; - height: 50px; - line-height: 50px; - - .nav-left { - text-align: left; - } - - .nav-center { - text-align: center; - } - - .nav-right { - text-align: right; - } - - .nav-image { - height: 50px; - display: none; - vertical-align: middle; - } - - .nav-sitename { - font-weight: bold; - } - - .nav-login-unavailable { - opacity: 0.25; - } -} - -//Elements - -.horizontal-container-main { - display: flex; - justify-content: center; - align-content: center; - flex-direction: column; - - @media (min-width: 800px) - { - flex-direction: row; - } -} - -.vertical-main { - width: 100%; - - @media (min-width: 800px) - { - width: 800px; - } - - @media (min-width: 1200px) - { - width: 1200px; - } -} - -.box { - background-color: @fg; - color: black; - border-radius: 2px; - padding: 4px; - margin: 8px; -} - -.dbox { - margin: 8px; - - .dbox-top { - display: flex; - justify-content: space-between; - background-color: @li; - padding: 8px; - border-radius: 4px 4px 0 0; - color: @ec; - font-family: "TF2 Build", sans-serif; - font-weight: normal; - - .left { - align-self: flex-start; - } - - .right { - align-self: flex-end; - } - - a { - color: #00caca; - } - } - - .dbox-bot { - background-color: @fg; - color: black; - padding: 8px; - border-radius: 0 0 4px 4px; - - h1, h2, h3, h4, h5, h6 { - color: black; - } - } -} - -.spoiler { - color: rgba(0, 0, 0, 0); - border: 1px solid fade(@fg, 10%); - border-radius: 2px; - - &:hover { - color: @fg; - } -} - -.disabled { - opacity: 0.3; -} \ No newline at end of file diff --git a/royalnet/web/templates/base.html b/royalnet/web/templates/base.html deleted file mode 100644 index 400e1a12..00000000 --- a/royalnet/web/templates/base.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - {% block title %}{% endblock %} - {{ config["SITE_NAME"] }} - - {% if css %} - - {% else %} - - {% endif %} - - {% block head %}{% endblock %} - - - -
-
- {% block content %}{% endblock %} -
-
-
- {% block footscripts %}{% endblock %} -
- - \ No newline at end of file diff --git a/royalnet/web/templates/error.html b/royalnet/web/templates/error.html deleted file mode 100644 index 3837aff7..00000000 --- a/royalnet/web/templates/error.html +++ /dev/null @@ -1,23 +0,0 @@ -{% extends "base.html" %} - -{% block title %} - Errore -{% endblock %} - -{% block content %} -
-
-
- Errore! -
-
-

- {{ title }} -

-

- {{ reason }} -

-
-
-
-{% endblock %} \ No newline at end of file diff --git a/setup.py b/setup.py index 07a888d1..5c45fba9 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ with open("README.md", "r") as f: long_description = f.read() with open("requirements.txt", "r") as f: - install_requires = f.readlines() + install_requires = [line for line in f.readlines() if not line.startswith("#")] setuptools.setup( name="royalnet",