#!/usr/bin/perl -w
# googletech.cgi
# Pobieranie wynikw z Google 
# z pominiciem dziennikw sieciowych.
use strict;
use SOAP::Lite;
use XML::Simple;
use CGI qw(:standard);
use HTML::Entities (  );
use LWP::Simple qw(!head);

my $technoratikey = "tutaj Twj klucz technorati";
my $googlekey = "tutaj Twj klucz google";

# Przygotowanie zapytania na podstawie danych CGI.
my $query = param("q");

# Inicjalizacja interfejsu SOAP, szukanie Google.
my $google_wdsl = "http://api.google.com/GoogleSearch.wsdl";
my $service = SOAP::Lite->service->($google_wdsl);

# zaczynamy zwraca stron z wynikami -
# robimy to teraz, aby unikn upynicia wyznaczonego czasu
my $cgi = new CGI;

print $cgi->header(  );
print $cgi->start_html(-title=>'Wyniki Google bez blogw');
print $cgi->h1('Wyniki bez blogw dla zapytania '. "$query");
print $cgi->start_ul(  );

# Przechodzimy przez kolejne wyniki
foreach my $element (@{$result->{'resultElements'}}) {

    my $url = HTML::Entities::encode($element->{'URL'});

    # Dla kadego wyniku damy danych z Technorati.
    my $technorati_result = get("http://api.technorati.com/bloginfo?".
                                "url=$url&key=$technoratikey");

    # Analiza uzyskanych informacji.
    my $parser = new XML::Simple;
    my $parsed_feed = $parser->XMLin($technorati_result);

    # Jeli Technorati uwaa t witryn za dziennik sieciowy,
    # przechodzimy do nastpnego wyniku. Jeli nie, okazujemy go
    # i dopiero idziemy dalej.
    if ($parsed_feed->{document}{result}{weblog}{name}) { next; }
    else {
        print $cgi-> i('<a href="'.$url.'">'.$element->{title}.'</a>');
        print $cgi-> l("$element->{snippet}");
    }
}
print $cgi -> end_ul(  );
print $cgi->end_html;

