Audacious X-Chat Plugin
Publicado por Iuri Suzano 16/07/2009
[ Hits: 6.512 ]
Plugin para o x-chat que anuncia/controla as músicas que você ouve no audacious... nada de tãão especial, mas agrada a alguns.
#!/usr/bin/perl -w
#
# Audacious X-Chat Plugin 0.1
# Copyright (C) 2009 - m4ntUs <iuri@m4ntus.com>
#
# Baseado no Audacious XChat Announcer 0.1 por Milad Rastian,
# que por sua vez foi baseado no Rhythmbox XChat Announcer por Tim Denholm
#
# Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob
# os termos da Licença Pública Geral GNU, conforme publicada pela Free Software
# Foundation; tanto a versão 2 da Licença como (a seu critério) qualquer versão
# mais atual.
#
# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
# GARANTIA; incluindo as garantias implícitas de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
# obter mais detalhes.
use POSIX qw(strftime);
$axp_nome = "Audacious X-Chat Plugin";
$axp_versao = "0.1";
IRC::register($axp_nome,$axp_versao,"");
IRC::print("Carregado, {FONTE}02".$axp_nome."{FONTE}02 {FONTE}02v".$axp_versao."{FONTE}02 com sucesso!");
IRC::print("Use: {FONTE}02/axp_ajuda{FONTE}02 para listar os comandos existentes.");
# Define os atalhos para os comandos do plugin
my @apx_atalhos = (
"axp_anuncia",
"axp_termina",
"axp_equa_on",
"axp_equa_off",
"axp_equa_info",
"axp_limpa",
"axp_aud_sobre",
"axp_toca",
"axp_pausa",
"axp_tocapausa",
"axp_pula",
"axp_volta",
"axp_ajuda"
);
# Registrando os atalhos
foreach (@apx_atalhos) {
IRC::add_command_handler("$_","$_");
}
sub axp_anuncia {
# Verifica pelo nome se este processo está rodando
# Caso verdadeiro, continua...
if (`ps -C audacious` =~ /audacious/) {
# Pega informações da música em andamento
$axp_mus_atual = `audtool --current-song`;
# Anuncio da música que será enviado, mude caso queira
IRC::command("/me is listening to: ".$axp_mus_atual);
} else {
# Caso não esteja rodando, retorna mensagem
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_termina {
if (`ps -C audacious` =~ /audacious/) {
# Fecha o Audacious
eval `audtool --shutdown`;
IRC::command("/echo O Audacious foi finalizado.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_equa_on {
if (`ps -C audacious` =~ /audacious/) {
# Ativa o equalizador
eval `audtool --equalizer-activate on`;
IRC::command("/echo O Equalizador foi ativado.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_equa_off {
if (`ps -C audacious` =~ /audacious/) {
# Ativa o equalizador
eval `audtool --equalizer-activate off`;
IRC::command("/echo O Equalizador foi desativado.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_equa_info {
if (`ps -C audacious` =~ /audacious/) {
$axp_equa_infu = `audtool --equalizer-get`;
# Retorna as informações do equalizador
IRC::command("/echo ".$axp_equa_infu);
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_limpa {
if (`ps -C audacious` =~ /audacious/) {
# Limpa a playlist
eval `audtool --playlist-clear`;
IRC::command("/echo Sua playlist foi zerada.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_aud_sobre {
if (`ps -C audacious` =~ /audacious/) {
# Mostra janela sobre do Audacious
eval `audtool --about-show`;
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_toca {
if (`ps -C audacious` =~ /audacious/) {
# Inicia playback
eval `audtool --playback-play`;
IRC::command("/echo Playback iniciado.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_pausa {
if (`ps -C audacious` =~ /audacious/) {
# Pausa playback
eval `audtool --playback-pause`;
IRC::command("/echo Playback pausado.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_tocapausa {
if (`ps -C audacious` =~ /audacious/) {
# Pausa/toca playback
eval `audtool --playback-playpause`;
IRC::command("/echo Playback tocando/pausado.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_pula {
if (`ps -C audacious` =~ /audacious/) {
# Avança uma música
eval `audtool --playlist-advance`;
IRC::command("/echo Música avançada.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_volta {
if (`ps -C audacious` =~ /audacious/) {
# Volta uma música
eval `audtool --playlist-reverse`;
IRC::command("/echo Música alterada para a anterior.");
} else {
IRC::command("/echo O Audacious não se encontra aberto.");
}
return 1;
}
sub axp_ajuda {
# Lista os comandos disponíveis e sua respectivas funções
IRC::print("{FONTE}02{FONTE}37".$axp_nome." Ajuda:{FONTE}37{FONTE}02");
IRC::print(" {FONTE}02Sobre:{FONTE}02");
IRC::print(" * Autor: m4ntUs <iuri\@m4ntus.com>");
IRC::print(" * URL: http://m4ntus.com/");
IRC::print(" {FONTE}02Comandos:{FONTE}02");
IRC::print(" * /axp_anuncia - Anuncia música atual para um canal.");
IRC::print(" * /axp_toca - Inicia playback.");
IRC::print(" * /axp_pausa - Pausa playback.");
IRC::print(" * /axp_tocapausa - Toca/pausa playback.");
IRC::print(" * /axp_pula - Avança uma música.");
IRC::print(" * /axp_volta - Volta uma música.");
IRC::print(" * /axp_equa_on - Ativa o equalizador.");
IRC::print(" * /axp_equa_off - Desativa o equalizador.");
IRC::print(" * /axp_equa_info - Retorna informações do equalizador.");
IRC::print(" * /axp_limpa - Limpa a playlist.");
IRC::print(" * /axp_aud_sobre - Janela de informações do Audacious.");
IRC::print(" * /axp_termina - Finaliza o Audacious.");
IRC::print(" * /axp_ajuda - Advinha! :)");
return 1;
}
Calculadora com Perl com menos de 10 linhas de código
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)









