Nowplaying für Twitter und MPD

Perl  (07.04.2010 23:06) Ein Perl Script das den aktuellen Song der via MPD gespielt wird, bei Twitter postet.
Wie man an den beiden "use"-Zeilen sieht werden dabei Module von CPAN benötigt.

Quellcode (ausblenden | aufklappen)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl
 
use Net::Twitter;
use Audio::MPD;
 
my $nt = Net::Twitter->new(
   traits   => [qw/API::REST/],
   username => "username",
   password => "twitterpasswort"
);
 
my $mpd = Audio::MPD->new;
my $song = $mpd->current;
 
if(!($song->artist eq "") and !($song->title eq "")) {
   my $result = $nt->update($song->artist.' - '.$song->title.' #nowplaying');
 
   if ( my $err = $@ ) {
      die $@ unless blessed $err && $err->isa('Net::Twitter::Error');
 
      warn "HTTP Response Code: ", $err->code, "\n",
           "HTTP Message......: ", $err->message, "\n",
           "Twitter error.....: ", $err->error, "\n";
   } else {
 
      eval {
         my $statuses = $nt->home_timeline({ count => 5 });
         for my $status ( @$statuses ) {
            print "$status->{created_at} <$status->{user}{screen_name}> $status->{text}\n";
         }
      };
 
      if ( my $err = $@ ) {
         die $@ unless blessed $err && $err->isa('Net::Twitter::Error');
 
         warn "HTTP Response Code: ", $err->code, "\n",
              "HTTP Message......: ", $err->message, "\n",
              "Twitter error.....: ", $err->error, "\n";
      }
 
   }
 
} else {
   warn "Kein Titel oder Artist vorhanden!";
}