Sonata : Recherche sur Wikipédia en français

Utilisant depuis peu Sonata ( qui pour rappel est une interface graphique à MPD ), j’ai eu une désagréable surprise. Rien de bien grave mais la fonction de recherche d’informations sur les artistes pointe automatiquement vers le site anglophone de Wikipédia. Vous avez sûrement compris : Une recherche sur http://fr.wikipedia.org/ est bien plus adéquate !

Ayant un peu de temps à perdre, je me suis mis en tête de résoudre ce petit désagrément. Cette article n’a rien d’exceptionnel, il indique juste pas à pas la démarche effectuée par mes soins… Rien de bien difficile à vrai dire, mais cela prouve que les systèmes GNU/Linux possèdent bien des avantages :) .

How to :

Premièrement, il faut rechercher la location des fichiers concernant Sonata :

$ locate sonata
/home/gnu/.config/sonata
/home/gnu/.config/sonata/art_cache
/home/gnu/.config/sonata/sonatarc
/usr/bin/sonata
/usr/lib/python2.6/site-packages/sonata
/usr/lib/python2.6/site-packages/sonata/__init__.py
/usr/lib/python2.6/site-packages/sonata/__init__.pyc
/usr/lib/python2.6/site-packages/sonata/about.py
...

À priori, une recherche du terme « wikipédia » dans le répertoire /usr/lib/python2.6/site-packages/sonata doit suffire…

$ grep -r "wikipedia" /usr/lib/python2.6/site-packages/sonata
/usr/lib/python2.6/site-packages/sonata/main.py:            browser_not_loaded = not misc.browser_load("http://www.fr.wikipedia.org/wiki/Special:Search/" + urllib.quote(mpdh.get(self.songinfo, 'artist')), self.config.url_browser, self.window)
/usr/lib/python2.6/site-packages/sonata/main.py:            browser_not_loaded = not misc.browser_load("http://www.fr.wikipedia.org/wiki/Special:Search/" + urllib.quote(mpdh.get(self.songinfo, 'album')), self.config.url_browser, self.window)
...

Bingo ! Le terme « wikipedia » est bien présent dans le fichier main.py, il ne reste plus qu’à le modifier :

# nano /usr/lib/python2.6/site-packages/sonata/main.py
def on_link_click(self, type):
browser_not_loaded = False
if type == 'artist':
browser_not_loaded = not misc.browser_load("http://www.fr.wikipedia.org/wiki/Special:Search/" + urllib.quote(mpdh.get(self.songinfo, 'artist')), self.config.url_browser, self.window)
elif type == 'album':
browser_not_loaded = not misc.browser_load("http://www.fr.wikipedia.org/wiki/Special:Search/" + urllib.quote(mpdh.get(self.songinfo, 'album')), self.config.url_browser, self.window)

Astuce : Pour effectuer une recherche avec nano appuyez sur les touches Ctrl + H

Sauvegarde du fichier et un petit test : Ça fonctionne :) .

Pour finir, voici la version utilisée de Sonata sur mon Archlinux :

$ yaourt -Si sonata
Dépôt                 : extra
Nom                   : sonata
Version               : 1.6.2.1-1
URL                   : http://sonata.berlios.de/
Licences              : GPL3
Groupes               : --
Fournit               : --
Dépend de             : pygtk  python-mpd
Dépendances opt.      : gnome-python-extras: Enhanced system tray support
                        tagpy: Metadata editing support
                        zsi: Lyrics fetching support
                        dbus-python: Various extra functionality (e.g.
                        multimedia keys support)
Est en conflit avec   : --
Remplace              : --
A télécharger         : 503,11 K
Taille (installé)     : 1976,00 K
Paqueteur             : Andrea Scarpino
Architecture          : i686
Compilé le            : dim. 04 oct. 2009 15:24:15 CEST
somme MD5             : 3540c1c796a3457028fbe672c2e9f623
Description           : Elegant GTK+ music client for MPD

Liens :

Vus : 614
Publié par Weedfast : 184