(* Get Wikipedia articles *) maintainWiki := ( redirects = { "Anethum graveolens" -> "Dill", "Phoenix dactylifera" -> "Date palm", "Raphanus sativus" -> "Radish", "Ricinus communis" -> "Castor oil plant", "Acacia tortilis" -> "Vachellia tortilis", "Lotononis platycarpa" -> "Leobordea platycarpa", "Medicago sativa" -> "Alfalfa", "Mentha piperita" -> "Peppermint", "Ficus carica" -> "Common fig", "Anastatica hierochuntica" -> "Anastatica", "Oldenlandia corymbosa" -> "Oldenlandia", "Phragmites australis" -> "Phragmites", "Capparis spinosa" -> "Caper", "Nerium oleander" -> "Nerium", "Tamarindus indica" -> "Tamarind", "Citrus limon" -> "Lemon", "Citrus aurantiifolia" -> "Key lime", "Trigonella foenum-graecum" -> "Fenugreek", "Sorghum halepense" -> "Johnson grass", "Cicer arietinum" -> "Chickpea", "Coriandrum sativum" -> "Coriander", "Lepidium sativum" -> "Garden cress", "Lawsonia inermis" -> "Henna", "Acacia nilotica" -> "Vachellia nilotica", "Olea europaea" -> "Olive", "Millingtonia hortensis" -> "Millingtonia", "Solanum lycopersicum" -> "Tomato", "Zea mays" -> "Maize", "Hordeum vulgare" -> "Barley", "Vigna unguiculata" -> "Cowpea", "Carica papaya" -> "Papaya", "Ocimum basilicum" -> "Basil", "Vigna radiata" -> "Mung bean", "Scaevola sericea" -> "Scaevola taccada", "Punica granatum" -> "Pomegranate", "Spathodea campanulata" -> "Spathodea", "Apium graveolens" -> "Celery", "Solanum melongena" -> "Eggplant", "Brachiaria decumbens" -> "Brachiaria", "Muntingia calaburas" -> "Muntingia", "Nicandra physalodes" -> "Nicandra", "Foeniculum vulgare" -> "Fennel", "Muntingia calabura" -> "Muntingia", "Solanum tuberosum" -> "Potato", "Lagenaria siceraria" -> "Calabash", "Zanthoxylum odorum" -> "Zanthoxylum", "Cutandia memphitica" -> "Cutandia", "Linum usitatissimum" -> "Flax", "Brassica napus" -> "Rapeseed", "Sorghum sudanense" -> "Sorghum \[Times] drummondii", "Sorghum drummondii" -> "Sorghum \[Times] drummondii", "Bauhinia variegata" -> "Phanera variegata", "Murraya koenigii" -> "Curry tree", "Ipomoea batatas" -> "Sweet potato" }; plantwiki[name_String] := ""; Do[ plant = plantdata[[4]]; namefull = plantname[plant]; name = shortenname[namefull]; namea = StringReplace[name, " " -> "_"]; filedata = ToFileName[dirdata, namea <> ".json"]; namer = StringReplace[name, redirects]; name1 = StringReplace[namer, " " -> "%20"]; name1a = StringReplace[name1, " " -> "_"]; If[FileType[filedata] =!= File, url = "https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro&titles=" <> name1 <> "&format=json"; Print["Getting ", url]; resp = URLSave[url, filedata, {"Headers", "StatusCode"}]; If[resp[[2]] != 200, Print["Warning: URL = ", url, ": bad response: ", resp]; If[FileType[filedata] === File, Print["File ", filedata, " will be deleted!"]; Print[Import[filedata, "Text"]]; DeleteFile[filedata]; ]; ];]; a = b = ""; If[FileType[filedata] === File, a = Import[filedata]; If[Cases[a, "missing", Infinity, 1] === {}, (* b = a[[1, 2, 1, 2, 1, 2, 1, 2]]; - for newer responces, necessary to change 1 -> 2 at the beginning *) b = Cases[a, Rule["extract", b_] :> b, Infinity, 1][[1]]; If[Head[b] =!= String, Print["Internal error: file ", filedata, " incorrectly parsed. URL: ", url, " File content: ", a], If[!StringFreeQ[b, "This is a redirect"], url1 = "http://en.wikipedia.org/wiki/" <> name1a; Print["Warning: Wikipedia: add a new redirect: ", name, ": see ", Hyperlink["Wikipedia article: " <> namer, url1]]; filet = ToFileName[dirtemp, "wikiarticle.htm"]; resp = URLSave[url1, filet, {"Headers", "StatusCode"}]; If[resp[[2]] == 200, txt = Import[filet, "Text"]; txt = StringCases[txt, "" ~~ x__ ~~ "" -> x, 1]; If[MatchQ[txt, {_}], newname = StringTrim[StringSplit[txt[[1]], " - "][[1]]]; Print[" - add new line to maintain-wiki.m: \"", name, "\" -> \"", newname, "\""]; ]]; Print["File ", filedata, " will be deleted!"]; DeleteFile[filedata]; ]; If[b =!= "", plantwiki[plant] = b]]], Print["Warning: file ", filedata, " not found."]; ], {plantdata, listsort}]; );