commit 08420379fea11795667f19a3a3f9b532a15816d7
parent 0546b1e23ef277d702fe24d3ea04331586160b7f
Author: breadcat <breadcat@users.noreply.github.com>
Date: Sat, 2 Aug 2025 10:49:25 +0100
Add magnet/torrent processing script
Diffstat:
2 files changed, 102 insertions(+), 0 deletions(-)
diff --git a/common/magnets.nix b/common/magnets.nix
@@ -0,0 +1,101 @@
+{ pkgs, username, ... }:
+
+let
+ magnets = pkgs.writeShellScriptBin "magnets" ''
+ # variables
+ working_directory="$HOME/vault/"
+ # trackers
+ trackers_list=(
+ "http://0123456789nonexistent.com:80/announce"
+ "http://bt.okmp3.ru:2710/announce"
+ "http://ipv4.rer.lol:2710/announce"
+ "http://open.trackerlist.xyz:80/announce"
+ "http://shubt.net:2710/announce"
+ "http://taciturn-shadow.spb.ru:6969/announce"
+ "http://torrent.hificode.in:6969/announce"
+ "http://tracker.bt4g.com:2095/announce"
+ "http://tracker.mywaifu.best:6969/announce"
+ "http://tracker.netmap.top:6969/announce"
+ "http://tracker.privateseedbox.xyz:2710/announce"
+ "http://tracker.renfei.net:8080/announce"
+ "https://pybittrack.retiolus.net:443/announce"
+ "https://t.213891.xyz:443/announce"
+ "https://tr.nyacat.pw:443/announce"
+ "https://tracker.aburaya.live:443/announce"
+ "https://tracker.expli.top:443/announce"
+ "https://tracker.ghostchu-services.top:443/announce"
+ "https://tracker.jdx3.org:443/announce"
+ "https://tracker.leechshield.link:443/announce"
+ "https://tracker.moeblog.cn:443/announce"
+ "https://tracker.yemekyedim.com:443/announce"
+ "https://tracker.zhuqiy.top:443/announce"
+ "udp://1c.premierzal.ru:6969/announce"
+ "udp://bandito.byterunner.io:6969/announce"
+ "udp://d40969.acod.regrucolo.ru:6969/announce"
+ "udp://evan.im:6969/announce"
+ "udp://extracker.dahrkael.net:6969/announce"
+ "udp://martin-gebhardt.eu:25/announce"
+ "udp://open.demonii.com:1337/announce"
+ "udp://open.dstud.io:6969/announce"
+ "udp://open.stealth.si:80/announce"
+ "udp://p4p.arenabg.com:1337/announce"
+ "udp://retracker.lanta.me:2710/announce"
+ "udp://retracker01-msk-virt.corbina.net:80/announce"
+ "udp://tracker.bitcoinindia.space:6969/announce"
+ "udp://tracker.dler.com:6969/announce"
+ "udp://tracker.fnix.net:6969/announce"
+ "udp://tracker.gigantino.net:6969/announce"
+ "udp://tracker.gmi.gd:6969/announce"
+ "udp://tracker.hifimarket.in:2710/announce"
+ "udp://tracker.hifitechindia.com:6969/announce"
+ "udp://tracker.kmzs123.cn:17272/announce"
+ "udp://tracker.opentrackr.org:1337/announce"
+ "udp://tracker.plx.im:6969/announce"
+ "udp://tracker.qu.ax:6969/announce"
+ "udp://tracker.rescuecrew7.com:1337/announce"
+ "udp://tracker.skillindia.site:6969/announce"
+ "udp://tracker.srv00.com:6969/announce"
+ "udp://tracker.therarbg.to:6969/announce"
+ "udp://tracker.torrent.eu.org:451/announce"
+ "udp://tracker.torrust-demo.com:6969/announce"
+ "udp://tracker.tryhackx.org:6969/announce"
+ "udp://tracker.tvunderground.org.ru:3218/announce"
+ "udp://tracker.valete.tf:9999/announce"
+ "udp://tracker.yume-hatsuyuki.moe:6969/announce"
+ "udp://tracker-udp.gbitt.info:80/announce"
+ "udp://ttk2.nbaonlineservice.com:6969/announce"
+ "udp://udp.tracker.projectk.org:23333/announce"
+ "udp://www.torrent.eu.org:451/announce"
+ )
+ for i in "''${trackers_list[@]}"; do trackers="$i,$trackers"; done
+ # process
+ cd "$working_directory" || exit 1
+ # magnet loop
+ for j in *.magnet; do
+ timeout 3m ${pkgs.aria2}/bin/aria2c --bt-tracker="$trackers" --bt-metadata-only=true --bt-save-metadata=true "$(cat "$j")" && rm "$j"
+ # wait for files to be picked up
+ sleep 30s
+ done
+ # removed added files
+ rm -- *.added
+ '';
+in {
+ environment.systemPackages = [ magnets ];
+
+ systemd.timers.magnet-watcher = {
+ wantedBy = [ "timers.target" ];
+ timerConfig = {
+ OnCalendar = "*:0/10";
+ Persistent = true;
+ };
+ };
+
+ systemd.services.magnet-watcher = {
+ script = "magnets";
+ path = [ "/run/current-system/sw" ];
+ serviceConfig = {
+ Type = "oneshot";
+ User = "${username}";
+ };
+ };
+}
diff --git a/machines/ilias.nix b/machines/ilias.nix
@@ -22,6 +22,7 @@ in {
../common/flakes.nix
../common/garbage.nix
../common/locale.nix
+ (import ../common/magnets.nix {inherit pkgs username;})
../common/packages.nix
(import ../common/restic.nix {inherit pkgs username;})
(import ../common/ssh-tunnel.nix {inherit config pkgs username domain;})