38 lines
1.5 KiB
Plaintext
38 lines
1.5 KiB
Plaintext
ConvertUTF8 := proc( str )
|
|
local i, tempstring, uniindex;
|
|
try
|
|
tempstring := str;
|
|
uniindex := [StringTools:-SearchAll("\u",str)];
|
|
if uniindex <> [] then
|
|
for i in uniindex do
|
|
tempstring := StringTools:-Substitute(tempstring, str[i..i+5], UTF8:-unicode(str[i+2..i+5]));
|
|
end do:
|
|
end if;
|
|
return tempstring;
|
|
catch:
|
|
return str;
|
|
end try;
|
|
end proc:
|
|
print_examples := proc(lst)
|
|
local task, count, url, headers, item;
|
|
for task in lst do
|
|
count := 0:
|
|
url := cat("http://www.rosettacode.org/mw/index.php?title=", StringTools:-Encode(StringTools:-SubstituteAll(task["title"], " ", "_"), 'percent'), "&action=raw"):
|
|
headers := [StringTools:-SearchAll("=={{header|",URL:-Get(url))]:
|
|
for item in headers do
|
|
count++:
|
|
end do:
|
|
printf("%s has %d examples\n",ConvertUTF8(task["title"]), count);
|
|
end do:
|
|
end proc:
|
|
|
|
|
|
x := JSON:-ParseFile("http://rosettacode.org/mw/api.php?action=query&list=categorymembers&cmtitle=Category:Programming_Tasks&cmlimit=20&format=json"):
|
|
print_examples(x["query"]["categorymembers"]);
|
|
while(assigned(x["continue"]["cmcontinue"])) do
|
|
continue := x["continue"]["cmcontinue"]:
|
|
more_tasks:= cat("http://rosettacode.org/mw/api.php?action=query&list=categorymembers&cmtitle=Category:Programming_Tasks&cmlimit=20&format=json", "&continue=", x["continue"]["continue"], "&cmcontinue=", x["continue"]["cmcontinue"]):
|
|
x := JSON:-ParseFile(more_tasks):
|
|
print_examples(x["query"]["categorymembers"]);
|
|
end do:
|