Bash: Script download automatico con MlDonkey dei link ed2k dal Forum dduniverse.net

Vi assumete tutte le responsabilità nell’uso illegale dello script 😛

Stamattina non avendo nulla di meglio da fare, o meglio, cercando una “seria” alternativa allo studio… mi sono messo a girare per il forum dduniverse.net in cerca di qualche videolezione di UniNettuno sui Sistemi Operativi 😀

Dopo una breve ricerca riesco a trovare la pagina ed inizio a copiare-incollare i link ed2k… arrivato al link 5/29 mi chiedo, ma come posso automatizzare il download dei link ed2k sul mio server MLDoneky ? (uso Safari per la navigazione e non posso usare lo script messo a disposizione nella pagina del forum)

Eccovi la risposta che mi sono dato 😀

download_link_mldonkey.sh
[sourcecode language=”bash”]

#!/bin/sh

#############################
# Author #
# Flavio Pace #
# www.vitadastudente.it #
# #
############################
function usage(){
echo “Usage $0 URL_Links IP_Server_MlDoneky –> to login and download”
echo “Example :”
echo “$ sh download_link_mldonkey.sh http://dduniverse.net/ita/viewtopic.php?p=5691388 localhost ”
}
PHPBB_URL=http://dduniverse.net/ita/
PHPBB_TARGET_URL=$1
USER=flavio_user
PASS=flavio_pass
USER_MLDONEKY=admin
PASS_MLDONKEY=admin
MLDONKEY_IP=$2
MLDONKEY_PORT=4000

#————————— login —————————
if [ $# -eq 2 ] ; then

wget –save-cookies=./session-cookies-$USER $PHPBB_URL/ucp.php?mode=login -O – 1> /dev/null 2> /dev/null

SID=`cat ./session-cookies-$USER | grep _sid | cut -d$’\011′ -f7`

echo “Login $USER –> $PHPBB_URL SID=$SID”

wget –save-cookies=./session-cookies-$USER \
–post-data=”username=$USER&password=$PASS&redirect=index.php&sid=$SID&login=Login” \
$PHPBB_URL/ucp.php?mode=login –referer=”$PHPBB_URL/ucp.php?mode=login” \
-O – > /dev/null

echo ” Download Page with Link ”
wget –load-cookies ./session-cookies-$USER $PHPBB_TARGET_URL -O link.txt

echo ” Running Parsing on file ”
grep -o ‘ed2k://[^”]*’ link.txt | grep -v ‘;’ > link_par.txt

echo ” Connect Mldoneky Server”
(echo auth $USER_MLDONEKY $PASS_MLDONEKY;echo dllinks $PWD/link_par.txt; echo vd; echo q) | nc $MLDONKEY_IP $MLDONKEY_PORT

else

usage
fi

[/sourcecode]

 

Lo script è stato scritto per l’uso con il forum phpBB dduniverse.net, ma nulla vi vieta di modificarlo a vostra piacimento per qualsiasi altro forum e/o sito web.

I parametri USER e PASS sono relativi all’accesso a dduniverse.net

I parametri  USER_MLDONKEY e PASS_MLDONEY sono relativi all’accesso al server telnet di MLDonkey.

Gli altri parametri credo si commentino da soli e non hanno bisogno di spiegazioni, ora supponiamo di voler scaricare tutti i link relativi ai video sul corso di Reti di Calcolatori:

http://dduniverse.net/ita/viewtopic.php?p=5691388

il comando da usare è il seguente:
[sourcecode language=”bash”]

$ sh download_link_mldonkey.sh http://dduniverse.net/ita/viewtopic.php?p=5691388 localhost

[/sourcecode]

 

Se tutto sarà andato per il meglio, la nostra bella bash ci restituirà qualcosa del genere a conferma del fatto che tutti i passaggi sono andati a buon fine

 

Buon Download a tutti, e ricordatevi che scaricare materiale coperto da copyright è illegale 😛

 

Script Limitare Upload/Download MLDonkey

Usando MLDonkey come p2p client sul mio serverino, ho sempre avuto la necessita’ di limitare upload/download per poter navigare tranquillamente con la mia linea ADSL a 640 Kb/s ( purtroppo faccio parte del progetto Anti Digital Divide 🙁 ).

Essendo un puritano (Slackware e’ la mia distribuzione 😛 ) e non avendo voglia di accedere all’interfaccia Web, mi sono creato un piccolo script in bash per settare i parametri di upload e download (quest’ultimo e’ opzionale) tramite il demone telnet su cui è in ascolto MLDoney.

Lo script può ritornare utile con l’uso di Contrab, e quindi automatizzare (limitare) l’uso della banda da parte del client p2p. Io per esempio di giorno utilizzo valori molto bassi… per poi aumentarli da una certa ora in poi.

[sourcecode language=”bash”]

#!/bin/sh

#############################
# Author #
# Flavio Pace #
# www.vitadastudente.it #
# #
############################

max_download_rate=”0″

user=”admin”
pass=”admin”

donkey_ip=”localhost”
donkey_port=”4000″

Usage() {

echo “*************************************************************************************************”
echo “Syntax Use: ”
echo “$ ./set_limit_mldonkey upload_rate_limit download_rate_limit(optional)”
echo ” ”
echo “upload_rate_limit: it’s an integer, for example: 10”
echo “download_rate_limit: it’s an integer (optional), if is not set default value is 0 (unlimited)”
echo ” ”
echo “Example: ./set_limit_mldonkey 10 ”
echo ” ”
echo “Example: ./set_limit_mldonkey 10 60 ”
echo “*************************************************************************************************”

exit

}

if [ $# -lt 1 ]

then
Usage
fi

if [ $# -eq 2 ]

then
max_download_rate=$2
echo $max_download_rate
fi

(echo auth $user $pass;echo set max_hard_download_rate $max_download_rate; echo set max_hard_upload_rate $1; echo vd; echo q) | nc $donkey_ip $donkey_port

[/sourcecode]

L’uso dello script è semplicissimo, basta settare user e pass che usate per accedere al client MLDonkey, ip della macchina su cui gira il demone (nel mio caso localhost) e la porta in cui è il ascolto telnet (4000 quella di default).

Abbiamo due scenari di utilizzo

1) Limitare solo Upload e lasciare il Download al valore massimo consentito per quella banda

[sourcecode language=”bash”]
$ sh set_limit_mldonkey.sh 5
[/sourcecode]

In questo caso settiamo Upload a 5Kb/sec e lasciamo il Download al valore massimo per quella banda

2)Limitare sia Upload che il Download

[sourcecode language=”bash”]
$ sh set_limit_mldonkey.sh 5 3
[/sourcecode]

In questo caso settiamo Upload a 5 Kb/sec ed il Download a 3 Kb/sec