#!/usr/bin/perl -w
use strict;
use HTML::TableExtract;
use LWP::Simple;
use URI::Escape;

# pobieramy z wiersza polece nazw restauracji.
my $name = shift || die "Uycie: kcrestaurants.pl <napis>\n";

# i tworzymy adres URL do sanitarnej bazy danych.
my $url = "http://www.decadeonline.com/results.phtml?agency=skc".
          "&forceresults=1&offset=0&businessname=" . uri_escape($name) .
          "&businessstreet=&city=&zip=&soundslike=&sort=FACILITY_NAME";

# pobieramy dane dotyczce inspekcji sanitarnych.
my $data = get($url) or die $!;
die "Nie znaleziono adnych restauracji speniajcych podane warunki.\n"
    if $data =~ /no results were found/;
 
# pobieramy znalezione wyniki.
my $te = HTML::TableExtract->new(keep_html => 1, count => 1);
$te->parse($data) or die $!; # mniam, mniam, druga tabela jest wspaniaa!

# a teraz ptla po danych.
foreach my $ts ($te->table_states) {
  foreach my $row ($ts->rows) {
     next if $row->[1] =~ /Site Address/; # jeli to nagwek, pomijamy go.
     foreach ( qw/ 0 1 / ) { # usuwamy rzeczy nie na temat.
        $row->[$_] =~ s/^\s+|\s+|\s+$/ /g; # usuwamy spacje.
        $row->[$_] =~ s/\n|\f|\r/ /g; # usuwamy znaki nowego wiersza.
     } 

     # okrel nazw/adresy.
     my ($url, $name, $address, $mp_url); 
     if ($row->[0] =~ /href="(.*?)">.*?2">(.*?)<\/font>/) {
         ($url, $name) = ($1, $2); # prawie tutaj.
     } if ($row->[1] =~ /2">(.*?)<\/font>/) { $address = $1; }

     # teraz adres URL MapQuest.
     if ($address =~ /(.*), ([^,]*)/) {
         my $street = $1; my $city = $2;
         $mp_url = "http://www.mapquest.com/maps/map.adp?".
                   "country=US&address=" . uri_escape($street) .
                   "&city=" . $city . "&state=WA&zipcode=";
     }

     print "Nazwa firmy: $name\n";
     print "Adres firmy: $address\n";
     print "Wyniki ostatnich inspekcji:\n ".
           "http://www.decadeonline.com/$url\n";
     print "URL w MapQuest: $mp_url\n\n";
  }
}

