2024-05-18 17:51:06 -04:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
2024-05-18 23:49:54 -04:00
|
|
|
} @ inputs: let
|
2024-05-18 17:51:06 -04:00
|
|
|
inherit (config.vars) mainUser;
|
|
|
|
|
|
|
|
convertMkv = pkgs.callPackage ./convert.nix {inherit pkgs;};
|
2024-05-18 23:49:54 -04:00
|
|
|
extractSubs = pkgs.callPackage ./extract-subs {inherit pkgs;};
|
2024-05-18 17:51:06 -04:00
|
|
|
sub-clean = pkgs.callPackage ./cleanup.nix {inherit pkgs;};
|
2024-05-18 23:49:54 -04:00
|
|
|
bazarr-bulk = pkgs.callPackage ./syncing.nix inputs;
|
2024-05-18 17:51:06 -04:00
|
|
|
in {
|
2024-05-18 23:49:54 -04:00
|
|
|
# TODO:
|
|
|
|
# - Improve cleanup
|
2024-11-15 14:17:16 -05:00
|
|
|
# - figure out bazarr postprocessing with syncing subs
|
2024-05-18 23:49:54 -04:00
|
|
|
|
|
|
|
environment.systemPackages = [
|
|
|
|
bazarr-bulk
|
2024-05-18 00:04:26 -04:00
|
|
|
];
|
2024-05-18 23:49:54 -04:00
|
|
|
|
2024-05-18 17:51:06 -04:00
|
|
|
systemd = {
|
|
|
|
services.manage-subs = {
|
|
|
|
serviceConfig = {
|
|
|
|
User = mainUser;
|
|
|
|
Group = config.users.users.${mainUser}.group;
|
|
|
|
};
|
|
|
|
|
|
|
|
path = [
|
|
|
|
convertMkv
|
2024-05-18 23:49:54 -04:00
|
|
|
extractSubs
|
2024-05-18 17:51:06 -04:00
|
|
|
sub-clean
|
2024-05-18 23:49:54 -04:00
|
|
|
bazarr-bulk
|
2024-05-18 17:51:06 -04:00
|
|
|
];
|
|
|
|
|
|
|
|
script = ''
|
|
|
|
# Make sure every video file is a mkv
|
|
|
|
find /data/{anime,history,movies,tv} -name '*.mp4' -exec convertMkv "mp4" "{}" \;
|
|
|
|
|
|
|
|
# Export subs from mkv files
|
|
|
|
find /data/{anime,history,movies,tv} -name '*.mkv' -printf "%h\0" |
|
|
|
|
xargs -0 -I '{}' extract-subs '{}' "eng,fre"
|
|
|
|
|
|
|
|
# Remove ads and stuff in subs
|
|
|
|
find /data/{anime,history,movies,tv} -name '*.srt' -exec sub-clean "{}" \;
|
2024-05-18 23:49:54 -04:00
|
|
|
|
|
|
|
# Bulk sync everything
|
|
|
|
bb movies sync
|
|
|
|
bb tv-shows sync
|
2024-05-18 17:51:06 -04:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2024-05-18 23:49:54 -04:00
|
|
|
timers.manage-subs = {
|
2024-05-18 17:51:06 -04:00
|
|
|
wantedBy = ["timers.target"];
|
|
|
|
partOf = ["manage-subs.service"];
|
|
|
|
timerConfig.OnCalendar = ["0:00:00"];
|
|
|
|
};
|
|
|
|
};
|
2024-05-18 00:04:26 -04:00
|
|
|
}
|