37 lines
904 B
Text
37 lines
904 B
Text
require('MediaWiki::API')
|
|
|
|
var api = %O<MediaWiki::API>.new(
|
|
Hash(api_url => 'http://rosettacode.org/mw/api.php')
|
|
)
|
|
|
|
var languages = []
|
|
var gcmcontinue
|
|
loop {
|
|
var apih = api.api(
|
|
Hash(
|
|
action => 'query',
|
|
generator => 'categorymembers',
|
|
gcmtitle => 'Category:Programming Languages',
|
|
gcmlimit => 250,
|
|
prop => 'categoryinfo',
|
|
gcmcontinue => gcmcontinue,
|
|
)
|
|
)
|
|
|
|
languages.append(apih{:query}{:pages}.values...)
|
|
gcmcontinue = apih{:continue}{:gcmcontinue}
|
|
gcmcontinue || break
|
|
}
|
|
|
|
languages.each { |lang|
|
|
lang{:title} -= /^Category:/
|
|
lang{:categoryinfo}{:size} := 0
|
|
}
|
|
|
|
var sorted_languages = languages.sort_by { |lang|
|
|
-lang{:categoryinfo}{:size}
|
|
}
|
|
|
|
sorted_languages.each_kv { |i, lang|
|
|
printf("%3d. %20s - %3d\n", i+1, lang{:title}, lang{:categoryinfo}{:size})
|
|
}
|