Jag använder ctorrent och zenity för detta skript.
Ctorrent är en torrent-klient som styrs från terminalen (inget GUI).
Det finns för Debian (unstable) men ännu inte för Ubuntu (kommer till Gutsy),
men jag hade inga problem att kompilera källkoden själv till Ubuntu. Ladda ner källkoden från:
http://packages.debian.org/unstable/net/ctorrentPacka upp .tar.gz-filen och följ instruktiorna i INSTALL.
Det kan vara användbart att använda det här skriptet som ett Nautilus-skript:
| Code: |
ln -sf /path/to/mktor ${HOME}/.gnome2/nautilus-scripts
|
Här är själva skriptet:
| Code: |
#!/bin/bash
#
# ~/bin/mktor - ett GUI för att skapa en torrent-fil med ctorrent
#
# Author: Georg Wallin
# Date: 2007-06-07
# Version: 1.1
# VARIABLER
version="1.1"
namn="mktor $version"
# zenity-meddelanden
ctorrent_saknas="Installera ctorrent för att använda detta skript."
fel_val="Välj EN fil eller mapp att ladda upp."
tracker_val="Välj tracker:"
oink="OiNK"
demonoid="Demonoid"
annan_tracker="Välj annan..."
tracker_val_url="Skriv url till tracker:"
ingen_tracker="Välj en tracker att ladda upp till"
spara_som="Spara torrent som:"
# tracker urls
oink_url="http://tracker.oink.me.uk:34810/tracker/rxw1ks48p2qcq571/announce"
demonoid_url="http://inferno.demonoid.com:3405/announce"
# KONTROLLER
if [ -z `which zenity` ]; then # zenity saknas
echo "Installera zenity för att använda detta skript."
exit 1
fi
ctorrent=`which ctorrent`
if [ -z "$ctorrent" ]; then # ctorrent saknas
zenity --error --title="$namn" --text="$ctorrent_saknas"
exit 1
fi
# parametrar saknas, eller för många parametrar, ctorrent kan bara ladda upp EN fil eller mapp
if [ "$#" -eq 0 -a "$#" -gt 1 ]; then
zenity --error --title="$namn" --text="$fel_val"
exit 1
fi
# FUNKTIONER
# välja tracker (zenity radiolist)
valj_tracker () {
repeat=1
while [ $repeat -eq 1 ]; do
trackerlist=`zenity --list --radiolist --title="$namn" --text="$tracker_val" --column="" --column="$tracker_val"
FALSE "$oink" FALSE "$demonoid" FALSE "$annan_tracker"`
if [ $PIPESTATUS != 0 ]; then # användare avbröt
echo "Avbrutet av användare"
exit 192
fi
case "$trackerlist" in
"$oink")
denna_tracker="$oink_url"
tracker_namn="$oink"
repeat=0
;;
"$demonoid")
denna_tracker="$demonoid_url"
tracker_namn="$demonoid"
repeat=0
;;
"$annan_tracker")
while [ -z "$denna_tracker" ]
do
denna_tracker=`zenity --entry --title="$namn" --text="$tracker_val_url" --entry-text="$denna_tracker"`
if [ $PIPESTATUS != 0 ]; then # användare avbröt
repeat=1
break
fi
done
tracker_namn="Eget val"
repeat=0
;;
*)
zenity --error --title="$varning" --text="$ingen_tracker"
repeat=1
continue
;;
esac
done
repeat=0
}
# välja filnamn för att spara torrent som (zenity --file-selection)
spara_torrent () {
denna_torrent=`zenity --file-selection --title="$spara_som" --save --confirm-overwrite`
if [ $PIPESTATUS != 0 ]; then # användare avbröt
echo "Avbrutet av användare"
exit 192
fi
}
# beräkna bitstorlek (piece size)
#
# list of recommended torrent piece sizes
# dir_size piece size (bytes)
# >2048 MB 2097152
# 1024-2048 MB 1048576
# 512-1024 MB 524288
# 350-512 MB 262144
# 150-350 MB 131072
# 50-150 MB 65536 (minsta värdet som ctorrent accepterar)
# <50 MB 32768
berakna_bitstorlek () {
torrent_storlek=0
let "torrent_storlek += $(du -B 1048576 -s $1 | awk '{print $1}')"
denna_bitstorlek=262144 # default storlek (256 kB)
if [ $torrent_storlek -le 150 ]
then let "denna_bitstorlek /= 4"
elif [ $torrent_storlek -le 350 ]
then let "denna_bitstorlek /= 2"
elif [ $torrent_storlek -le 512 ]
then let "denna_bitstorlek *= 1"
elif [ $torrent_storlek -le 1024 ]
then let "denna_bitstorlek*=2"
elif [ $torrent_storlek -le 2048 ]
then let "denna_bitstorlek *= 4"
elif [ $torrent_storlek -gt 2048 ]
then let "denna_bitstorlek *= 8"
fi
let "bitstorlek_kB = denna_bitstorlek / 1024"
}
# skapa torrent och sedan visa info
skapa_torrent () {
# det blir fel när torrent-fil redan existerar, trots "zenity --confirm-overwrite" i spara_torrent
()
if [ -e $denna_torrent ]; then
rm -f $denna_torrent
fi
berakna_bitstorlek
$ctorrent -t -u $denna_tracker -l $denna_bitstorlek -s $denna_torrent $ladda_upp \
| zenity --progress --title="$namn" --text="Skapar $denna_torrent" --auto-close --pulsate
echo -e "\n---------------------------\nTORRENT\n$denna_torrent\n---------------------------
"
$ctorrent -x $denna_torrent
echo -e "---------------------------\n"
}
# PROGRAMSTART
# fil eller mapp ladda upp
ladda_upp=$1
valj_tracker
spara_torrent
skapa_torrent
exit 0
|
Inlägg ändrat av georg, den 2007-06-07 20:35