www.mamboteam.com
aptitude : me and my debian - a work in progress  
Startsida arrow Forum
2008-08-21
 
 
Huvudmeny
Startsida
debian
bash
Forum
Användarmeny
tidigare material
nyheter
grafik
BadVista
BASH Forum
Välkommen, Gäst
Vänligen Logga in eller Registrera.
Glömt ditt lösenord?
Skript för att skapa torrent med GUI (1 läser)
Ned Svara på det här inlägget Favoriserade: 0
ÄMNE: Skript för att skapa torrent med GUI
#28
georg (Besökare)
Moderator
Inlägg: 7
graphgraph
Användare Offline Klicka här för att se användarens profil
Skript för att skapa torrent med GUI 2007-06-07 20:30 Karma: 1  
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/ctorrent
Packa 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 [ -`which zenity` ]; then # zenity saknas     echo "Installera zenity för att använda detta skript."     exit 1 fi ctorrent=`which ctorrent` if [ -"$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 -"$#" -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 != ]; 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 [ -"$denna_tracker" ]                 do                     denna_tracker=`zenity --entry --title="$namn" --text="$tracker_val_url" --entry-text="$denna_tracker"`                     if [ $PIPESTATUS != ]; 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 != ]; 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 --u $denna_tracker -l $denna_bitstorlek -s $denna_torrent $ladda_upp \         zenity --progress --title="$namn" --text="Skapar $denna_torrent" --auto-close --pulsate     echo -"\n---------------------------\nTORRENT\n$denna_torrent\n--------------------------- "     $ctorrent -x $denna_torrent     echo -"---------------------------\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
  Logga in för att svara.
Upp Svara på det här inlägget
Powered by FireBoard
 
Top! Top!