60 lines
1.6 KiB
Org Mode
Executable File
60 lines
1.6 KiB
Org Mode
Executable File
#!/usr/bin/perl
|
|
use LWP::Simple;
|
|
|
|
my $script_name = "kodinp";
|
|
my $author = "multiple";
|
|
my $version = "0.1";
|
|
my $license = "Public domain";
|
|
my $description = "Get current song from kodi";
|
|
|
|
|
|
weechat::register($script_name, $author, $version, $license, $description, "", "");
|
|
weechat::hook_command("kodi", "Get current song from kodi", "", "", "", "kodi", "");
|
|
|
|
# Config
|
|
my $ip = "192.168.1.130";
|
|
my $port = "8080";
|
|
|
|
# Declare vars
|
|
my $artist;
|
|
my $title;
|
|
my $album;
|
|
my $np;
|
|
|
|
# Get NP data method
|
|
sub kodi {
|
|
# Get now playing from xbmc
|
|
my $content = get("http://$ip:$port/jsonrpc?request={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Player.GetItem%22,%20%22params%22:%20{%20%22properties%22:%20[%22artist%22,%20%22title%22,%20%22album%22],%20%22playerid%22:%200%20},%22id%22:%20%22AudioGetItem%22}");
|
|
die "get failed" if (!defined $content);
|
|
|
|
# Get now playing
|
|
if($content =~ m/"artist":\[(.*?)\]/i) {
|
|
$artist = $1;
|
|
$artist =~ s/"//g;
|
|
}
|
|
if($content =~ m/"title":"(.*?)"/i) {
|
|
$title = $1;
|
|
}
|
|
if($content =~ m/"album":"(.*?)"/i) {
|
|
$album = $1;
|
|
}
|
|
|
|
# Set NP var
|
|
if (!defined $artist){
|
|
$np = $title;
|
|
} else {
|
|
$np = $artist . " - " . $title . " (" . $album . ")";
|
|
}
|
|
|
|
# Unset vars
|
|
undef $title;
|
|
undef $artist;
|
|
undef $album;
|
|
|
|
# Output to active window in weechat
|
|
if (defined $np){
|
|
weechat::command("", "/me np: $np");
|
|
}
|
|
return 1;
|
|
}
|