diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index dc6a3f74..da5aef3a 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -11,6 +11,8 @@ and this project adheres to https://semver.org/spec/v2.0.0.html[Semantic Version - Migrated config to use `utils.config.Config` from `settings.py` (#117) - Added `user.fetch_attacks_runner` and `user.stat_db_attacks_user` - Added auto-cancellation of vault withdrawals + - Added color theme support + - Added account settings endpoint === Fixed - Fixed Tox CI runs (due to broken dependency installation) diff --git a/controllers/__init__.py b/controllers/__init__.py index fc94b693..7acab0fa 100644 --- a/controllers/__init__.py +++ b/controllers/__init__.py @@ -29,9 +29,13 @@ def index(): return render_template("index.html", extensions=extensions) +@mod.route("/settings") +def settings(): + return render_template("settings.html") + + @mod.route("/static/toast.js") @mod.route("/static/favicon.svg") -@mod.route("/static/login.css") @mod.route("/static/utils.js") @mod.route("/static/bot/oc.js") @mod.route("/static/bot/stakeouts.js") @@ -43,6 +47,7 @@ def index(): @mod.route("/static/faction/bankingaa.js") @mod.route("/static/faction/chain.js") @mod.route("/static/faction/members.js") +@mod.route("/static/fonts/JetBrainsMono-Light.woff2") @mod.route("/static/stats/db.js") @mod.route("/static/stats/list.js") @mod.route("/static/torn/factions.js") diff --git a/controllers/errors.py b/controllers/errors.py index e1cbffd4..42bdc73e 100644 --- a/controllers/errors.py +++ b/controllers/errors.py @@ -66,17 +66,6 @@ def error404(e): ) -@mod.app_errorhandler(422) -def error422(e): - """ - Returns the 422 error page - - :param e: HTTP error - """ - - return render_template("/errors/422.html"), 422 - - @mod.app_errorhandler(500) def error500(e): """ diff --git a/models/server.py b/models/server.py index 4f9d1769..09417e88 100644 --- a/models/server.py +++ b/models/server.py @@ -35,6 +35,7 @@ def __init__(self, sid): self.name = server.name self.admins = server.admins self.config = server.config + self.icon = server.icon self.factions = server.factions diff --git a/models/servermodel.py b/models/servermodel.py index ba7f7f8e..cdc284a8 100644 --- a/models/servermodel.py +++ b/models/servermodel.py @@ -21,6 +21,7 @@ class ServerModel(DynamicDocument): name = StringField(default="") admins = ListField(default=[]) # List of admin ids config = DictField(default={"stakeouts": 0, "verify": 0}) # Dictionary of server configurations + icon = StringField(default="") # icon hash factions = ListField(default=[]) # List of factions in server diff --git a/skynet/commands/bot/verify.py b/skynet/commands/bot/verify.py index 1e56d9b7..ad0cccfb 100644 --- a/skynet/commands/bot/verify.py +++ b/skynet/commands/bot/verify.py @@ -141,7 +141,7 @@ def verify(interaction, *args, **kwargs): { "title": "Verification Failed", "description": "No Discord ID found. Please verify that you are officially verified by Torn. " - "Otherwise, try forcing the verification.", + "Otherwise, try forcing the verification.", "color": SKYNET_ERROR, } ], diff --git a/static/base.css b/static/base.css index 94ec4b6c..f6cca4f5 100644 --- a/static/base.css +++ b/static/base.css @@ -1,3 +1,12 @@ -a:link { - text-decoration: none; +@font-face { + font-family: "JetBrains Mono"; + src: url("/static/fonts/JetBrainsMono-Light.woff2") format("woff"); +} + +body { + font-family: "JetBrains Mono", serif; +} + +.vertical-navbar { + min-height: 100vh; } \ No newline at end of file diff --git a/static/fonts/JetBrainsMono-Light.woff2 b/static/fonts/JetBrainsMono-Light.woff2 new file mode 100644 index 00000000..65384987 Binary files /dev/null and b/static/fonts/JetBrainsMono-Light.woff2 differ diff --git a/static/global/modeSelector.js b/static/global/modeSelector.js new file mode 100644 index 00000000..1f90a9ab --- /dev/null +++ b/static/global/modeSelector.js @@ -0,0 +1,35 @@ +/*! + * Color mode toggler for Bootstrap's docs (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Licensed under the Creative Commons Attribution 3.0 Unported License. + */ + +(() => { + 'use strict'; + + const storedTheme = localStorage.getItem('theme'); + + const getPreferredTheme = function () { + if (storedTheme) { + return storedTheme; + } + + return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'custom-dark' : 'light'; + } + + const setTheme = function (theme) { + if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) { + document.documentElement.setAttribute('data-bs-theme', 'custom-dark'); + } else { + document.documentElement.setAttribute('data-bs-theme', theme); + } + } + + setTheme(getPreferredTheme()); + + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { + if (storedTheme !== 'light' || storedTheme !== 'custom-dark') { + setTheme(getPreferredTheme()); + } + }); +})() \ No newline at end of file diff --git a/static/login.css b/static/login.css deleted file mode 100644 index 98f5c41b..00000000 --- a/static/login.css +++ /dev/null @@ -1,29 +0,0 @@ -html, -body { - height: 100%; -} - -body { - display: flex; - align-items: center; - padding-top: 40px; - padding-bottom: 40px; - background-color: #f5f5f5; -} - -.form-signin { - width: 100%; - max-width: 330px; - padding: 15px; - margin: auto; -} - -.form-signin .form-floating:focus-within { - z-index: 2; -} - -.form-signin input[type="password"] { - margin-bottom: 10px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} diff --git a/static/themes/dark.css b/static/themes/dark.css new file mode 100644 index 00000000..15fe8228 --- /dev/null +++ b/static/themes/dark.css @@ -0,0 +1,114 @@ +[data-bs-theme=custom-dark] a { + color: rgb(229, 229, 229); + text-decoration: none; +} +[data-bs-theme=custom-dark] a:visited { + color: rgb(229, 229, 229); + text-decoration: none; +} +[data-bs-theme=custom-dark] a:hover { + color: rgb(255, 255, 255); + text-decoration: none; +} +[data-bs-theme=custom-dark] a:active { + color: rgb(229, 229, 229); + text-decoration: none; +} +[data-bs-theme=custom-dark] .breadcrumb-item::before { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .card { + border-color: rgb(229, 229, 229); +} +@media (max-height: 992px) { + [data-bs-theme=custom-dark] .secondary { + height: fit-content; + } +} +@media (min-height: 992px) { + [data-bs-theme=custom-dark] #verticalNavContainer { + border-right-color: rgb(229, 229, 229); + border-right-style: solid; + border-right-width: 1px; + } +} +[data-bs-theme=custom-dark] .primary { + background-color: rgb(35, 35, 35); + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary .card { + background-color: rgb(35, 35, 35); +} +[data-bs-theme=custom-dark] .primary .list-group-item { + background-color: rgb(35, 35, 35); + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary .form-control { + background-color: rgb(35, 35, 35); + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary .form-text { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary p { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary a { + color: rgb(229, 229, 229); + background-color: rgb(35, 35, 35); +} +[data-bs-theme=custom-dark] .primary li .paginate-button { + color: rgb(229, 229, 229); + background-color: rgb(35, 35, 35); + border-color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary thead th { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary tbody td { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary tbody th { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary tbody th a { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary i [class^=fa-] { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary input { + border-color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary input::placeholder { + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary select { + color: rgb(229, 229, 229); + background-color: rgb(35, 35, 35); + border-color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .primary .form-text { + color: rgb(175, 175, 175); +} +[data-bs-theme=custom-dark] .primary .card-text { + color: rgb(175, 175, 175); +} +[data-bs-theme=custom-dark] .secondary { + background-color: rgb(25, 25, 25); + color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .secondary a { + color: rgb(229, 229, 229); + background-color: rgb(25, 25, 25); +} +[data-bs-theme=custom-dark] .modal-content { + background-color: rgb(35, 35, 35); + color: rgb(229, 229, 229); + border-color: rgb(229, 229, 229); +} +[data-bs-theme=custom-dark] .modal-content tr th { + color: rgb(229, 229, 229); +} + +/*# sourceMappingURL=dark.css.map */ diff --git a/static/themes/dark.css.map b/static/themes/dark.css.map new file mode 100644 index 00000000..67f6b6f6 --- /dev/null +++ b/static/themes/dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["dark.scss"],"names":[],"mappings":"AAOI;EACI,OAPK;EAQL;;AAEA;EACI,OAXC;EAYD;;AAEJ;EACI;EACA;;AAEJ;EACI,OAnBC;EAoBD;;AAIR;EACI,OAzBK;;AA4BT;EACI,cA7BK;;AAgCT;EACI;IACI;;;AAGR;EACI;IACI,oBAvCC;IAwCD;IACA;;;AAIR;EACI,kBA7CW;EA8CX,OA/CK;;AAiDL;EACI,kBAjDO;;AAoDX;EACI,kBArDO;EAsDP,OAvDC;;AA0DL;EACI,kBA1DO;EA2DP,OA5DC;;AA+DL;EACI,OAhEC;;AAmEL;EACI,OApEC;;AAuEL;EACI,OAxEC;EAyED,kBAxEO;;AA2EX;EACI,OA7EC;EA8ED,kBA7EO;EA8EP,cA/EC;;AAkFL;EACI,OAnFC;;AAsFL;EACI,OAvFC;;AA0FL;EACI,OA3FC;;AA6FD;EACI,OA9FH;;AAkGL;EACI,OAnGC;;AAsGL;EACI,cAvGC;;AA0GL;EACI,OA3GC;;AA8GL;EACI,OA/GC;EAgHD,kBA/GO;EAgHP,cAjHC;;AAoHL;EACI,OAlHI;;AAqHR;EACI,OAtHI;;AA0HZ;EACI,kBA5Ha;EA6Hb,OA/HK;;AAiIL;EACI,OAlIC;EAmID,kBAjIS;;AAqIjB;EACI,kBAvIW;EAwIX,OAzIK;EA0IL,cA1IK;;AA4IL;EACI,OA7IC","file":"dark.css"} \ No newline at end of file diff --git a/static/themes/dark.scss b/static/themes/dark.scss new file mode 100644 index 00000000..a23b7801 --- /dev/null +++ b/static/themes/dark.scss @@ -0,0 +1,146 @@ +[data-bs-theme="custom-dark"] { + $white : rgb(229, 229, 229); + $primary-grey: rgb(35, 35, 35); + $secondary-grey: rgb(25, 25, 25); + $off-white: rgb(175, 175, 175); + $error: rgb(225, 10, 10); + + a { + color: $white; + text-decoration: none; + + &:visited { + color: $white; + text-decoration: none; + } + &:hover { + color: rgb(320, 320, 320); + text-decoration: none; + } + &:active { + color: $white; + text-decoration: none; + } + } + + .breadcrumb-item::before { + color: $white; + } + + .card { + border-color: $white; + } + + @media (max-height: 992px) { + .secondary { + height: fit-content; + } + } + @media (min-height: 992px) { + #verticalNavContainer { + border-right-color: $white; + border-right-style: solid; + border-right-width: 1px; + } + } + + .primary { + background-color: $primary-grey; + color: $white; + + & .card { + background-color: $primary-grey; + } + + & .list-group-item { + background-color: $primary-grey; + color: $white; + } + + & .form-control { + background-color: $primary-grey; + color: $white; + } + + & .form-text { + color: $white; // TODO: change to a slightly different color + } + + & p { + color: $white; + } + + & a { + color: $white; + background-color: $primary-grey; + } + + & li .paginate-button { + color: $white; + background-color: $primary-grey; + border-color: $white; + } + + & thead th { + color: $white; + } + + & tbody td { + color: $white; + } + + & tbody th { + color: $white; + + & a { + color: $white; + } + } + + & i [class^="fa-"] { + color: $white; + } + + & input { + border-color: $white; + } + + & input::placeholder { + color: $white; + } + + & select { + color: $white; + background-color: $primary-grey; + border-color: $white; + } + + & .form-text { + color: $off-white; + } + + & .card-text { + color: $off-white; + } + } + + .secondary { + background-color: $secondary-grey; + color: $white; + + & a { + color: $white; + background-color: $secondary-grey; + } + } + + .modal-content { + background-color: $primary-grey; + color: $white; + border-color: $white; + + & tr th { + color: $white; + } + } +} \ No newline at end of file diff --git a/static/themes/light.css b/static/themes/light.css new file mode 100644 index 00000000..54d8779b --- /dev/null +++ b/static/themes/light.css @@ -0,0 +1,9 @@ +@media (min-height: 992px) { + [data-bs-theme=light] #verticalNavContainer { + border-right-color: rgb(226, 226, 230); + border-right-style: solid; + border-right-width: 1px; + } +} + +/*# sourceMappingURL=light.css.map */ diff --git a/static/themes/light.css.map b/static/themes/light.css.map new file mode 100644 index 00000000..513dde0a --- /dev/null +++ b/static/themes/light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["light.scss"],"names":[],"mappings":"AACI;EACI;IACI;IACA;IACA","file":"light.css"} \ No newline at end of file diff --git a/static/themes/light.scss b/static/themes/light.scss new file mode 100644 index 00000000..2f3c8c80 --- /dev/null +++ b/static/themes/light.scss @@ -0,0 +1,9 @@ +[data-bs-theme="light"] { + @media (min-height: 992px) { + #verticalNavContainer { + border-right-color: rgb(226, 226, 230); + border-right-style: solid; + border-right-width: 1px; + } + } +} \ No newline at end of file diff --git a/static/themes/neon-dark.css b/static/themes/neon-dark.css new file mode 100644 index 00000000..c9aab7e8 --- /dev/null +++ b/static/themes/neon-dark.css @@ -0,0 +1,117 @@ +[data-bs-theme=neon-dark] { + border-color: rgb(229, 229, 229); +} +[data-bs-theme=neon-dark] a { + color: rgb(57, 255, 20); + text-decoration: none; +} +[data-bs-theme=neon-dark] a:visited { + color: rgb(57, 255, 20); + text-decoration: none; +} +[data-bs-theme=neon-dark] a:hover { + color: rgb(255, 255, 255); + text-decoration: none; +} +[data-bs-theme=neon-dark] a:active { + color: rgb(57, 255, 20); + text-decoration: none; +} +[data-bs-theme=neon-dark] .breadcrumb-item::before { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .card { + border-color: rgb(229, 229, 229); +} +@media (max-height: 992px) { + [data-bs-theme=neon-dark] .secondary { + height: fit-content; + } +} +@media (min-height: 992px) { + [data-bs-theme=neon-dark] #verticalNavContainer { + border-right-color: rgb(229, 229, 229); + border-right-style: solid; + border-right-width: 1px; + } +} +[data-bs-theme=neon-dark] .primary { + background-color: rgb(35, 35, 35); + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary .card { + background-color: rgb(35, 35, 35); +} +[data-bs-theme=neon-dark] .primary .list-group-item { + background-color: rgb(35, 35, 35); + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary .form-control { + background-color: rgb(35, 35, 35); + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary .form-text { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary p { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary a { + color: rgb(57, 255, 20); + background-color: rgb(35, 35, 35); +} +[data-bs-theme=neon-dark] .primary li .paginate-button { + color: rgb(57, 255, 20); + background-color: rgb(35, 35, 35); + border-color: rgb(229, 229, 229); +} +[data-bs-theme=neon-dark] .primary thead th { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary tbody td { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary tbody th { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary tbody th a { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary i [class^=fa-] { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary input { + border-color: rgb(229, 229, 229); +} +[data-bs-theme=neon-dark] .primary input::placeholder { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary select { + color: rgb(57, 255, 20); + background-color: rgb(35, 35, 35); + border-color: rgb(229, 229, 229); +} +[data-bs-theme=neon-dark] .primary .form-text { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .primary .card-text { + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .secondary { + background-color: rgb(25, 25, 25); + color: rgb(57, 255, 20); +} +[data-bs-theme=neon-dark] .secondary a { + color: rgb(57, 255, 20); + background-color: rgb(25, 25, 25); +} +[data-bs-theme=neon-dark] .modal-content { + background-color: rgb(35, 35, 35); + color: rgb(57, 255, 20); + border-color: rgb(229, 229, 229); +} +[data-bs-theme=neon-dark] .modal-content tr th { + color: rgb(57, 255, 20); +} + +/*# sourceMappingURL=neon-dark.css.map */ diff --git a/static/themes/neon-dark.css.map b/static/themes/neon-dark.css.map new file mode 100644 index 00000000..50291415 --- /dev/null +++ b/static/themes/neon-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["neon-dark.scss"],"names":[],"mappings":"AAAA;EAOI,cANS;;AAQT;EACI,OARG;EASH;;AAEA;EACI,OAZD;EAaC;;AAEJ;EACI;EACA;;AAEJ;EACI,OApBD;EAqBC;;AAIR;EACI,OA1BG;;AA6BP;EACI,cA/BK;;AAkCT;EACI;IACI;;;AAGR;EACI;IACI,oBAzCC;IA0CD;IACA;;;AAIR;EACI,kBA9CW;EA+CX,OAhDG;;AAkDH;EACI,kBAlDO;;AAqDX;EACI,kBAtDO;EAuDP,OAxDD;;AA2DH;EACI,kBA3DO;EA4DP,OA7DD;;AAgEH;EACI,OAjED;;AAoEH;EACI,OArED;;AAwEH;EACI,OAzED;EA0EC,kBAzEO;;AA4EX;EACI,OA9ED;EA+EC,kBA9EO;EA+EP,cAjFC;;AAoFL;EACI,OApFD;;AAuFH;EACI,OAxFD;;AA2FH;EACI,OA5FD;;AA8FC;EACI,OA/FL;;AAmGH;EACI,OApGD;;AAuGH;EACI,cAzGC;;AA4GL;EACI,OA5GD;;AA+GH;EACI,OAhHD;EAiHC,kBAhHO;EAiHP,cAnHC;;AAsHL;EACI,OAtHD;;AAyHH;EACI,OA1HD;;AA8HP;EACI,kBA7Ha;EA8Hb,OAhIG;;AAkIH;EACI,OAnID;EAoIC,kBAlIS;;AAsIjB;EACI,kBAxIW;EAyIX,OA1IG;EA2IH,cA5IK;;AA8IL;EACI,OA9ID","file":"neon-dark.css"} \ No newline at end of file diff --git a/static/themes/neon-dark.scss b/static/themes/neon-dark.scss new file mode 100644 index 00000000..194ccc12 --- /dev/null +++ b/static/themes/neon-dark.scss @@ -0,0 +1,148 @@ +[data-bs-theme="neon-dark"] { + $white : rgb(229, 229, 229); + $neon: rgb(57, 255, 20); + $primary-grey: rgb(35, 35, 35); + $secondary-grey: rgb(25, 25, 25); + $error: rgb(225, 10, 10); + + border-color: $white; + + a { + color: $neon; + text-decoration: none; + + &:visited { + color: $neon; + text-decoration: none; + } + &:hover { + color: rgb(320, 320, 320); + text-decoration: none; + } + &:active { + color: $neon; + text-decoration: none; + } + } + + .breadcrumb-item::before { + color: $neon; + } + + .card { + border-color: $white; + } + + @media (max-height: 992px) { + .secondary { + height: fit-content; + } + } + @media (min-height: 992px) { + #verticalNavContainer { + border-right-color: $white; + border-right-style: solid; + border-right-width: 1px; + } + } + + .primary { + background-color: $primary-grey; + color: $neon; + + & .card { + background-color: $primary-grey; + } + + & .list-group-item { + background-color: $primary-grey; + color: $neon; + } + + & .form-control { + background-color: $primary-grey; + color: $neon; + } + + & .form-text { + color: $neon; // TODO: change to a slightly different color + } + + & p { + color: $neon; + } + + & a { + color: $neon; + background-color: $primary-grey; + } + + & li .paginate-button { + color: $neon; + background-color: $primary-grey; + border-color: $white; + } + + & thead th { + color: $neon; + } + + & tbody td { + color: $neon; + } + + & tbody th { + color: $neon; + + & a { + color: $neon; + } + } + + & i [class^="fa-"] { + color: $neon; + } + + & input { + border-color: $white; + } + + & input::placeholder { + color: $neon; + } + + & select { + color: $neon; + background-color: $primary-grey; + border-color: $white; + } + + & .form-text { + color: $neon; + } + + & .card-text { + color: $neon; + } + } + + .secondary { + background-color: $secondary-grey; + color: $neon; + + & a { + color: $neon; + background-color: $secondary-grey; + } + } + + .modal-content { + background-color: $primary-grey; + color: $neon; + border-color: $white; + + & tr th { + color: $neon; + } + } +} \ No newline at end of file diff --git a/static/torn/factions.js b/static/torn/factions.js index 0a18dfef..430ae0b2 100644 --- a/static/torn/factions.js +++ b/static/torn/factions.js @@ -55,15 +55,22 @@ $(document).ready(function() { xhttp = new XMLHttpRequest(); xhttp.onload = function() { - console.log(typeof(xhttp.response)) - xhttp.response.forEach(function(member) { - membersTable.row.add([ - member["username"], - member["level"], - `${member["status"]}`, - `${member["discord_id"]}` - ]).draw(); + if(member["discord_id"] == 0) { + membersTable.row.add([ + member["username"], + member["level"], + `${member["status"]}`, + `Unknown` + ]).draw(); + } else { + membersTable.row.add([ + member["username"], + member["level"], + `${member["status"]}`, + `${member["discord_id"]}` + ]).draw(); + } }); modal.show(); diff --git a/tasks/guild.py b/tasks/guild.py index a2b31b5b..159ff159 100644 --- a/tasks/guild.py +++ b/tasks/guild.py @@ -46,6 +46,7 @@ def refresh_guilds(): name=guild["name"], admins=[], config={"stakeouts": 0, "verify": 0}, + icon=guild["icon"], factions=[], stakeoutconfig={"category": 0}, userstakeouts=[], @@ -92,6 +93,7 @@ def refresh_guilds(): admins = list(set(admins)) guild_db.admins = admins + guild_db.icon = guild["icon"] guild_db.save() for factiontid, faction_data in guild_db.faction_verify.items(): diff --git a/templates/admin/dashboard.html b/templates/admin/dashboard.html deleted file mode 100644 index 24bd3024..00000000 --- a/templates/admin/dashboard.html +++ /dev/null @@ -1,55 +0,0 @@ -{% extends 'base.html' %} - -{% block title %} -Tornium - Admin Dashboard -{% endblock %} - -{% block content %} - -{% include 'navbar.html' %} -{% include 'admin/navbar.html' %} - -
Faction ID | -Faction Name | -
---|
Server ID | -Server Name | -
---|
User ID | -User Name | -Discord ID | -
---|
- The Tornium API is currently under construction. -
+{% block breadcrumbs %} + +{% endblock %} -- For more information, check out the documentation or contact - tiksan on Discord. -
-+ The Tornium API is currently under construction and is un-documented. For more information, look at the + source code or contact tiksan [2383326] on + Discord. +