December 11, 2011, 18:07:09 Last Edit: December 11, 2011, 18:09:10 by noyt
Bonjour,

Nous sommes 2 à nous partager le même ordinateur. Après avoir tenté puis renoncé à l'utilisation de deux sessions différentes (trop de temps à passer d'une session à l'autre, problèmes de droits sur des fichiers entre les deux sessions,...), nous avons constaté que l'un des trucs qui nous gênait le plus, c'est la difficulté de passer d'un compte last.fm / libre.fm via le plugin last.fm (audioscrobbler).

Avant, j'utilisais Rhythmbox et comme ce dernier utilise Gconf (Dconf depuis Gnome 3) pour gérer sa configuration, j'avais créé un petit script dans ce goût là pour passer d'un compte à l'autre :
gconftool-2 --type=string --set /apps/rhythmbox/audioscrobbler/username user1
gconftool-2 --type=string --set /apps/rhythmbox/audioscrobbler/password pass1

En un clic (sur un de mes 2 fichiers : user1 & user2), je passais d'un compte à l'autre sans devoir changer de session ou redémarrer de programme. Et au passage, j'aimerais également scrobbler sur mon compte libre.fm en même temps que sur last.fm.

Serait-il possible de faire la même chose sous gmusicbrowser que je découvre mais apprécie beaucoup ?

Merci.

ben
GNU/Linux ubuntu 11.10 64b Unity2D

Pour changer les options du plugins, il y a plusieurs solutions, aucune aussi facile qu'avec rhythmbox malheureusement. Le principal problème qu'il n'y a pas une solutions qui marchera que gmb tourne ou non, à moins de faire un script qui combine 2 solutions évidement.
- si gmb ne tourne pas : le plus simple est de remplacer l'option dans le fichier gmbrc :

perl -wnpi -e 'if (m/PLUGIN_AUDIOSCROBBLER_USER:/) {$_="PLUGIN_AUDIOSCROBBLER_USER: user\n"} elsif (m/PLUGIN_AUDIOSCROBBLER_PASS:/) {$_="PLUGIN_AUDIOSCROBBLER_PASS: pass\n"} ' ~/.config/gmusicbrowser/gmbrc


- si gmb "tourne" (Y a pas un autre mot pour ça ? à part "en cours d'exécution", c'est vrai que "tourne" est pas si différent de "running")
Il faut exécuter ces 3 instructions :
$::Options{PLUGIN_AUDIOSCROBBLER_USER}="user";
$::Options{PLUGIN_AUDIOSCROBBLER_PASS}="pass";
GMB::Plugin::AUDIOSCROBBLER::userpass_changed();

ça peut être fait avec :
echo 'RunPerlCode($::Options{PLUGIN_AUDIOSCROBBLER_USER}="user"; $::Options{PLUGIN_AUDIOSCROBBLER_PASS}="pass"; GMB::Plugin::AUDIOSCROBBLER::userpass_changed();)' > ~/.config/gmusicbrowser/gmusicbrowser.fifo
(ou en passant par DBus)

ça peut aussi être fait avec un bouton dans layout, par exemple :
Button0(text=exemple, activate=RunPerlCode($::Options{PLUGIN_AUDIOSCROBBLER_USER}="user"; $::Options{PLUGIN_AUDIOSCROBBLER_PASS}="pass"; GMB::Plugin::AUDIOSCROBBLER::userpass_changed();))
(on peut mettre une icône avec l'option stock=)
ça serait encore mieux de faire 1 ou 2 toggle bouton qui bascule entre les 2, mais ça demande quelques lignes de code ailleurs que dans le layout

QuoteEt au passage, j'aimerais également scrobbler sur mon compte libre.fm en même temps que sur last.fm.
Pour ça, il suffit de faire une copie du plugin, et de remplacer les 3 "AUDIOSCROBBLER" par autre chose (pas besoin d'être des majuscules), ainsi que le "audioscrobbler.queue" (nom du fichier pour sauvegarder les scrobbles non envoyés) tout ça est au début du plugin.
Il faut bien sûr remplacer tout les  "AUDIOSCROBBLER" dans les instructions ci-dessus et exécuter les instructions pour chaque plugins.

D'ailleurs ça peut aussi être une solution pour les 2 comptes, faire des plugins différents pour chaque compte, dans ce cas il faut utiliser les instructions :
::DeactivatePlugin('AUDIOSCROBBLER');
::ActivatePlugin('AUDIOSCROBBLER2');

C'est à dire : RunPerlCode(::DeactivatePlugin('AUDIOSCROBBLER'); ::ActivatePlugin('AUDIOSCROBBLER2');)

Ça a l'avantage d'utiliser des files d'attentes différentes pour soumettre les scrobbles, et donc d'éviter des mélanges s'il reste des chanson non-soumises lors du changement.

N'hésite pas à me demander plus de détails.