All pastes #81648 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-07-07 18:44 UTC
rendered paste body
#
#   Announce.pl v 1.0
#         by pawz
#   (email: pawz@westnet.com.au)
#
#   Use or modify at will, just don't claim it as yours without making significant changes
#
#   X-Chat perl script for announcing song (and movie) titles from VLC and iTunes
#
#   NOTE: This REQUIRES that you turn on VLC's logging feature. To do this, open VLC's preferences, and under the
#         "Interface > Control Interfaces" preference page, tick the "File Logging" option. Then under the
#         "Interface > Control Interfaces > Logging" page, enter "/tmp/vlc_log.txt" as the log filename. You can choose a
#         different name or location if you wish, but if you do, change the path definition to it in the function below.
#         You may have to choose the "Add Interface > Debug Logging" menu option (under the VLC menu) if VLC hasn't already
#         turned it on via the preferences change.
#

IRC::register("Announce","1.0","","");
IRC::print("::Announce v1.0:: [Loaded]");
IRC::add_command_handler("itunes","itunes_announce");
IRC::add_command_handler("vlc","vlc_announce");
IRC::print "Commands: ";
IRC::print " /itunes : Announce your current track name on IRC. ";
IRC::print " /vlc : Announce your current song or movie name on IRC. ";

sub itunes_announce
{
        # this bit is split over multiple lines for readability
        $parta = "/applescript -o tell application \"iTunes\" to return \"np: [ \002\" ";
        $partb = "& artist of current track & \" (\" & album of current track & \") - \" & name of current track & \" \002] \"";
        $partc = $parta . $partb;
        IRC::command("$partc");
        return 1;
}

sub vlc_announce
{
        $LOGFILE = "/tmp/vlc_log.txt";

        $songsplayed = `grep "successfully opened" $LOGFILE | tail -1`;
        $songsplayed =~ /.+\`(.+)\'.+/s;
        $lastsong = $1;
        $lastsong =~ /.+\/(.+)\/(.+)\.\w/;
        $album = $1;
        $song = $2;
        IRC::command ("np: [ ($album) $song ]");
        return 1;
}