Audacious X-Chat Plugin

Publicado por Iuri Suzano 16/07/2009

[ Hits: 6.266 ]

Download axp.pl




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.

  



Esconder código-fonte

#!/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;
}

Scripts recomendados

Login AUDIT

Viva o Linux for Torsmo

Screenshot

MyBF - Interpretador de BrainFuck

Calculadora com Perl com menos de 10 linhas de código


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts