Audacious X-Chat Plugin
Publicado por Iuri Suzano 16/07/2009
[ Hits: 6.586 ]
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
Wallpapers aleatórios no Fluxbox
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Fiz uma pergunta no fórum mas não consigo localizar (14)
Quais os códigos mais dificeis que vcs sabem fazer? (3)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









