Tym-Project

From: SUPINFO
To: Tous
Subject: IT

Un Client Newsgroup Pour Linux : "Hell, a NZB!"

Suite à mon fulgurant, mais durable, passage sous Linux, je cherche un équivalent à mes applications Windows. Un exemple parmi d’autres : un client Newsgroup. Mon choix s’est porté sur Hellanzb. Voici donc comment le mettre en place sous Archlinux.

Mais tout d’abord voici un résumé des mes critères de choix :

  • Gestion des connexions en SSL
  • Réparation automatique (par2…ou par quatre ou cinq…:))
  • Extraction automatique
  • Légèreté (pas besoin d’une usine à gaz !)
  • Gestion des proxy Socks

Hellanzb fait tout ça (sauf le Socks, mais avec tsocks…), il ne dispose pas d’interface graphique (donc très léger !).

Allez hop, au travail ! On installe tout d’abord le paquet (disponible seulement sur AUR) :

yaourt -Sy hellanzb

Comme je veux faire du SSL, et que Hellanzb est en python il me faut une librairie en plus :

pacman -Sy pyopenssl

Tout est presque fonctionnel, il faut maintenant configurer Hellanzb. Pour cela éditez (et donc créez) le fichier ~/.config/hellanzb.conf. Voici ma configuration pour Giganews en SSL (un exemple est présent dans /etc/hellanzb.conf.sample) :

defineServer(id= 'gn',
hosts = [ 'news-europe.giganews.com:443' ],
username = 'gnXXXXXX',
password = 'XXXXXXXXXXXXXXXX',
connections = 4,
antiIdle = 0,
# 0 to disable
ssl = True )
# Important locations
Hellanzb.PREFIX_DIR = '/home/tym/NG/'
# Where to put queued .nzb files
Hellanzb.QUEUE_DIR = Hellanzb.PREFIX_DIR + 'nzb/daemon.queue/'

# Where the fully processed archives go
Hellanzb.DEST_DIR = Hellanzb.PREFIX_DIR + 'usenet/'

# The .nzb currently being downloaded is stored here
Hellanzb.CURRENT_DIR = Hellanzb.PREFIX_DIR + 'nzb/daemon.current/'

# The archive currently being downloaded is stored here
Hellanzb.WORKING_DIR = Hellanzb.PREFIX_DIR + 'nzb/daemon.working/'

# Archives interrupted in the middle of downloading are stored here temporarily
Hellanzb.POSTPONED_DIR = Hellanzb.PREFIX_DIR + 'nzb/daemon.postponed/'

# Archives currently being processed. May contains archive directories, or
# symbolic links to archive directories
Hellanzb.PROCESSING_DIR = Hellanzb.PREFIX_DIR + 'nzb/daemon.processing/'

# Temp storage
Hellanzb.TEMP_DIR = Hellanzb.PREFIX_DIR + 'nzb/daemon.temp/'

Cette configuration n’est pas complète (je trouve inutile de recopier l’intégralité du fichier d’exemple) mais donne les bases. Lisez bien le fichier donné en exemple car il propose des options très intéressantes !

Notre configuration fonctionne, lançons Hellaznb :

$ hellanzb.py
hellanzb v0.13 (config = /home/tym/.config/hellanzb.conf) (gn) 4 connections
hellanzb - Now monitoring queue... 

Si vous avez bien lu vous avez remarqué que Hellanzb attends des fichiers dans un file (il peut donc tourner en arrière plan tout seul comme un grand !). Il vous suffit donc d’ajouter un fichier .nzb dans le dossier daemon.queue :

cp Desktop/ubuntu\ 9.04.nzb NG/nzb/daemon.queue

Et le téléchargement démarre quelques secondes plus tard :

Now monitoring queue... Found new nzb: ubuntu 9.04 Parsing: ubuntu 9.04.nzb...
Parsed: 3 files (1911 posts), 723.4MB Queued: 723.4MB [1]
ubuntu-9.04-desktop-i386.iso - 2% @ 1020.0KB/s [2]
ubuntu-9.04-desktop-i386.iso [3] ubuntu-9.04-desktop-i386.iso [4]
ubuntu-9.04-desktop-i386.iso [Total] 1020.0KB/s, 704 MB queued, ETA: 00:11:46

Simple, rapide et efficace ;-)

Comments