Audacious X-Chat Plugin
Publicado por Iuri Suzano 16/07/2009
[ Hits: 6.256 ]
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; }
Verificação se utilizador existe ou não
Testando a agilidade do sistema de arquivos
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta