phppub (irssi)

empty 07.03.03 11:00

Hakee php.netistä manuaalista funktion selosteen ja "käyttöohjeen". Erittäin tyhmästi tehty, ei kannata ottaa hirveästi opiksi.

 Tekstiversio  Arvo: -1 (2 ääntä)  Äänestä: +  -
use strict;
use Irssi;
use LWP::UserAgent;
my $VERSION = "20030307";
my %IRSSI = (
    authors     =>  "Teemu 'tpr' Rytilahti",
    contact     =>  "tpr\@d5k.net",
    name        =>  "phppub.pl",
    description =>  "phppub.",
    license     =>  "GPL v2 and any later",
    url         =>  "http://tpr.d5k.net/irssi/",
);
sub php {
        my ($server, $msg, $nick, $address, $channel) = @_;
        #Onko rivin alussa .php, jos on niin jatketaan..
        if($msg =~ /^\.php .+?$/) {
                my ($cmd,$function) = split(/ /,$msg);;
                $function =~ s/_/-/g;
                my $ua = LWP::UserAgent->new(env_proxy=>1, keep_alive=>1, timeout=>5);
                $ua->agent('Mozilla/5.0 (compatible; Konqueror/3.1; Linux; i686');
                #Pyydetään tiedostoa palvelimelta..
                my $request = $ua->get('http://fi2.php.net/manual/fi/print/function.'.$function.'.php');
                my $content = $request->content();
                #Poistetaan ylimääräiset roskat pois ennen käsittelyä.
                $content =~ s/\n/ /g;$content =~ s/\ +/ /g;$content =~ s/ //g;
                #Hankitaan funktion nimi "tyhmällä"(?) tavalla. (voidaan ottaa suoraan myös querystä..)
                my ($func) = ($content =~ /<title>PHP: (.+?)<\/title>/);
                #Hankitaan seloste ja "käyttöohje".
                my ($tip,$usage) = ($content =~ /${func}--(.+?)<\/DIV >/,$content =~ /<H2 >Description<\/H2 >(.+?${func}<\/B >.+)<BR ><\/BR >/);
                my $line = "[$func] $usage - $tip";$line =~ s/ +/ /g;$line =~ s/<.+?>//g;
                #Ja sitten lisää purkkaa..
                if($func ne "Search Results") {
                        if(!$tip || !$usage) {
                                $server->command("MSG $channel [$func] Tietoja ei saatu.");
                        }
                        else {
                                $server->command("MSG $channel $line");
                        }
                }
                else {
                        $server->command("MSG $channel Funktiota '${function}' ei löytynyt.");
                }
        }
}
Irssi::signal_add_last('message public','php');

pikkumyy 21:08 21.3.03 
Jos "ei kannata ottaa opiksi" niin kannattaako tänne submittaa?