Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Автоматическое создание и публикация magnet-ссылок в transmission : Linux

29.03.2024 17:33


28.09.2013 08:17
OlegON
 
С помощью transmission (в cli-варианте) для расшаривания любого файла нужно всего две команды:

Код:
transmission-create -o "/tmp/torrent.torrent" "нужный_файл"
transmission-remote "localhost" -w "путь_к_папке_где_нужный_файл/" -a "/tmp/torrent.torrent"
Первая команда создаёт торрент. Вторая подключается к работающему локально (localhost) демону (transmission-daemon) и ставит только что созданный торрент на раздачу. Можно добавить ещё и третью команду — удаление созданного торрент-файла (покуда с момента установки на раздачу им начирает рулить демон, и сам локальный файл больше не нужен)

Нужный хэш при необходимости вытаскивается из торрента (если в cli — с помощью transmission-show) и дописывается в конец строчки «magnet:?xt=urn:btih:», полученная ссылка (например,
magnet:?xt=urn:btih:fb26eaa6180af006cc502837ad48d655c5e27561) отдаётся страждущим — и всё!

Код:
#!/bin/sh

# publish and announce given arc on the torrent web
# Intended to be run via ssh directly on hardware router (on DD-WRT + OPTWARE)

BASE="/mnt/bigstore/wwshared/veloprobeg_2011"
HOST="localhost"
TMP="/mnt/tmp"
NAME="$1"
MEDIA="$2"
ADDITION="$MEDIA"

cd $BASE
echo $MEDIA
if [ "z${MEDIA}" = "z" ] ; then
    echo "Using default extension: photo"
    MEDIA='photo'
    ADDITION=''
fi

TORR="$TMP/tor.torrent"
ARC="$NAME/$NAME-$MEDIA.tar"
TARDIR="$BASE/$NAME/"

# if there is no name-photo.tar - do the torrent from all tars in folder
if [ ! -e "$ARC" ] ; then
    echo "Adding several files"
    tmdir="$TMP/$NAME"
    [ -d "$tmdir" ] && rm -rf "$tmdir"
    mkdir -p "$tmdir"
    echo "in dir $tmdir"
    olddir=`pwd`
    cd "$NAME"
    curdir=`pwd`
    for a in *.tar ; do
	echo "Adding file $a..."
	ln -s "$curdir/$a" "$tmdir/$a"
    done
    cd "$olddir"
    ARC="$tmdir"
    TARDIR="$BASE"
fi

[ -f "$TORR" ] && rm -f "$TORR"
echo "Making a torrent..."
#transmissioncli -n "$ARC" "$TORR"
transmission-create -o "$TORR" "$ARC"
HASH=`transmission-show "$TORR" | grep Hash | awk '{print $2;}'`
echo "Announce the torrent..."
transmission-remote "$HOST" -w "$TARDIR/" -a "$TORR"
echo "All is done."
[ -d "$ARC" ] && rm -rf "$ARC"
MAGNET="magnet:?xt=urn:btih:$HASH"
LABEL="$NAME"
if [ "z$ADDITION" != "z" ] ; then
    LABEL="$NAME-$ADDITION"
fi
echo "$MAGNET	$LABEL" >> magnet-torrents.txt
echo "<a href=\"$MAGNET\">$LABEL</a><br>" >> magnet-torrents.html
echo "$MAGNET"
Часовой пояс GMT +3, время: 17:33.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.