#!/usr/bin/env perl

use WWW::Mechanize;
use DBI;

$v = '0.1';

my $mech = WWW::Mechanize->new('agent'=>'Gnomoradio page fetcher '.$v);
my $db = DBI->connect('dbi:Pg:dbname=gnomoradio');

my $r = $db->prepare("select url, owner from pages where last_scan='-infinity'");
$r->execute();

while (my @row = $r->fetchrow_array()) {
    my $owner = $row[1];
    my $url = $row[0];

    $mech->get($url);
    if ($mech->success()) {
	my @links = $mech->links();

	foreach $l (@links) {
	    my $link = $l->url_abs();
	    if ($link =~ /\.(mp3|ogg)$/i) {
		print $link, "\n";
		$db->prepare("insert into available (url, use, owner) values ('" . addslashes($link) . "', 1, $owner);")->execute();
		}
	}

	if ($#links != 0) {
	    # success
	    $db->prepare("update pages set last_scan=current_timestamp where url='" . addslashes($url) . "'")->execute();
	} else {
	    # no songs linked
	}
    } else {
	# url failed
    }
}

$db->disconnect();

sub addslashes($) {
    my($s)=@_;
    $s =~ s/'/''/g;
    return $s;
}
