Utilisateur:Jmfayard-fauxnez/Adq.pl
Un article de Wikipédia, l'encyclopédie libre.
/*
*/ #!/usr/bin/perl ## Localization my %subpage = ( en => "subpage", fr => "sous-page" ); my %image = ( en => "images", fr => "images" ); my %FA = ( en => "Is Featured here", fr => "ADQ français" ); my %base = ( en => "Wikipedia:Translation", fr => "Projet:Traduction" ); if ($#ARGV<3) { print "Usage : perl adq.pl Code_langue_origine Code_Langue_destination Fichier_liste_articles Style\n\n"; } ($origin_LANG,$dest_LANG,$FILE,$style) = @ARGV; sub round { my($number) = shift; return int($number + .5); } sub what_links_here() { ($LANG, $NAME) = @_ ; my ($ligne, $link, @result); @result=(); open( IN, "wget 'http://$LANG.wikipedia.org/w/index.php?title=$NAME&action=raw' -O - 2>/dev/null |") ; while( $ligne=<IN> ) { while ( $ligne =~ m/\[\[([^\]:]+)\]\]/g ) { $link = $1; $link =~ s/\|.*$// ; #print "$link\n"; push @result, $link; } } close( IN ); return @result; } sub articles_in_file() { ($FILE) = @_ ; my ($ligne, $link, @result); @result=(); open( IN, "$FILE") ; while( $ligne=<IN> ) { chomp $ligne; push @result,$ligne; } close( IN ); return @result; } sub read_adq() { my ($origin_LANG, $dest_LANG, $ARTICLE) =@_ ; my ($interwiki,$interwiki_is_adq,$nb_images,$nb_images_interwiki,$nb_char,$nb_char_interwiki) = ("", 0, 0, 0, 0, 0); open( IN, "wget 'http://$origin_LANG.wikipedia.org/w/index.php?title=$ARTICLE&action=raw' -O - 2>/dev/null |") ; # print "http://$origin_LANG.wikipedia.org/w/index.php?title=$ARTICLE&action=raw\n"; while( $ligne=<IN> ) { $nb_char=$nb_char+length($ligne) ; if ( ($ligne =~ m/\[\[Image:/) || ($ligne =~ m/.jpg\]\]/) || ($ligne =~ m/.jpeg\]\]/) || ($ligne =~ m/.svg\]\]/)) { $nb_images++; } while ( $ligne =~ m/\[\[$dest_LANG:([^\]:]+)\]\]/g ) { $interwiki = $1; $interwiki =~ s/\|.*$// ; #print "$link\n"; } if ( $ligne =~ m/\{\{Link FA\|$dest_LANG\}\}/ ) { $interwiki_is_adq = 1; } } close(IN); open( IN, "wget 'http://$dest_LANG.wikipedia.org/w/index.php?title=$interwiki&action=raw' -O - 2>/dev/null |") ; while( $ligne=<IN> ) { $nb_char_interwiki=$nb_char_interwiki+length($ligne) ; if ( ($ligne =~ m/\[\[Image:/) || ($ligne =~ m/\[\[Bild:/) || ($ligne =~ m/\.jpg/) || ($ligne =~ m/\.jpeg/) || ($ligne =~ m/\.svg/) || ($ligne =~ m/\.JPG/) || ($ligne =~ m/\.JPEG/) || ($ligne =~ m/\.SVG/) || ($ligne =~ m/\.png/) || ($ligne =~ m/\.PNG/) ) { $nb_images_interwiki++; } } close(IN); return ($interwiki,$interwiki_is_adq,$nb_images,$nb_images_interwiki,round($nb_char/1000),round($nb_char_interwiki/1000)); } sub interwiki() { my ($origin_LANG, $dest_LANG, $ARTICLE) =@_ ; my ($link, $ligne); open( IN, "wget 'http://$origin_LANG.wikipedia.org/w/index.php?title=$ARTICLE&action=raw' -O - 2>/dev/null |") ; while( $ligne=<IN> ) { while ( $ligne =~ m/\[\[$dest_LANG:([^\]:]+)\]\]/g ) { $link = $1; $link =~ s/\|.*$// ; #print "$link\n"; return "$link"; } } return "AUCUN INTERWIKI"; } @l_ARTICLE=&articles_in_file( $FILE ) ; foreach $adq (@l_ARTICLE) { if ($adq =~ m/==/) { print <<SECTION $adq SECTION ; next; } my ($interwiki,$interwiki_is_adq,$nb_images,$nb_images_interwiki,$nb_char,$nb_char_interwiki) =&read_adq( $origin_LANG, $dest_LANG, $adq ); my $pagetraduc="[[$base{$origin_LANG}/$interwiki|$subpage{$origin_LANG}]]"; if ($interwiki eq "") { $interwiki="??"; $pagetraduc="[[??]]"; } print <<ITEM |-$style |[[:$origin_LANG:$adq]] ($nb_char ko, $nb_images $images{$origin_LANG}) |[[$interwiki]] ($nb_char_interwiki ko, $nb_images_interwiki $images{$origin_LANG} $FA{$origin_LANG}) |$pagetraduc | ITEM ; } /*
- /