Audacious X-Chat Plugin

Publicado por Iuri Suzano 16/07/2009

[ Hits: 6.250 ]

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

Eterm sem bordas

Listar arquivos

Índice (Logaritmo Discreto) em Perl

Hebraic Style

MyBF - Interpretador de BrainFuck


  

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