55 lines
1.3 KiB
Nix
55 lines
1.3 KiB
Nix
{
|
|
config,
|
|
mainUser,
|
|
pkgs,
|
|
self,
|
|
...
|
|
} @ extraArgs: let
|
|
inherit (self.appsPackages.${pkgs.system}) extract-subs;
|
|
inherit (self.packages.${pkgs.system}) subscleaner;
|
|
|
|
convert-mkv = pkgs.callPackage ./convert.nix {};
|
|
bazarr-bulk = pkgs.callPackage ./syncing.nix ({} // extraArgs);
|
|
in {
|
|
environment.systemPackages = [
|
|
bazarr-bulk
|
|
];
|
|
|
|
systemd = {
|
|
services.manage-subs = {
|
|
serviceConfig = {
|
|
User = mainUser;
|
|
Group = config.users.users.${mainUser}.group;
|
|
};
|
|
|
|
path = [
|
|
bazarr-bulk
|
|
convert-mkv
|
|
extract-subs
|
|
subscleaner
|
|
];
|
|
|
|
script = ''
|
|
# Make sure every video file is a mkv
|
|
find /data/{anime,history,movies,tv} -name '*.mp4' -exec convert-mkv "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' | subscleaner
|
|
|
|
# Bulk sync everything
|
|
bb movies sync
|
|
bb tv-shows sync
|
|
'';
|
|
};
|
|
|
|
timers.manage-subs = {
|
|
wantedBy = ["timers.target"];
|
|
partOf = ["manage-subs.service"];
|
|
timerConfig.OnCalendar = ["0:00:00"];
|
|
};
|
|
};
|
|
}
|