AVERTISSEMENT: Seule la version QBittorrent est 100% fonctionnelle
Bonjour,
Voici un script fait suite à une réflexion de nam1962 qui cherchait une blocklist pour Qbittorrent. Pourquoi choisir entre plusieurs alors qu'il en existe des dizaines? Laquelle choisir?
Ce script vous permet de choisir plusieurs listes, celles-ci sont fusionnées entre elles tout en supprimant les doublons.
j'ai découvert ce protocole il y a peu en téléchargeant Voyager 12.04,même si j'en avais bien évidemment entendu parler avant. C'était mon 1er torrent.
J'ai aimé ce principe de partage et c'est une bonne solution pour partager des isos Gnu/Linux. Néanmoins on peut ne pas vouloir être connecté avec n'importe qui, le script permet de filtrer des pairs indésirables.
Passez directement au mode d'emploi pour ceux qui veulent le Deb qui s'installe d'un clic de souris avec [doc]Gdebi[/doc]!
Le script active le filtrage d'Ip automatiquement. Il propose l'installation de qbittorrent si il n'est pas présent, pas besoin de l'installer avant.
Le lanceur de qbittorrent peut-être utilisé pour lancer le script à la place, à chaque mise à jour de Qbittorrent, il faudra ré-initialiser pour rétablir ce comportement.
La version pour Transmission est moins aboutie, il faudra activer le filtrage dans les options de Transmission.
VERSION QBITTORRENT
#!/bin/bash
############################################
#### --------------------------- ####
#### qBittorent multi blocklists ####
#### --------------------------- ####
############################################
#/*
# * #----------------------------------------------------------------------------
# * « LICENCE BEERWARE » (Révision 42):
# * metalux a créé ce fichier. Tant que vous conservez cet avertissement,
# * vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
# * que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en
# * retour.
# * ----------------------------------------------------------------------------
#*/
############################
#### ----------- ####
#### INFORMATION ####
#### ----------- ####
############################
# N'oubliez pas de rendre exécutable: sudo chmod u+x "chemin vers le script"
#### -1- Définition des chemins ####
liste=~/.config/qBittorrent/liste
multi=~/.config/qBittorrent/multilist
temp=~/.config/qBittorrent/temp
#### -2- Fonction de téléchargement des blocklists ####
download () {
wget -O "$blocklist.gz" $list 2>&1 | sed -u "s/^.* \+\([0-9]\+%\) \+\([0-9.]\+[GMKB]\) \+\([0-9hms.]\+\).*$/\1\n# Progression du téléchargement de $line... \2 (\3)/" | zenity --progress --title='Download' --auto-kill --auto-close
gzip -df "$blocklist.gz"
[[ $? -ne 0 ]] && zenity --timeout=4 --warning --title 'qbittorrent' --text "la mise à jour de la liste $line est injoignable, l'ancienne liste sera utilisée à la place" || mv -f "$blocklist" "$multi"
}
#### -3-Fonction de détection gksudo ou kdesudo ####
chercher () {
trouver=$(which $1)
return $?
}
if chercher gksudo; then
session='gksudo -m'
elif chercher kdesudo; then
session='kdesudo --comment'
fi
#### -4- Script principal ####
if [[ -e "$liste" ]];then
choix=$(zenity --list --radiolist --separator='\n' --width=800 --height=600 --title='qBittorrent Multi Blocklists' --text='Choisissez une option parmi les suivantes' --column="choix :" --column="Option" FALSE 'Réinitialiser qbittorrent Blocklists' TRUE 'Update Blocklists & Start' FALSE 'Start') && [[ -n $choix ]]
if [[ $choix == 'Réinitialiser qbittorrent Blocklists' ]];then
rm -f "$liste"
rm -rf "$multi" "$temp"
rm ~/.config/qBittorrent/blocklists.p2p
if grep "$HOME" /usr/share/applications/qBittorrent.desktop;then
$session "Rétablissement du lanceur d'origine" "sed -i 's/^Exec.*/Exec=qbittorrent %U/' /usr/share/applications/qBittorrent.desktop"
fi
notify-send -i qbittorrent 'qbittorrent Blocklists' 'Configuration réinitialisée.\nSuppression des blocklists\nRétablissement du lanceur de qBittorrent (si modifié)'
exit 0
elif [[ $choix == 'Update Blocklists & Start' ]];then
cd "$temp"
while read line
do
if [[ "$line" == 'bluetack level1' ]];then
blocklist='level1'
list=http://list.iblocklist.com/?list=bt_level1
download
elif [[ "$line" == 'bluetack level2' ]];then
blocklist='level2'
list=http://list.iblocklist.com/?list=bt_level2
download
elif [[ "$line" == 'bluetack level3' ]];then
blocklist='level3'
list=http://list.iblocklist.com/?list=bt_level3
download
elif [[ "$line" == 'Liste France' ]];then
blocklist='france'
list=http://list.iblocklist.com/?list=fr
download
elif [[ "$line" == 'Bad Peers' ]];then
blocklist='bp'
list=http://list.iblocklist.com/?list=bt_templist
download
elif [[ "$line" == 'TBG Primary Threats' ]];then
blocklist='tbg_pt'
list=http://list.iblocklist.com/?list=ijfqtofzixtwayqovmxn
download
elif [[ "$line" == 'Microsoft' ]];then
blocklist='microsoft'
list=http://list.iblocklist.com/?list=bt_microsoft
download
elif [[ "$line" == 'Dshield' ]];then
blocklist='dshield'
list=http://list.iblocklist.com/?list=bt_dshield
download
elif [[ "$line" == 'Educational Institutions' ]];then
blocklist='edu'
list=http://list.iblocklist.com/?list=bt_edu
download
elif [[ "$line" == 'Rangetest' ]];then
blocklist='rangetest'
list=http://list.iblocklist.com/?list=bt_rangetest
download
elif [[ "$line" == 'Bluetack bogon' ]];then
blocklist='btbogon'
list=http://list.iblocklist.com/?list=bt_bogon
download
elif [[ "$line" == 'Business ISPs' ]];then
blocklist='bisps'
list=http://list.iblocklist.com/?list=jcjfaxgyyshvdbceroxf
download
elif [[ "$line" == 'USA' ]];then
blocklist='usa'
list=http://list.iblocklist.com/?list=us
download
fi
done < "$liste"
cd "$multi"
if [[ -n $(ls) ]];then
notify-send -i qbittorrent 'qbittorrent blocklists' 'Veuillez patienter...fusion des listes et suppression des doublons'
sort -u $(ls) >> blocklist
sed -i '/^$/d;/^#/d' blocklist
mv -f blocklist ~/.config/qBittorrent/blocklists.p2p
elif [[ -e ~/.config/qBittorrent/blocklists.p2p ]];then
zenity --timeout=4 --warning --text="Aucune nouvelle liste. qbittorrent va démarrer avec l\'ancienne liste"
else
zenity --timeout=4 --warning --title='qbittorrent' --text='Aucune liste de disponible. qbittorrent va démarrer sans blocklists'
fi
qbittorrent
elif [[ $choix == 'Start' ]];then
qbittorrent
fi
exit 0
#### -5- Pré-configuration et installation de qBittorrent ####
else
[[ -z $(which qbittorrent) ]] && gksudo -m "Installation de qBittorrent. Veuillez patientez pendant celle-ci....cela peut prendre un peu de temps...Ne fermez pas le script S.V.P." "apt-get install qbittorrent"
[[ -z $(which qbittorrent) ]] && notify-send 'qBittorrent multi-blocklists' "Annulation de l\'opération\n qBittorrent ne sera pas installé" && exit 1
[[ ! -e ~/.config/qBittorrent ]] && mkdir ~/.config/qBittorrent
mkdir "$multi"
mkdir "$temp"
! grep 'IPFilter\File' ~/.config/qBittorrent/qBittorrent.conf && sed -i '/Preferences/ a\IPFilter\\Enabled=true' ~/.config/qBittorrent/qBittorrent.conf
! grep 'IPFilter\Enabled' ~/.config/qBittorrent/qBittorrent.conf && sed -i '/IPFilter/ a\IPFilter\\File=' ~/.config/qBittorrent/qBittorrent.conf
sed -i 's|^IPFilter\\File.*|IPFilter\\File='"$HOME"'/.config/qBittorrent/blocklists.p2p|' ~/.config/qBittorrent/qBittorrent.conf
sed -i 's|^IPFilter\\Enabled.*|IPFilter\\Enabled=true|' ~/.config/qBittorrent/qBittorrent.conf
zenity --question --text "Voulez-vous que le lanceur de qBittorrent lance ce script?\nCeci est réversible à partir du script.\nIl suffit de choisir l'option Réinitialiser...pour annuler toute modification"
[[ $? -eq 0 ]] && gksudo -m "Modification du lanceur. Vous pourrez annuler cette modification en réinitialisant le script à partir des options" "sudo sed -i 's|^Exec.*|Exec=\"$0\"|' /usr/share/applications/qBittorrent.desktop"
notify-send -i qbittorrent 'qBittorrent Multi Blocklists' 'Vous ouvrez qbittorrent multiples blocklists pour la 1ère fois, veuillez choisir les blocklists à ajouter'
selection=$(zenity --list --checklist --separator='\n' --width=800 --height=600 --title='qbittorrent Blocklists' --text='Choisissez les blocklists' --column="choix :" --column="Liste" TRUE 'bluetack level1' "" 'bluetack level2' "" 'bluetack level3' TRUE 'Liste France' "" 'Bad Peers' TRUE 'TBG Primary Threats' "" 'Microsoft' "" 'Dshield' "" 'Educational Institutions' "" 'Rangetest' "" 'Bluetack bogon' "" 'Business ISPs' "" 'USA')
[[ $? -ne 0 ]] && exit 1
echo "$selection" >> "$liste"
bash "$0"
fi
exit 0
VERSION TRANSMISSION
#!/bin/bash
#by metalux @Communauté Voyager Linux
#/*
# * #----------------------------------------------------------------------------
# * « LICENCE BEERWARE » (Révision 42):
# * metalux a créé ce fichier. Tant que vous conservez cet avertissement,
# * vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
# * que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en
# * retour.
# * ----------------------------------------------------------------------------
#*/
#### -1- Définition des chemins ####
liste=~/.config/transmission/liste
multi=~/.config/transmission/multilist
temp=~/.config/transmission/temp
#### -2- Fonction de téléchargement des blocklists ####
download () {
wget -O "$blocklist.gz" $list 2>&1 | sed -u "s/^.* \+\([0-9]\+%\) \+\([0-9.]\+[GMKB]\) \+\([0-9hms.]\+\).*$/\1\n# Progression du téléchargement de $line... \2 (\3)/" | zenity --progress --title='Download' --auto-kill --auto-close
gzip -df "$blocklist.gz"
[[ $? -ne 0 ]] && zenity --timeout=4 --warning --title 'Transmission' --text "la mise à jour de la liste $line est injoignable, l'ancienne liste sera utilisée à la place" || mv -f "$blocklist" "$multi"
}
if [[ -e "$liste" ]];then
choix=$(zenity --list --radiolist --separator='\n' --width=800 --height=600 --title='transmission Blocklists'zenity --list --separator='\n' --width=800 --height=600 --title='Transmission' --text='Choisissez une option parmi les suivantes' --column="choix :" --column="Option" FALSE 'Réinitialiser Transmission Blocklists' TRUE 'Update Blocklists & Start' FALSE 'Start') && [[ -n $choix ]]
if [[ $choix == 'Réinitialiser Transmission Blocklists' ]];then
rm -f "$liste"
rm -rf "$multi" "$temp"
rm ~/.config/transmission/blocklists/*
notify-send -i transmission 'Transmission Blocklists' 'Configuration réinitialisée. Suppression des blocklists'
exit 0
elif [[ $choix == 'Update Blocklists & Start' ]];then
cd "$temp"
while read line
do
if [[ "$line" == 'bluetack level1' ]];then
blocklist='level1'
list=http://list.iblocklist.com/?list=bt_level1
download
elif [[ "$line" == 'bluetack level2' ]];then
blocklist='level2'
list=http://list.iblocklist.com/?list=bt_level2
download
elif [[ "$line" == 'bluetack level3' ]];then
blocklist='level3'
list=http://list.iblocklist.com/?list=bt_level3
download
elif [[ "$line" == 'Liste France' ]];then
blocklist='france'
list=http://list.iblocklist.com/?list=fr
download
elif [[ "$line" == 'Bad Peers' ]];then
blocklist='bp'
list=http://list.iblocklist.com/?list=bt_templist
download
elif [[ "$line" == 'TBG Primary Threats' ]];then
blocklist='tbg_pt'
list=http://list.iblocklist.com/?list=ijfqtofzixtwayqovmxn
download
elif [[ "$line" == 'Microsoft' ]];then
blocklist='microsoft'
list=http://list.iblocklist.com/?list=bt_microsoft
download
elif [[ "$line" == 'Dshield' ]];then
blocklist='dshield'
list=http://list.iblocklist.com/?list=bt_dshield
download
elif [[ "$line" == 'Educational Institutions' ]];then
blocklist='edu'
list=http://list.iblocklist.com/?list=bt_edu
download
elif [[ "$line" == 'Rangetest' ]];then
blocklist='rangetest'
list=http://list.iblocklist.com/?list=bt_rangetest
download
elif [[ "$line" == 'Bluetack bogon' ]];then
blocklist='btbogon'
list=http://list.iblocklist.com/?list=bt_bogon
download
elif [[ "$line" == 'Business ISPs' ]];then
blocklist='bisps'
list=http://list.iblocklist.com/?list=jcjfaxgyyshvdbceroxf
download
elif [[ "$line" == 'USA' ]];then
blocklist='usa'
list=http://list.iblocklist.com/?list=us
download
fi
done < "$liste"
cd "$multi"
if [[ -n $(ls) ]];then
notify-send -i transmission-gtk 'Transmission blocklists' 'Veuillez patienter...fusion des listes et suppression des doublons'
sort -u $(ls) >> blocklist
sed -i '/^$/d;/^#/d' blocklist
mv -f blocklist ~/.config/transmission/blocklists
elif [[ -e ~/.config/transmission/blocklists/*.bin ]];then
zenity --timeout=4 --warning --text="Aucune nouvelle liste. Transmission va démarrer avec l\'ancienne liste"
else
zenity --timeout=4 --warning --title='Transmission' --text='Aucune liste de disponible. Transmission va démarrer sans blocklists'
fi
transmission-gtk
elif [[ $choix == 'Start' ]];then
transmission-gtk
fi
exit 0
#### -3- Sélection des listes à la première ouverture ####
else
[[ ! -e ~/.config/transmission ]] && mkdir ~/.config/transmission
mkdir "$multi"
mkdir "$temp"
notify-send -i transmission 'Transmission' 'Vous ouvrez transmission multiples blocklists pour la 1ère fois, veuillez choisir les blocklists à ajouter'
selection=$(zenity --list --checklist --separator='\n' --width=800 --height=600 --title='transmission Blocklists' --text='Choisissez les blocklists' --column="choix :" --column="Liste" TRUE 'bluetack level1' "" 'bluetack level2' "" 'bluetack level3' TRUE 'Liste France' "" 'Bad Peers' TRUE 'TBG Primary Threats' "" 'Microsoft' "" 'Dshield' "" 'Educational Institutions' "" 'Rangetest' "" 'Bluetack bogon' "" 'Business ISPs' "" 'USA')
[[ $? -ne 0 ]] && exit 1
echo "$selection" >> "$liste"
bash "$0"
fi
exit 0
MODE D'EMPLOI
Je vais essayer d'être didactique et accessible aux débutants :rolleyes:
Le Deb: qbt-multi-blocklists
Le Deb facilite l'installation.
Lancez tout simplement QBittorrent, le script se lancera à la place!
Ne tenez pas compte du début des explications pour le deb, passez directement à la 3ème image.
Pour les débutants, le mieux est d'utiliser le deb et de l'installer avec Gdebi (cf tuto de nam1962).
Vous pouvez également copier le contenu du texte qui se trouve dans le cadre noir et le coller dans un fichier texte. Vous enregistrez et ensuite le rendez exécutable. Le plus simple est de le faire à partir d'un clic droit (en général propriété/permission ou quelque chose de similaire, tout dépend qu'elle version vous utilisez Unity,xfce,etc...) ou bien tout simplement à partir d'un terminal
sudo chmod u+x le "chemin complet vers votre script"
Pour entrer le chemin complet vers le script, il suffit en général de glisser votre fichier dans le terminal, le chemin se complètera tout seul.
Vous entrez votre mot de passe (il ne s'affiche pas, c'est normal) puis appuyez sur la touche "Entree"
Maintenant le script est fonctionnel en (double)cliquant dessus.
Si Qbittorrent n'est pas installé, le script installera celui-ci automatiquement. Durant l'installation, il faut patienter car sa donne l'impression que rien ne se passe. Le script reprendra tout seul dès la fin de celle-ci.
Vous avez une 1ère fenêtre qui s'ouvre:

Si vous répondez "Oui", le lanceur de qbittorrent lancera le script à la place de qbittorrent. Par contre, ne bougez pas le script de place par la suite sinon ça ne fonctionnera plus (il faudra ré-initialiser le script dans ce cas).
Une nouvelle fenêtre s'ouvre:

Entrez votre mot de passe pour que le lanceur soit modifié.

Dans cette fenêtre vous sélectionnez les listes qui vous intéressent. Plus vous utilisez de listes, plus il y a d'adresses de filtrées mais trop de listes augmentent la durée d'ouverture de Qbittorrent. Pour plus de détails sur ces listes, consultez
cette page.
La pré-sélection est déjà une bonne base.
Vous arrivez alors à la dernière fenêtre:

La 1ère fois, sélectionnez
Update Blocklists & Start, ça mettra les listes à jours et démarrera Qbittorrent.
Les prochains démarrages tomberont directement sur cette fenêtre ou vous pourrez soit démarrer Qbittorrent avec votre dernière liste(option Start), soit mettre à jour les lstes avant de lancer Qbittorrent (update blocklists & start, pour la fréquence de mise à jour des listes référez vous au site mis en lien ci-dessus. Si vous utilisez des listes fréquemment mises à jour, ça peut être utile de lancer cette option pour avoir toujours la liste la plus récente.)
La dernière option "Ré-initialiser..." permet de revenir en arrière et de refaire sa sélection.
Pour la version Deb(ne concerne pas la version script)
Si il y a une mise à jour de Qbittorrent, le script ne s'ouvrira plus. Il faudra lancer le script en terminal à l'aide de la commande suivante:
qbt-multi-blocklists
et choisir l'option "Restaurer le lanceur". Le script sera alors à nouveau fonctionnel.
Pour la version Script (ne concerne pas la version Deb)
La ré-initialisation est utile si il y a eu une mise à jour de Qbittorrent, le lanceur étant rétabli, il ne lancera plus le script. Elle permet aussi d'annuler la modification du lanceur de Qbittorrent pour ceux qui préfèrent, bien que l'option "Start" revient à lancer Qbittorrent simplement.