(* List of Russian names from http://wikigrib.ru *)
maintainRussianWikigrib := (
url = "http://wikigrib.ru/vidy/page/NN/";
nmax0 = 222;
dirwikigrib = ToFileName[{dirwork, "data", "names", "wikigrib"}];
textconditwg =
StringFreeQ[#,
"
\:0421\:0442\:0440\:0430\:043d\:0438\:0446\:0430 \:043d\
\:0435 \:043d\:0430\:0439\:0434\:0435\:043d\:0430"] &;
match = RegularExpression[
"(?i)(?s) rel=\"bookmark\">\\s*(.{3,50}?)\\s*\\s*Lat:
\\s*(.{3,50}?)\\s*
" <>
"\\s*\:0421\:0438\:043d\:043e\:043d\:0438\:043c\:044b:\\s*(.{3,222}?)\\s*
"];
checkdir1[dirwikigrib];
SetDirectory[dirwikigrib];
filen = "wikigribNN.htm";
filenmax = "nmax.m";
If[FileType[filenmax] === File,
Get[filenmax],
nmax = 0;
Do[Print[n];
file =
ToFileName[dirwikigrib, StringReplace[filen, "NN" -> ToString[n]]];
urlsave[StringReplace[url, "NN" -> ToString[n]], file, textconditwg];
If[FileType[file] === File,
nmax = n,
Print["Wikigrib: file was not loaded: n = ", n, ", nmax = ", nmax];
Break[]], {n, nmax0}];
Save[filenmax, nmax];
];
data = Join @@ Table[
file = ToFileName[dirwikigrib, StringReplace[filen, "NN" -> ToString[n]]];
checkfile[file];
text = Import[file, "Text"];
datan = StringCases[text, match -> {"$1", "$2", "$3"}];
datan = Table[
{rusname, latname, syns} = dat;
syn0 = stringtrim /@ StringSplit[rusname, {"(", ")"}];
If[StringTake[syns, -1] === ".", syns = StringDrop[syns, -1]];
syns = stringtrim /@ StringSplit[syns, ","];
syns = Join[syn0, Select[syns, !MemberQ[syn0, #]&]];
syns = Select[syns, (ifrussianlett[#] && !ifenglishlett[#])&];
noPrint[latname, " -- ", ToString[syns]];
{latname, syns}, {dat, datan}], {n, nmax}];
Print["Found ", Length[data], " names in Wikigrib -> rusnamesWikigrib"];
printnames[data // TableForm];
rusnamesWikigrib = updatenames[data];
);