24 lines
839 B
Perl
24 lines
839 B
Perl
use LWP::UserAgent;
|
|
|
|
my $ua = LWP::UserAgent->new;
|
|
$ua->agent('');
|
|
|
|
sub enc { join '', map {sprintf '%%%02x', ord} split //, shift }
|
|
sub get { $ua->request( HTTP::Request->new( GET => shift))->content }
|
|
|
|
sub tasks {
|
|
my($category) = shift;
|
|
my $fmt = 'http://www.rosettacode.org/w/api.php?' .
|
|
'action=query&generator=categorymembers&gcmtitle=Category:%s&gcmlimit=500&format=json&rawcontinue=';
|
|
my @tasks;
|
|
my $json = get(sprintf $fmt, $category);
|
|
while (1) {
|
|
push @tasks, $json =~ /"title":"(.+?)"\}/g;
|
|
$json =~ /"gcmcontinue":"(.+?)"\}/ or last;
|
|
$json = get(sprintf $fmt . '&gcmcontinue=%s', $category, enc $1);
|
|
}
|
|
@tasks;
|
|
}
|
|
|
|
my %language = map {$_, 1} tasks shift || 'perl';
|
|
$language{$_} or print "$_\n" foreach tasks('Programming_Tasks'), tasks('Draft_Programming_Tasks');
|