dlow 0.1

Si vous ne vous intéressez pas aux séries TV, à usenet (newsgroups), aux NZBs et tutti quanti, le reste de ce billet ne devrait pas vous concerner :s

Ça faisait longtemps que je projetais de faire un programme qui me téléchargerait les NZBs manquants référencé sur http://www.siberien.net/series/. Et cet après-midi, je me suis atteler à la tâche. Voilà donc une première version d’un script qui me sera très utile.

Pour l’instant, le script se contente de télécharger les NZBs qui ne l’ont pas déjà été lors d’une précédente exécution. Pas grand-chose donc et déjà des bugs mais ça m’évite déjà de faire moult clics droits, « enregistrer sous » et ça, c’est appréciable. C’est écrit en bash et vu que ce n’est encore qu’un brouillon, on va dire que c’est sous WTFPL. Vous trouverez le code source dans la suite de cette entrée.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
# dlow version 0.1 par lowie@siberien.net
#Description : Permet de télécharger les nzb (et bientôt les sous-titres) référencé sur siberien.net

#Dépendances :
# wget
# Créer un fichier .historique dans le dossier courant qui est utile pour les futures exécutions

#À faire :
# interface graphique avec zenity
# Bug : quand $j est vide, il peut pas le comparer à $i
# faire la même chose pour les sous-titres
# Bug : dl les CSI Vegas et NCIS LA par defaut alors que devrait pas
# Bug : ajoute des trucs dans .historique qui sont pas dans $series
# Envoyer par ftp les nzb sur son serveur

#           à compléter
#     | | | | | | | | | | | | | | |
#     | | | | | | | | | | | | | | |
#     v v v v v v v  v v v v v v v v
#Compléter les séries que vous voulez suivre ci-dessous en copiant/collant depuis la ligne du dessous
series=(Californication Caprica Defying%20Gravity Desperate%20Housewives Dexter Heroes House How%20I%20met%20your%20mother Medium NCIS Nip%20Tuck Scrubs Sons%20of%20Anarchy Stargate%20SG-1 Stargate%20Universe The%20Big%20Bang%20Theory The%20Clone%20Wars V)
#series=(30%20Rock Bones Burn%20Notice CSI%20Las%20Vegas CSI%20New%20York Californication Caprica Castle Defying%20Gravity Desperate%20Housewives Dexter Dollhouse Drive Esprit%20Criminels Eureka FlashForward Fringe Ghost%20Whisperer Gossip%20Girl Greys%20Anatomy Heroes House How%20I%20met%20your%20mother Knight%20Rider Mad%20Men Medium NCIS%20LA NCIS Nip%20Tuck One%20Three%20Hill Sanctuary Scrubs Six%20Degrees Sons%20of%20Anarchy Southland Stargate%20SG-1 Stargate%20Universe The%20Big%20Bang%20Theory The%20Clone%20Wars The%20Closer The%20Forgotten The%20Last%20Templar The%20Mentalist Trauma Urgences V)

#Au cas où le programme plante ou autre, on fait le ménage
rm index.html; rm indexgrep; rm liste

#On récupère l'index des nzb puis on met dans indexgrep toutes les lignes relativent aux séries qu'on veut suivre
wget http://www.siberien.net/series/nzb/

for i in ${series[*]}
do
cat index.html | grep $i  >> indexgrep
done

#Formule magique pour retirer tout ce qui est avant HREF= et tout ce qui est après "> dans le fichier indexgrep et on colle le tout dans liste
cat indexgrep | sed 's/HREF="/!/' | cut -d'!' -f2 | sed 's/">/!/' | cut -d'!' -f1 >> liste

#Boucle qui pour chaque ligne du fichier liste : ne dl pas le nzb s'il est noté dans .historique ou le dl si ce n'est pas le cas
for i in $(cat liste)
do
j=$(cat .historique | grep $i)
if [ $j = $i ]; then
{
echo $i" déjà téléchargé"
}
else
{
wget http://www.siberien.net/series/nzb/${i}
echo $i >> .historique
}
fi
done

#effacement des pages inutiles
rm index.html; rm indexgrep; rm liste

exit 0;
Vus : 846
Publié par lowje : 10