Changeset 27208 in osm for applications/editors/josm/i18n
- Timestamp:
- 2011-12-11T13:15:45+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/i18n/launchpad.pl
-
Property svn:keywords
set to
Revision
r27026 r27208 1 1 #!/usr/bin/perl -w 2 # -CDSL would be better than explicit encoding settings 2 3 3 4 use strict; … … 20 21 ); 21 22 23 my $revision = '$Revision$revision =~ s/^.*?(\d+).*$/$1/; 24 my $agent = "JOSM_Launchpad/1.$revision"; 25 22 26 my $count = 0;#11; 23 27 my $cleanall = 0;#1; … … 51 55 { 52 56 podownload(); 57 } 58 elsif($ARGV[0] eq "stats") 59 { 60 getstats(); 53 61 } 54 62 else … … 123 131 require WWW::Mechanize; 124 132 125 my $mech = WWW::Mechanize->new("agent" => "JOSM_Launchpad/1.0");133 my $mech = WWW::Mechanize->new("agent" => $agent); 126 134 127 135 #$mech->add_handler("request_send" => sub { … … 216 224 } 217 225 } 226 227 sub doget 228 { 229 my ($mech, $page) = @_; 230 print "$page\n"; 231 for(my $i = 1; $i <= 50; $i++) 232 { 233 eval 234 { 235 $mech->get($page); 236 }; 237 print "Try $i: $@" if $@; 238 return $mech if !$@; 239 sleep(30+5*$i); 240 $mech = WWW::Mechanize->new("agent" => $agent); 241 } 242 return $mech; 243 } 244 245 sub getstats 246 { 247 my %results; 248 require WWW::Mechanize; 249 require Data::Dumper; 250 require URI::Escape; 251 my $mech = WWW::Mechanize->new("agent" => $agent); 252 253 if(open DFILE,"<:utf8","launchpadtrans.data") 254 { 255 local $/; 256 $/ = undef; 257 my $val = <DFILE>; 258 eval $val; 259 close DFILE; 260 } 261 262 binmode STDOUT, ":utf8"; 263 264 open FILE,">:utf8","launchpadtrans.txt" or die "Could not open output file."; 265 266 for my $lang (sort keys %lang) 267 { 268 $mech->get("https://translations.launchpad.net/josm/trunk/+pots/josm/$lang/"); 269 sleep(1); 270 my $cont = utf8::upgrade($mech->content()); 271 while($cont =~ /<a href="https?:\/\/launchpad.net\/~(.*?)" class="sprite person(-inactive)?">(.*?)<\/a>/g) 272 { 273 my ($code, $inactive, $name) = ($1, $2, $3); 274 if(exists($results{$code}{$lang})) 275 { 276 printf "%-5s - %-30s - Found - %s\n", $lang,$code,$name; 277 next; 278 } 279 my $urlcode = URI::Escape::uri_escape($code); 280 $mech = doget($mech, "https://translations.launchpad.net/josm/trunk/+pots/josm/$lang/+filter?person=$urlcode"); 281 sleep(1); 282 my ($count) = $mech->content() =~ /of[\r\n\t ]+?(\d+)[\r\n\t ]+?result/; 283 if($count && $mech->status == 200) 284 { 285 $results{$code}{NAME} = $name; 286 $results{$code}{$lang} = $count; 287 $results{$code}{TOTAL} += $count; 288 if(open DFILE,">:utf8","launchpadtrans.data") 289 { 290 print DFILE Data::Dumper->Dump([\%results],['*results']); 291 close DFILE; 292 } 293 printf "%-5s - %-30s - %5d - %s\n", $lang,$code,$count,$name; 294 295 } 296 else 297 { 298 printf "%-5s - %-30s - Skip - %s\n", $lang,$code,$name; 299 } 300 } 301 } 302 for my $code (sort {$results{$b}{TOTAL} <=> $results{$a}{TOTAL}} keys %results) 303 { 304 print FILE "$results{$code}{NAME}:$results{$code}{TOTAL}"; 305 printf "%5d - %-50s",$results{$code}{TOTAL}, $results{$code}{NAME}; 306 for my $lang (sort keys %{$results{$code}}) 307 { 308 next if $lang eq "NAME" or $lang eq "TOTAL"; 309 print FILE ";$lang=$results{$code}{$lang}"; 310 printf " - %-5s=%5d",$lang, $results{$code}{$lang}; 311 } 312 print FILE "\n"; 313 print "\n"; 314 } 315 } -
Property svn:keywords
set to
Note:
See TracChangeset
for help on using the changeset viewer.