#!/usr/bin/perl -w

use strict;
use LWP::Simple;
use HTML::LinkExtor;
use SOAP::Lite;

my $google_key  = "tutaj twj klucz API";
my $google_wdsl = "GoogleSearch.wsdl";
my $yahoo_dir   = shift || "/Computers_and_Internet/Data_Formats/XML_  _".
                  "eXtensible_Markup_Language_/RSS/News_Aggregators/";

# pobranie katalogu Yahoo!
my $data = get("http://dir.yahoo.com" . $yahoo_dir) or die $!;

# utworzenie obiektu Google.
my $google_search = SOAP::Lite->service("file:$google_wdsl");
my %urls; # miejsce na liczniki i tytuy.

# pobranie wszystkich linkw i ich analiza.
HTML::LinkExtor->new(\&mindshare)->parse($data);
sub mindshare { # dla kadego znalezionego linka...

    my ($tag, %attr) = @_;

    # dalej idziemy tylko, jeli znacznik by linkiem,
    # a adres URL pasuje do katalogu Yahoo!
    return if $tag ne 'a';
    return unless $attr{href} =~ /srd.yahoo/;
    return unless $attr{href} =~ /\*http/;

    # teraz pobieramy rzeczywisty adres URL.
    $attr{href} =~ /\*(http.*)/; my $url = $1;

    # i kady adres URL przetwarzamy w Google.
    my $results = $google_search->doGoogleSearch(
                        $google_key, "link:$url", 0, 1,
                        "true", "", "false", "", "", ""
                  ); # tia, to byo atwe.
    $urls{$url} = $results->{estimatedTotalResultsCount};
}

# teraz sortujemy i pokazujemy wyniki.
my @sorted_urls = sort { $urls{$b} <=> $urls{$a} } keys %urls;
foreach my $url (@sorted_urls) { print "$urls{$url}: $url\n"; }

