#!/usr/bin/perl # # skrypt ściąga i rozpakowuje nowego promode'a # ( patrz promode.pordesign.eu / liero.org.pl ) # # uruchamiać z katalogu gusanos. # # UWAGA: skrypt kasuje poprzedniego promode'a! # (Tak trzeba - to wina developerów promode, nie moja) # # Autor: Barnaba 'Barnex' Turek # contact: #ligaliero @ quakenet # xmpp:b (zwierze które robi "Ook" i nie goryl) jabster.pl # GPG fingerprint: 0BDC E590 E335 5298 5CCB E05D 0930 EAC3 CA7B F878 # Licencja: http://www.perlfoundation.org/artistic_license_1_0 # # poniżej wymagane moduły, instalujemy przez "cpan Nazwa::Modułu" # albo przez " perl -MCPAN -e 'shell' " a potem " install Nazwa::Modułu " # albo przez pacmana (extra/perl-xml-simple, LWP::Simple nie widziałem) use XML::RSS::Parser::Lite; use LWP::Simple; # ten pewnie już macie use File::Path; # ten na pewno macie. $\ = "\n"; print "pobieram i parsuję różne rzeczy... czekaj!"; $hp = 0; my $xml = get("http://promode.pordesign.eu/hax.php?query=rss") or die ("Nie mogiem pobrać feeda RSS\nPLAX CONTACT WESZ @ QUAKENET\n"); my $rp = new XML::RSS::Parser::Lite; $rp->parse($xml) or die ("RSS FEED IS BORKENED\nPLAX CONTACT WESZ @ QUAKENET\n"); for (my $i = 0; $i < $rp->count(); $i++) { my $it = $rp->get($i); if ($it->get('title') =~ /(\d+).+patch/ and $1 > $hp){ $hp = $1; $hpl = $it->get('url'); } elsif ($it->get('title') =~ /(\d+)/ and $1 > $hs){ $hs = $1; $hsl = $it->get('url'); } } # Uwaga na nieoznaczoność! :D print "możliwe, że pobieram standalone."; $nowe = 1 unless mirror($hsl, "promode-latest-standalone.rar") == RC_NOT_MODIFIED ; print "możliwe, że pobieram patcha."; $nowe = 1 unless mirror($hpl, "promode-latest-patch.rar") == RC_NOT_MODIFIED ; die ("Na promodzie bez zmian! (v." . ($hp > $hl ? $hp : $hl) . ")\n") unless $nowe; rmtree("promode"); $hs > $hp ? `unrar x promode-latest-standalone.rar` : `unrar x promode-latest-standalone.rar && unrar x -o+ promode-latest-patch.rar`; print "promode w wersji " . ($hp > $hl ? $hp : $hl);