add tBlog
This commit is contained in:
parent
88702ae98b
commit
5b13735a66
6 changed files with 31 additions and 14 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,2 @@
|
||||||
__pycache__/
|
__pycache__/
|
||||||
message.sqlite3
|
.vscode/
|
||||||
|
|
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"cSpell.words": [
|
|
||||||
"corsheaders",
|
|
||||||
"TAUTH",
|
|
||||||
"TCOMMON"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -24,5 +24,6 @@ ENABLED_APPLICATIONS: dict[str, Literal[False] | None | tuple[str, str, str]] =
|
||||||
# The tokens set here should match the tokens in other services. If they don't, the service will refuse to start.
|
# The tokens set here should match the tokens in other services. If they don't, the service will refuse to start.
|
||||||
# "service": ("token", "internal_url", "public_url")
|
# "service": ("token", "internal_url", "public_url")
|
||||||
"auth": ("Secret tAuth-specific token", "http://localhost:8000", "http://localhost:8000"),
|
"auth": ("Secret tAuth-specific token", "http://localhost:8000", "http://localhost:8000"),
|
||||||
"message": ("Secret tMessage-specific token", "http://localhost:8001", "http://localhost:8001")
|
"message": ("Secret tMessage-specific token", "http://localhost:8001", "http://localhost:8001"),
|
||||||
|
"blog": ("Secret tBlog-specific token", "http://localhost:8002", "http://localhost:8002")
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,10 @@ body {
|
||||||
color: rgb(var(--base));
|
color: rgb(var(--base));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
code, pre:not(.not-code) {
|
code, pre:not(.not-code) {
|
||||||
font-family: "Ubuntu Mono";
|
font-family: "Ubuntu Mono";
|
||||||
background-color: rgb(var(--mantle));
|
background-color: rgb(var(--mantle));
|
||||||
|
@ -117,7 +121,8 @@ textarea:focus {
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="submit"],
|
input[type="submit"],
|
||||||
button {
|
button,
|
||||||
|
select {
|
||||||
background-color: rgb(var(--mantle));
|
background-color: rgb(var(--mantle));
|
||||||
color: rgb(var(--text));
|
color: rgb(var(--text));
|
||||||
font-family: "DejaVu Sans";
|
font-family: "DejaVu Sans";
|
||||||
|
@ -131,6 +136,10 @@ button {
|
||||||
transition: outline-color 0.25s, background-color 0.25s;
|
transition: outline-color 0.25s, background-color 0.25s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
border-radius: 4px
|
||||||
|
}
|
||||||
|
|
||||||
input[type="checkbox"] {
|
input[type="checkbox"] {
|
||||||
display: block;
|
display: block;
|
||||||
height: 0;
|
height: 0;
|
||||||
|
@ -174,8 +183,8 @@ input[type="checkbox"]:checked + label[data-fake-checkbox]::before {
|
||||||
background-color: rgb(var(--accent));
|
background-color: rgb(var(--accent));
|
||||||
}
|
}
|
||||||
|
|
||||||
ul,
|
small ul,
|
||||||
ol {
|
small ol {
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,7 +237,7 @@ button:active {
|
||||||
|
|
||||||
@keyframes kf-success-anim {
|
@keyframes kf-success-anim {
|
||||||
0% {
|
0% {
|
||||||
outline-color: rgba(var(--green), 255);
|
outline-color: rgba(var(--green), 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
|
@ -236,6 +245,10 @@ button:active {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.success { color: rgb(var(--green)); }
|
||||||
|
.warning { color: rgb(var(--yellow)); }
|
||||||
|
.error { color: rgb(var(--red)); }
|
||||||
|
|
||||||
#container {
|
#container {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
|
@ -29,5 +29,15 @@ function refreshTimestamps() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onLoad() {
|
||||||
|
for (const el of document.querySelectorAll("[data-localize-number]")) {
|
||||||
|
el.innerText = (new Intl.NumberFormat()).format(+el.dataset.localizeNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshTimestamps();
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = onLoad;
|
||||||
|
|
||||||
setInterval(refreshTimestamps, 5000);
|
setInterval(refreshTimestamps, 5000);
|
||||||
refreshTimestamps();
|
refreshTimestamps();
|
||||||
|
|
|
@ -39,7 +39,7 @@ def initialize(request: WSGIRequest) -> HttpResponse:
|
||||||
}
|
}
|
||||||
|
|
||||||
for service in [
|
for service in [
|
||||||
"auth", "message"
|
"auth", "message", "blog"
|
||||||
]:
|
]:
|
||||||
if service in ENABLED_APPLICATIONS and isinstance(s := ENABLED_APPLICATIONS[service], tuple):
|
if service in ENABLED_APPLICATIONS and isinstance(s := ENABLED_APPLICATIONS[service], tuple):
|
||||||
resp["services"][service] = {
|
resp["services"][service] = {
|
||||||
|
|
Loading…
Reference in a new issue