magnet.sh
1#!/usr/bin/env bash
2
3[ -z "$1" ] && echo "Usage: $0 \"search query\"" >&2 && exit 1
4
5curl -s "https://piratebay.party/search/$(printf '%s' "$*" | jq -sRr @uri)/1/99/0" | awk -v query="$*" '
6/title="Details for/ {
7 match($0, /Details for [^"]+/)
8 name = substr($0, RSTART + 12, RLENGTH - 12)
9 gsub(/ /, " ", name); gsub(/>/, ">", name); gsub(/</, "<", name)
10 found = 1
11}
12found && /magnet:\?/ && !mag {
13 match($0, /magnet:\?[^"]+/)
14 mag = substr($0, RSTART, RLENGTH)
15}
16found && /<td align="right">[0-9.]+ [GMK]iB/ && !size {
17 match($0, /[0-9.]+ [GMK]iB/)
18 size = substr($0, RSTART, RLENGTH)
19 gsub(/ /, " ", size)
20}
21found && /<td align="right">[0-9]+</ && !se {
22 match($0, /[0-9]+/)
23 se = substr($0, RSTART, RLENGTH)
24}
25found && /<td align="right">[0-9]+</ && se && !le {
26 match($0, /[0-9]+/)
27 le = substr($0, RSTART, RLENGTH)
28 print name " | SE: " se " LE: " le " | " size
29 print mag
30 exit
31}
32END { if (!found) { print "Error: cannot find " query > "/dev/stderr"; exit 1 } }
33'