나는 사용한다 rtorrent
. 마그넷 링크를 사용하면 "메타" 파일(.meta)이 생성됩니다. 긴 16진수(0-9, AF) 형식을 취합니다. 예를 들어:
0123456789ABCDEF0123456.meta
기존 메타파일을 "사용"하여 부팅하려면 rtorrent
먼저 접미사 없이(".meta" 없이) 파일 이름을 "격리"할 수 있습니다.
0123456789ABCDEF0123456
이 16진수 부분은 실제로 (항상?) 41자 길이입니다.
그런 다음 그 앞에 프로토콜을 추가하고 그 뒤에 추적기 목록을 추가해야 합니다.
magnet:?xt=urn:btih:0123456789ABCDEF0123456&tr=http://tracker1.com:80&tr=udp://tracker2.net:8080
트래커 목록을 변경할 수 있으면 좋을 것 같습니다. 이상적으로는 트래커 URL을 한 줄에 하나의 트래커가 있는 파일에서 읽어야 하며 &tr=
필요한 곳에 추가해야 합니다. 추적기는 http:// 또는 udp://를 프로토콜로 사용하며 일반적으로 포트 번호를 ( :port
끝 부분에) 지정해야 합니다.
하나예실제 "tracker-tail"(16진수 다음 부분)은 다음과 같습니다.
&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A80&tr=udp%3A%2F%2Fglotorrents.pw%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969
그러나 이를 변경하는 것이 가능해야 하며 이상적으로는 별도의 파일에 나열되어야 합니다.
예를 들어, 이러한 파일에는 다음이 포함될 수 있습니다.
trackers.txt
:
udp://tracker.coppersurfer.tk:80
udp://glotorrents.pw:6969/announce
udp://tracker.leechers-paradise.org:6969
udp://tracker.opentrackr.org:1337/announce
udp://exodus.desync.com:6969
(참고: 추적기는 프로토콜로 http://도 사용합니다.)
.meta"=
제거 및 추가 magnet:...
- 혼동을 &tr=...
방지하기 위해 따옴표로 묶음 &
- 그런 다음 결과를 bash
rtorrent에 매개변수로 전달할 수 있습니다.
내가 원하는 것은 이 변환 프로세스 를 자동화하고 결과를 rtorrent
. 하나는 스크립트에 의해 시작됨).bash
rtorrent
rtorrent "magnet:...12345..." "magnet:...6789..." "magnet:...ABCD..."
불행하게도 저는 스크립팅을 잘 못하는데 bash
, 혹시 이와 같은 작업을 수행하는 방법을 아시는 분 계신가요?
답변1
다음은 bash에서의 변환 스니펫입니다.
#!/bin/bash
# The array of results passed to rtorrent in the end
results=()
# The file listing the trackers is the first argument
trackers="$1"
shift
# create the tracker list url part.
# sed reads the file and puts '&tr=' before each line,
# then it replaces all : and / with the percent escaped version for urls.
# tr deletes all newlines (turning the text into one long line)
tracker_list_for_url="$(sed 's/^/&tr=/;s/:/%3A/g;s#/#%2F#g' < "$trackers" \
| tr -d '\n')"
# loop over arguments and add them to $results
for arg in "$@"; do
# remove the extension
hex_part="${arg%.meta}"
# append to results array
results+="magnet:?xt=urn:btih:$hex_part$tracker_list_for_url"
done
exec rtorrent "${results[@]}"
또한 귀하의 시나리오에서 어떤 프로그램이 어떤 프로그램을 호출하는지, 언제, 어떻게 매개 변수가 생성되어 다른 프로그램에 전달되는지 이해하지 못합니다. 그래서 저는 다음과 같은 가정을 했습니다.
- 추적기 목록 파일을 첫 번째 인수로 사용하고 메타파일을 나머지 인수로 사용하여 스크립트를 호출합니다.
- 스크립트는 다음으로 시작해야 합니다.
rtorrent
이러한 가정이 잘못된 경우 위 스크립트를 명확히 하거나 사용하고 필요에 맞게 조정하십시오.