mirror of
https://github.com/kmein/niveum
synced 2026-03-29 16:51:07 +02:00
Compare commits
6 Commits
64357f4b42
...
cc90b1bac4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc90b1bac4 | ||
| 28949a1072 | |||
| 0a6b5300b0 | |||
| b9c34994c2 | |||
| 95f5ee330b | |||
| eb9e7f534d |
@@ -44,6 +44,15 @@
|
|||||||
vim-repeat
|
vim-repeat
|
||||||
vim-sensible
|
vim-sensible
|
||||||
vim-surround
|
vim-surround
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "vim-dim-1.1.0";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "jeffkreeftmeijer";
|
||||||
|
repo = "vim-dim";
|
||||||
|
rev = "1.1.0";
|
||||||
|
sha256 = "sha256-lyTZUgqUEEJRrzGo1FD8/t8KBioPrtB3MmGvPeEVI/g=";
|
||||||
|
};
|
||||||
|
})
|
||||||
];
|
];
|
||||||
opt = [
|
opt = [
|
||||||
csv
|
csv
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
telebots = pkgs.callPackage <telebots> {};
|
nixpkgs-21-11 = import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-21.11.tar.gz") {};
|
||||||
|
telebots = nixpkgs-21-11.callPackage <telebots> {};
|
||||||
reverseDirectory = "/run/telegram-reverse";
|
reverseDirectory = "/run/telegram-reverse";
|
||||||
proverbDirectory = "/run/telegram-proverb";
|
proverbDirectory = "/run/telegram-proverb";
|
||||||
inherit (import <niveum/lib>) tmpfilesConfig;
|
inherit (import <niveum/lib>) tmpfilesConfig;
|
||||||
@@ -49,7 +50,7 @@ in {
|
|||||||
description = "Telegram reverse bot";
|
description = "Telegram reverse bot";
|
||||||
path = [pkgs.ffmpeg];
|
path = [pkgs.ffmpeg];
|
||||||
environment.TELEGRAM_BOT_TOKEN = lib.strings.fileContents <system-secrets/telegram/reverse.token>;
|
environment.TELEGRAM_BOT_TOKEN = lib.strings.fileContents <system-secrets/telegram/reverse.token>;
|
||||||
enable = false;
|
enable = true;
|
||||||
script = "${telebots}/bin/telegram-reverse";
|
script = "${telebots}/bin/telegram-reverse";
|
||||||
serviceConfig.Restart = "always";
|
serviceConfig.Restart = "always";
|
||||||
serviceConfig.WorkingDirectory = reverseDirectory;
|
serviceConfig.WorkingDirectory = reverseDirectory;
|
||||||
@@ -59,7 +60,7 @@ in {
|
|||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
description = "Telegram beta code bot";
|
description = "Telegram beta code bot";
|
||||||
environment.TELEGRAM_BOT_TOKEN = lib.strings.fileContents <system-secrets/telegram/betacode.token>;
|
environment.TELEGRAM_BOT_TOKEN = lib.strings.fileContents <system-secrets/telegram/betacode.token>;
|
||||||
enable = false;
|
enable = true;
|
||||||
script = "${telebots}/bin/telegram-betacode";
|
script = "${telebots}/bin/telegram-betacode";
|
||||||
serviceConfig.Restart = "always";
|
serviceConfig.Restart = "always";
|
||||||
};
|
};
|
||||||
@@ -68,7 +69,7 @@ in {
|
|||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
description = "Telegram proverb bot";
|
description = "Telegram proverb bot";
|
||||||
environment.TELEGRAM_BOT_TOKEN = lib.strings.fileContents <system-secrets/telegram/proverb.token>;
|
environment.TELEGRAM_BOT_TOKEN = lib.strings.fileContents <system-secrets/telegram/proverb.token>;
|
||||||
enable = false;
|
enable = true;
|
||||||
script = "${telebots}/bin/telegram-proverb";
|
script = "${telebots}/bin/telegram-proverb";
|
||||||
serviceConfig.Restart = "always";
|
serviceConfig.Restart = "always";
|
||||||
serviceConfig.WorkingDirectory = proverbDirectory;
|
serviceConfig.WorkingDirectory = proverbDirectory;
|
||||||
|
|||||||
101
flake.lock
generated
101
flake.lock
generated
@@ -1,5 +1,21 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650374568,
|
||||||
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1653893745,
|
"lastModified": 1653893745,
|
||||||
@@ -17,16 +33,20 @@
|
|||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixos-unstable"
|
"nixos-unstable"
|
||||||
]
|
],
|
||||||
|
"nmd": "nmd",
|
||||||
|
"nmt": "nmt",
|
||||||
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1654113406,
|
"lastModified": 1654628474,
|
||||||
"narHash": "sha256-70esZvhal+FsyU89mJRcAb+cDGHKt0sgZ6MlRr9Cplg=",
|
"narHash": "sha256-Llm9X8Af15uC9IMStxqjCfO15WgYTqTnsQq8wMcpp5Q=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "684e85d01d333be91c4875baebb05b93c7d2ffaa",
|
"rev": "70824bb5c790b820b189f62f643f795b1d2ade2e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -109,11 +129,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-stable": {
|
"nixos-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1654275867,
|
"lastModified": 1654936503,
|
||||||
"narHash": "sha256-pt14ZE4jVPGvfB2NynGsl34pgXfOqum5YJNpDK4+b9E=",
|
"narHash": "sha256-soKzdhI4jTHv/rSbh89RdlcJmrPgH8oMb/PLqiqIYVQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7a20c208aacf4964c19186dcad51f89165dc7ed0",
|
"rev": "dab6df51387c3878cdea09f43589a15729cae9f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -125,11 +145,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-unstable": {
|
"nixos-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1654230545,
|
"lastModified": 1654682581,
|
||||||
"narHash": "sha256-8Vlwf0x8ow6pPOK2a04bT+pxIeRnM1+O0Xv9/CuDzRs=",
|
"narHash": "sha256-Jb1PQCwKgwdNAp907eR5zPzuxV+kRroA3UIxUxCMJ9s=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "236cc2971ac72acd90f0ae3a797f9f83098b17ec",
|
"rev": "e0169d7a9d324afebf5679551407756c77af8930",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -139,6 +159,38 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nmd": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653339422,
|
||||||
|
"narHash": "sha256-8nc7lcYOgih3YEmRMlBwZaLLJYpLPYKBlewqHqx8ieg=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmd",
|
||||||
|
"rev": "9e7a20e6ee3f6751f699f79c0b299390f81f7bcd",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmd",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nmt": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1648075362,
|
||||||
|
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmt",
|
||||||
|
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nmt",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"recht": {
|
"recht": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -158,11 +210,11 @@
|
|||||||
"retiolum": {
|
"retiolum": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1653896694,
|
"lastModified": 1654544575,
|
||||||
"narHash": "sha256-c37fCbsOydJQoiE4l81hltJLF9BkKowrlhEjVc8e3iQ=",
|
"narHash": "sha256-6ZrUcFhiCeOwS2qjFEhj/TA5Hx2D7mZ4fojzdAz5p4c=",
|
||||||
"owner": "krebs",
|
"owner": "krebs",
|
||||||
"repo": "retiolum",
|
"repo": "retiolum",
|
||||||
"rev": "ac9e1d5b02c5667ba12aa6d6ab077cc071ffc2f4",
|
"rev": "8c41abaeed7f862b02dddd31eae204e262799c4b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -210,11 +262,11 @@
|
|||||||
"stockholm": {
|
"stockholm": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1653851789,
|
"lastModified": 1654854399,
|
||||||
"narHash": "sha256-KMw9DS40WKHdQti0nwHQguKgIQJ+yexT2wBAfYskCps=",
|
"narHash": "sha256-iL2raUfqt+myKjDrmA/TZ7bCaaDmbzqZljHgRyZ7dX0=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "4a9f93e8933d87ce8f04965b2772564527f1e2fd",
|
"rev": "18ea4967c1a708a70c0c807c4ba2f602bc72570c",
|
||||||
"revCount": 10604,
|
"revCount": 10677,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://cgit.lassul.us/stockholm"
|
"url": "https://cgit.lassul.us/stockholm"
|
||||||
},
|
},
|
||||||
@@ -286,6 +338,21 @@
|
|||||||
"repo": "tuna",
|
"repo": "tuna",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653893745,
|
||||||
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
@@ -75,15 +75,19 @@
|
|||||||
|
|
||||||
const startDate = document.createElement("time");
|
const startDate = document.createElement("time");
|
||||||
startDate.className = "start";
|
startDate.className = "start";
|
||||||
startDate.title = start.toString();
|
startDate.title = isoString(start);
|
||||||
startDate.setAttribute("datetime", isoString(start));
|
startDate.setAttribute("datetime", isoString(start));
|
||||||
startDate.appendChild(document.createTextNode(isoString(start)));
|
startDate.appendChild(
|
||||||
|
document.createTextNode(start.toLocaleString())
|
||||||
|
);
|
||||||
|
|
||||||
const endDate = document.createElement("time");
|
const endDate = document.createElement("time");
|
||||||
endDate.className = "end";
|
endDate.className = "end";
|
||||||
endDate.title = end.toString();
|
endDate.title = isoString(end);
|
||||||
endDate.setAttribute("datetime", isoString(end));
|
endDate.setAttribute("datetime", isoString(end));
|
||||||
endDate.appendChild(document.createTextNode(isoString(end)));
|
endDate.appendChild(
|
||||||
|
document.createTextNode(end.toLocaleString())
|
||||||
|
);
|
||||||
|
|
||||||
li.appendChild(document.createTextNode(newsItem.text));
|
li.appendChild(document.createTextNode(newsItem.text));
|
||||||
li.appendChild(startDate);
|
li.appendChild(startDate);
|
||||||
@@ -103,24 +107,27 @@
|
|||||||
request.open("POST", newsEndpoint, false); // synchronous
|
request.open("POST", newsEndpoint, false); // synchronous
|
||||||
request.send(
|
request.send(
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
from: formData.get("from") + ":00Z",
|
from: isoString(new Date(formData.get("from"))),
|
||||||
to: formData.get("to") + ":00Z",
|
to: isoString(new Date(formData.get("to"))),
|
||||||
text: formData.get("text"),
|
text: formData.get("text"),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const pad2 = (int) => (int < 10 ? `0${int}` : int.toString());
|
||||||
|
|
||||||
|
const localIsoString = (date) =>
|
||||||
|
`${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(
|
||||||
|
date.getDate()
|
||||||
|
)}T${pad2(date.getHours())}:${pad2(date.getMinutes())}`;
|
||||||
|
|
||||||
function setDate() {
|
function setDate() {
|
||||||
let now = new Date();
|
let now = new Date();
|
||||||
document.getElementById("time-from").value = now
|
document.getElementById("time-from").value = localIsoString(now);
|
||||||
.toISOString()
|
|
||||||
.slice(0, 16);
|
|
||||||
|
|
||||||
now.setHours(now.getHours() + 1);
|
now.setHours(now.getHours() + 1);
|
||||||
document.getElementById("time-to").value = now
|
document.getElementById("time-to").value = localIsoString(now);
|
||||||
.toISOString()
|
|
||||||
.slice(0, 16);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
@@ -135,9 +142,9 @@
|
|||||||
<section>
|
<section>
|
||||||
<h1>Submit news</h1>
|
<h1>Submit news</h1>
|
||||||
<form onsubmit="sendNews(event)">
|
<form onsubmit="sendNews(event)">
|
||||||
<label>Start date (UTC)</label>
|
<label>Start time</label>
|
||||||
<input type="datetime-local" id="time-from" name="from" required />
|
<input type="datetime-local" id="time-from" name="from" required />
|
||||||
<label>End date (UTC)</label>
|
<label>End time</label>
|
||||||
<input type="datetime-local" id="time-to" name="to" required />
|
<input type="datetime-local" id="time-to" name="to" required />
|
||||||
<label>News text</label>
|
<label>News text</label>
|
||||||
<textarea name="text" rows="10" required></textarea>
|
<textarea name="text" rows="10" required></textarea>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ nnoremap <C-p> :FZF<CR>
|
|||||||
nnoremap <C-l> :Rg<CR>
|
nnoremap <C-l> :Rg<CR>
|
||||||
let g:fzf_layout = { 'down': '~15%' }
|
let g:fzf_layout = { 'down': '~15%' }
|
||||||
|
|
||||||
colorscheme paramount
|
colorscheme dim
|
||||||
" transparent background
|
" transparent background
|
||||||
hi Normal guibg=NONE ctermbg=NONE
|
hi Normal guibg=NONE ctermbg=NONE
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.stockholm-history = {
|
systemd.services.stockholm-history = {
|
||||||
startAt = "hourly";
|
startAt = "*:58:00";
|
||||||
script = ''
|
script = ''
|
||||||
stockholm=$(mktemp -d)
|
stockholm=$(mktemp -d)
|
||||||
trap clean EXIT
|
trap clean EXIT
|
||||||
|
|||||||
Reference in New Issue
Block a user