1
0
Fork 0

Restructure unit generation and add more sources

This commit is contained in:
clerie 2022-05-26 00:41:57 +02:00
parent 031bd72e17
commit bb07c9d88a
1 changed files with 48 additions and 16 deletions

View File

@ -1,6 +1,50 @@
{ pkgs, ... }:
{ lib, pkgs, ... }:
{
with lib;
let
mixcloudSources = {
avocadoom = "https://www.mixcloud.com/avocadoom/";
b4m = "https://www.mixcloud.com/b4m/";
barbnerdy = "https://soundcloud.com/barbnerdy";
beh2342 = "https://soundcloud.com/beh2342";
couchsofa = "https://www.mixcloud.com/couchsofa/";
das-kraftfuttermischwerk = "https://soundcloud.com/das-kraftfuttermischwerk";
dj-spock = "https://www.mixcloud.com/dj_spock/";
LoungeControl = "https://www.mixcloud.com/LoungeControl/";
matthiasdamasty = "https://www.mixcloud.com/matthiasdamasty/";
sh1bumi = "https://soundcloud.com/sh1bumi";
shroombab = "https://www.mixcloud.com/shroombab/";
tasmo = "https://www.mixcloud.com/tasmo/";
vidister = "https://mixcloud.com/vidister/";
};
generateYoutubedlMixcloudUnits = source: url: (
nameValuePair "youtube-dl-mixcloud-${source}" {
serviceConfig = {
User = "data-mixcloud";
Group = "data-mixcloud";
Restart="on-failure";
};
path = [ pkgs.youtube-dl ];
script = ''
mkdir -p /data/mixcloud/${source}/
cd /data/mixcloud/${source}/
youtube-dl --ignore-errors --playlist-random --newline ${url}
'';
startAt = "*-*-* 05:05:00";
}
);
generateYoutubedlMixcloudTimers = source: url: (
nameValuePair "youtube-dl-mixcloud-${source}" {
timerConfig = {
RandomizedDelaySec = 10800;
};
}
);
in {
services.nginx.virtualHosts = {
"mixcloud.clerie.de" = {
enableACME = true;
@ -23,18 +67,6 @@
};
users.groups.data-mixcloud = {};
systemd.services."youtube-dl-mixcloud-couchsofa" = {
serviceConfig = {
User = "data-mixcloud";
Group = "data-mixcloud";
Restart="on-failure";
};
path = [ pkgs.youtube-dl ];
script = ''
mkdir -p /data/mixcloud/couchsofa/
cd /data/mixcloud/couchsofa/
youtube-dl --ignore-errors --playlist-random --newline https://www.mixcloud.com/couchsofa/
'';
startAt = "*-*-* 05:05:00";
};
systemd.services = (mapAttrs' generateYoutubedlMixcloudUnits mixcloudSources);
systemd.timers = (mapAttrs' generateYoutubedlMixcloudTimers mixcloudSources);
}