Pages : 1
#1 Le 01/07/2006, à 14:42
- kezar
[X-Chat] Script Play pour Listen
Je reposte ici histoire de pas polluer le post Listen (topic à déplacer dans dev peut-être).
J'ai fait un script pour X-Chat qui permet d'afficher la chanson en cours de lecture dans Listen.
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
# Enregistrement du script dans X-Chat
IRC::register('Listen Currently Playing','0.1','','');
IRC::add_command_handler('PLAY','play');
# Aide affichée au chargement
IRC::print("[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante.");
sub play {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2=~ s/<i>//;
$curr1b=~ s/<\/b>//;
$curr1b=~ s/\n//;
$curr2=~ s/\n//;
$curr1b=~ s/\&\;/\&/;
$curr2=~ s/<\/i>//;
# Affichage
IRC::command ("/me écoute $curr2 - $curr1b ($curr3)");
# Fermeture du fichier
close(CURR);
return 1;
}
A mettre dans un fichier texte et à charger dans X-Chat (placer directement le fichier dans ~/.xchat2 pour un chargement automatique au démarrage).
Vu que j'ai jamais fait de perl de ma vie j'aimerais des commentaires (améliorations etc). Merci
En espérant que ça soit utile à quelqu'un...
Hors ligne
#2 Le 02/07/2006, à 15:56
- kezar
Re : [X-Chat] Script Play pour Listen
Une petite up, mise à jour (encore en test mais ça semble bien fonctionner) pour gérer les podcasts correctement.
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
# Enregistrement du script dans X-Chat
IRC::register('Listen Currently Playing','0.2','','');
IRC::add_command_handler('PLAY','play');
# Aide affichée au chargement
IRC::print("[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante.");
sub play {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
IRC::command ("/me écoute $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\&\;/\&/;
$curr1 =~ s/\n//;
# Affichage
IRC::command ("/me écoute $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
Comments please
Note : N'oubliez pas l'extension .pl à la fin du nom du fichier sans cela X-chat n'en voudra pas.
Note2 : Ne semple PAS fonctionner avec X-chat-gnome ! Nécessite X-chat.
[edit] Résolution d'un problème de retour chariot.
[edit 2] Résolution des "&" dans les titres d'album et d'artistes qui n'étaient pas traduits (oubli, mea culpa)
Dernière modification par kezar (Le 03/07/2006, à 19:54)
Hors ligne
#3 Le 03/07/2006, à 09:27
- Ago
Re : [X-Chat] Script Play pour Listen
C'est sympa, dommage que je n'utilise pas xchat
Tu penses qu'on pourrait l'adapter pour Gajim?
Blog libre <= pour bien se lancer sous Ubuntu Linux !
Linux =/= Windows Souvenez-vous en!
Hors ligne
#4 Le 03/07/2006, à 11:26
- kezar
Re : [X-Chat] Script Play pour Listen
Je n'utilise pas Gajim ^^ mais du moment qu'il est possible de faire des scripts qui écrivent dans la fenêtre de discussion (et qu'il est possible de les appeler par un alias, comme /play ici) oui c'est tout à fait faisable.
Hors ligne
#5 Le 03/07/2006, à 14:29
- Ago
Re : [X-Chat] Script Play pour Listen
okay, je verrai peut-être ça plus tard, quand je serai plus en stage :x
Blog libre <= pour bien se lancer sous Ubuntu Linux !
Linux =/= Windows Souvenez-vous en!
Hors ligne
#6 Le 03/07/2006, à 19:55
- kezar
Re : [X-Chat] Script Play pour Listen
Je vais essayer de me renseigner de mon côté si j'ai un peu de temps pour voir ce que je peux faire (mais déjà là je sais pas comment j'ai écrit ça première fois que je touche à du perl).
En attendant j'ai fait une tite adaptation pour irssi.
Voila donc ce que ça donne :
Version X-chat (pas X-chat-gnome), playscript_xchat.pl --- l'extension est obligatoire --- à placer dans ~/.xchat pour charger automatiquement au démarrage
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
# Enregistrement du script dans X-Chat
IRC::register('Listen Currently Playing','0.2','','');
IRC::add_command_handler('PLAY','play');
# Aide affichée au chargement
IRC::print("[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante.");
sub play {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
IRC::command ("/me écoute $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\n//;
$curr1 =~ s/\&\;/\&/;
# Affichage
IRC::command ("/me écoute $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
Version irssi, playscript_irssi.pl --- à placer dans ~/.irssi/scripts/autorun pour charger automatiquement au démarrage
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
use Irssi;
# Aide affichée au chargement
Irssi::print("[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante.");
sub play {
my ($data, $server, $channel) = @_;
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
$channel->command ("ME écoute $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\n//;
$curr1 =~ s/\&\;/\&/;
# Affichage
$channel->command ("ME écoute $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
# Enregistrement du script dans irssi
Irssi::command_bind('play','play');
En request il y a une adaptation pour gajim et une pour gaim. Si quelqu'un a le courage de jeter un coup d'oeil pour gajim, de mon côté je regarde gaim (ce que j'ai d'installé d'abord )
Dernière modification par kezar (Le 03/07/2006, à 22:20)
Hors ligne
#7 Le 03/07/2006, à 22:54
- kezar
Re : [X-Chat] Script Play pour Listen
Un pour GAIM. Il ne fonctionne pas apparemment (enfin il n'a pas voulu me le charger, j'ai pas cherché très loin non plus mais j'ai la dernière version qui ne semble pas fonctionner de la même façon que les précédentes), si quelqu'un pouvait corriger les erreurs et faire deux trois tests ça pourrait être pas mal. Je n'ai pas trouvé comment ajouter une action par contre, là c'est sensé passer par le menu actions.
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
use Gaim;
%PLUGIN_INFO = (
perl_api_version => 2,
name => "Listen Currently Playing",
version => "0.2",
summary => "",
description => "Affiche la lecture en cours dans Listen.",
author => "",
url => "",
plugin_action_sub => "plugin_actions_cb",
load => "plugin_load",
unload => "plugin_unload"
);
sub plugin_actions_cb {
my @actions = ("Lecture en cours dans Listen");
}
%plugin_actions = (
"Action 1" => \&play);
sub plugin_init {
return %PLUGIN_INFO;
}
sub plugin_load {
my $plugin = shift;
# Aide affichée au chargement
Gaim::debug_info("plugin_load()", "[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante.");
}
sub play {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
$im = $conv1->get_im_data();
$im->send("/me écoute $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\n//;
$curr1 =~ s/\&\;/\&/;
# Affichage
$im = $conv1->get_im_data();
$im->send("/me écoute $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
sub plugin_unload {
my $plugin = shift;
Gaim::debug_info("plugin_unload()", "[play] play pour Listen déchargé.");
}
Hors ligne
#8 Le 19/07/2006, à 09:55
- hells_dark
Re : [X-Chat] Script Play pour Listen
Tiens, je me permet de remonter ce sujet puisque cette dernière tentative de script m'interresse pas mal?
Quelqu'un pour aider ?
Sinon, je veux bien tester.
PS : ça serait bien si par la suite, yaurait un moyen de mettre la chanson écoutée dans le pseudo.
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#9 Le 23/07/2006, à 15:46
- kezar
Re : [X-Chat] Script Play pour Listen
J'ai fait une petite modification (très sale, je l'avoue, faudra que je nettoie un peu) pour envoyer le message sur tous les chans ouverts. (version x-chat uniquement, mais bon pour adapter c'est pas compliqué, reste toujours gaim et gajim )
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
# Enregistrement du script dans X-Chat
IRC::register('Listen Currently Playing','0.2','','');
IRC::add_command_handler('PLAY','play');
IRC::add_command_handler('APLAY','aplay');
# Aide affichée au chargement
IRC::print("[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante, /aplay pour l'afficher dans toutes les discussions.");
sub aplay {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
IRC::command ("/ame écoute $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\n//;
$curr1 =~ s/\&\;/\&/;
# Affichage
IRC::command ("/ame écoute $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
sub play {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! Impossible d'ouvrir le fichier .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
IRC::command ("/me écoute $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\n//;
$curr1 =~ s/\&\;/\&/;
# Affichage
IRC::command ("/me écoute $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
J'ai également repéré un bug dans l'affichage du nom de piste lorsqu'il contient un "-" (tout ce qui est situé après n'est pas pris), qu'il faudra que je corrige.
Dernière modification par kezar (Le 23/07/2006, à 15:47)
Hors ligne
#10 Le 09/08/2006, à 10:47
- Dolf Andringa
Re : [X-Chat] Script Play pour Listen
I've translated the IRC messages into english. Just for non french speaking people (fortunately I speak enough french to be able to understand this
Thanks for the script. It works nicely.
#!/usr/bin/perl
# Le fichier .current-song dans le HOME de l'utilisateur contient le nom de
# la chanson actuellement jouée dans Listen
$path="$ENV{HOME}/.current-song";
# Enregistrement du script dans X-Chat
IRC::register('Listen Currently Playing','0.2','','');
IRC::add_command_handler('PLAY','play');
# Aide affichée au chargement
IRC::print("[play] play for Listen music player. Type /play to announce the name of the current playing song in the current channel.");
sub play {
# Ouverture du fichier
open(CURR,$path) || warn("\002\038!!! I can't open the file .current-song !!!\n");
# Lecture du fichier
$curr1=<CURR>;
$curr2=<CURR>;
$curr3=<CURR>;
if ($curr1 =~ /-/)
{
# Suppression du numéro de piste (facultatif)
($curr1, $curr1b) = split(/\s-\s/, $curr1);
# Suppression des balises HTML et remplacement du & par &
$curr2 =~ s/<i>//;
$curr1b =~ s/<\/b>//;
$curr1b =~ s/\n//;
$curr2 =~ s/\n//;
$curr1b =~ s/\&\;/\&/;
$curr2 =~ s/\&\;/\&/;
$curr3 =~ s/\&\;/\&/;
$curr2 =~ s/<\/i>//;
# Affichage
IRC::command ("/me enjoys $curr2 - $curr1b ($curr3)");
}
else
{
# Suppression des balises HTML
$curr1 =~ s/<b>//;
$curr1 =~ s/<\/b>//;
$curr1 =~ s/\&\;/\&/;
$curr1 =~ s/\n//;
# Affichage
IRC::command ("/me enjoys $curr1");
}
# Fermeture du fichier
close(CURR);
return 1;
}
#11 Le 24/09/2006, à 14:45
- topgun
Re : [X-Chat] Script Play pour Listen
hello tout le monde
Kezar j'ai un souci d'affichage avec le titre peut-être n'est-il pas compatible avec listen 0.5 bêta car il m'affiche une chanson différente que celle que j'écoute
Hors ligne
#12 Le 25/09/2006, à 18:07
- kezar
Re : [X-Chat] Script Play pour Listen
En effet le script utilise le fichier .current-song qui est créé et mis à jour par listen dans le home de l'utilisateur. Or apparemment la 0.5 fonctionne différemment. Je vais essayer de me renseigner pour voir si la fonction existe toujours (normalement il ne devrait pas y avoir de problème, elle n'est peut-être tout simplement pas encore implantée).
Hors ligne
#13 Le 09/03/2007, à 22:11
- Karpatt
Re : [X-Chat] Script Play pour Listen
Up ! Quelqu'un a trouvé pour faire fonctionner le script sur Listen 0.5 ??
Hors ligne
#14 Le 09/03/2007, à 22:24
- Compte supprimé
Re : [X-Chat] Script Play pour Listen
et pour rhythmbox?
#15 Le 10/03/2007, à 00:54
- kezar
Re : [X-Chat] Script Play pour Listen
http://www.uphaar.org/gnulinux/cool_scripts.php à tester
Hors ligne
#16 Le 20/03/2007, à 22:39
- Karpatt
Re : [X-Chat] Script Play pour Listen
UP ! Pour un script pour Listen 0.5... a tout les programateurs en herbes... un script existe pour amsn (plugin music).. donc je pense que cela soit possible... si besoin je copie le script pour amsn sur le forum !
Merci
Hors ligne
#17 Le 22/04/2007, à 21:28
- Karpatt
Re : [X-Chat] Script Play pour Listen
un UP !
rappelle... modifier le script pour afficher la chanson joué avec Listen dans X-Chat...
Il existe un plugin aMSN de Listen.... voila ce que jai trouvé dans un fichier nommé infolisten :
#Thanks to Dennis "dweazle" Krul for the bash-magic
#Modified a little for listen patux@patux.net
LISTEN=`ps aux | grep python | grep listen | grep -v grep | grep -v info`
if [ -n "$LISTEN" ]
then
listen -c
else
echo 0
fi
exit 0
Donc qqch de tres différent du patch de X-chat.... mais si qqun comprend qqch et arrive a modifié le patch pour X-chat ca serait vraiment cool !!
Merci
Hors ligne
#18 Le 23/04/2007, à 19:02
- Karpatt
Re : [X-Chat] Script Play pour Listen
Up !
Hors ligne
#19 Le 24/04/2007, à 22:08
- kezar
Re : [X-Chat] Script Play pour Listen
Je ne sais pas si le script fonctionne toujours avec la 0.5, mais si il suffit de faire un listen -c bah ça sera pas bien dur à adapter (amarok est quand même plus simple avec dcop )
Hors ligne
#20 Le 25/04/2007, à 11:50
- Karpatt
Re : [X-Chat] Script Play pour Listen
ben.. si t'arrives a modifier le script... je t'en serai énternellement reconnaissant !!
Hors ligne
#21 Le 26/04/2007, à 23:34
- kezar
Re : [X-Chat] Script Play pour Listen
Bon allez vite fait sans remise en forme de la sortie
#!/usr/bin/perl
# Enregistrement du script dans X-Chat
IRC::register('Listen Currently Playing','0.2','','');
IRC::add_command_handler('PLAY','play');
IRC::add_command_handler('APLAY','aplay');
# Aide affichée au chargement
IRC::print("[play] play pour Listen chargé. Tapez /play pour afficher le nom de la chanson en cours de lecture dans la discussion courante, /aplay pour l'afficher dans toutes les discussions.");
sub aplay {
$chanson=`listen -c`;
chop($chanson);
if($chanson ne "Aucune chanson en cours")
{
IRC::command ("/ame écoute $chanson");
}
else
{
IRC::print("[play] $chanson");
}
return 1;
}
sub play {
$chanson=`listen -c`;
chop($chanson);
if($chanson ne "Aucune chanson en cours")
{
IRC::command ("/me écoute $chanson");
}
else
{
IRC::print("[play] $chanson");
}
return 1;
}
Faudra ptet que je me mette au perl un jour.
Dernière modification par kezar (Le 26/04/2007, à 23:34)
Hors ligne
#22 Le 27/04/2007, à 17:05
- Karpatt
Re : [X-Chat] Script Play pour Listen
merci... ca fonctionne au poil... :D:D:D:D:D
Hors ligne
Pages : 1