package Music::KNRadio::NowPlaying;
use strict;
use warnings;
use open qw(:utf8 :std);

BEGIN {
  use Exporter;
  use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
  @ISA = qw(Exporter);

  $VERSION = '0.012';
  @EXPORT_OK = qw(knnp);
}



use LWP::Simple;

my $url = 'http://www.knradio.se/latlist/exfile.php';

sub knnp {
  my @content = split(/\n/, get($url));
  my %now_playing = (
    artist => 'undef',
    title  => 'undef',
    state  => 'undef',
  );

  for my $line(reverse(@content)) {
    if($line =~ m/Spelas just nu:(.+)/) {
      unless($1) {
        $now_playing{state} = 'paused';
        last;
      }
      ($now_playing{artist}, $now_playing{title}) = $1 =~ m/(.+) - (.+)/;

      last unless defined $now_playing{artist};
      $now_playing{artist} =~ s/[^[:ascii:]]//g;
      $now_playing{title}  =~ s/[^[:ascii:]]//g;
      $now_playing{title}  =~ s/\r//g;

      $now_playing{state} = 'playing';
      last;
    }
    else {
      $now_playing{state} = 'paused';
    }
  }
  return \%now_playing;
}



1;

__END__

=pod

=head1 NAME

Music::KNRadio::NowPlaying - Now playing metadata for Karlstad Rock 92.2

=head1 SYNOPSIS

    use Music::KNRadio::NowPlaying qw(knnp);

    my $info = knnp();

    printf "artist: %s | title: %s\n", $info->{artist}, $info->{title};


=head1 DESCRIPTION

Music::KNRadio::NowPlaying provides a method for looking up now-playing
metadata for the swedish radiostation 'Karlstad Rock 92.2', also known
as 'knradio'.

=head1 EXPORTS

None by default.

=head1 FUNCTIONS

=head2 knnp()

=over 4

=item    Arguments: $none

=item Return value: \%info

=back

example return data structure:

    $info->{artist} => 'Laleh'
    $info->{title}  => 'Der Yek Gooshe'
    $info->{state}  => 'playing'

=head1 Scripts

An example script is provided in the bin/ directory as knnp.

=head1 REPORTING BUGS

Report bugs and/or feature requests on rt.cpan.org, the repository issue tracker
or directly to L<m@japh.se>

=head1 AUTHOR

  Magnus Woldrich
  CPAN ID: WOLDRICH
  m@japh.se
  http://japh.se
  http://github.com/trapd00r

=head1 CONTRIBUTORS

None required yet.

=head1 COPYRIGHT

Copyright 2019- B<THIS MODULE>s L</AUTHOR> and L</CONTRIBUTORS> as listed above.

=head1 LICENSE

This library is free software; you may redistribute it and/or modify it under
the same terms as Perl itself.

=head1 SEE ALSO

L<~/|http://japh.se>

=cut