Modulis:JSON/GBIF
[peržiūrėti] [redaguoti] [istorija] [ ] Modulio dokumentacija
Panaudojimas
Visi testai praėjo.
test_Gref:
Tekstas | Laukiama | Gauta | |
---|---|---|---|
{{#invoke:JSON/GBIF |getid|la=Alauda}} | 2490696 | 2490696 | |
{{#invoke:JSON/GBIF |getid|la=Alauda2}} | |||
{{#invoke:JSON/GBIF |getid|la=Abrus}} | 2943776 | 2943776 | |
{{#invoke:JSON/GBIF |getid|la=Acaena anserinifolia}} | 5370749 | 5370749 | |
{{#invoke:JSON/GBIF |getid|la=Acaena (Lepidoptera)}} | 3257362 | 3257362 | |
{{#invoke:JSON/GBIF |getid|la=Aegle}} | 2864442 | 2864442 | |
{{#invoke:JSON/GBIF |getid|la=Aegle (Noctuidae)}} | 1788724 | 1788724 | |
{{#invoke:JSON/GBIF |getid|la=Aa achalensis}} | 5325296 | 5325296 |
{{subst:#invoke:JSON/GBIF |getid|la=Alauda}}
{{subst:#invoke:JSON/GBIF |getid|la=Alauda|subst=subst:}}
7237305,2490696
{{subst:#invoke:JSON/GBIF |getid|la=Acaena anserinifolia|subst=subst:}}
5370749
{{subst:#invoke:JSON/GBIF |getid|la=Aegle|subst=subst:}}
2864442
{{subst:#invoke:JSON/GBIF |getid|la=Aegle (Noctuidae)|subst=subst:}}
1788724
{{#invoke:JSON/GBIF |getsyn|gbifid=2977874}}
null
Nuorodos
Pateikta dokumentacija yra įtraukta iš Modulis:JSON/GBIF/doc. (redaguoti | istorija) Redaktoriai gali šiam moduliui sukurti smėlio dėžę (sukurti | atkopijuoti) ir testinius pavyzdžius (redaguoti) puslapėlį. Kategorijas prašome statyti į /doc po puslapį. Šio modulio puslapėliai. |
local ParmData = require('Module:ParmData')
local json = require('Modulis:JSON')
gbifi = {}
gbifi.get1 = function ( frame )
local args, pargs = frame.args or {}, (frame:getParent() or {}).args or {}
local la = args['la'] or pargs['la'] or ''
local subst = args['subst'] or pargs['subst'] or ''
return gbifi._get1{ la = la, subst = subst }
end
gbifi._get1 = function ( args )
local la = args['la'] or ''
local subst = args['subst'] or ''
local all = gbifi._getid{ la = la, subst = subst }
local allm = mw.text.split( all, ',' )
if #allm == 1 then
retm = mw.text.split(allm[1],'<!--')
allm[1] = retm[1]
retm = mw.text.split(allm[1],'{{subst:')
allm[1] = retm[1]
return allm[1]
else
return ''
end
end
gbifi.getid = function ( frame )
local args, pargs = frame.args or {}, (frame:getParent() or {}).args or {}
local la = args['la'] or pargs['la'] or ''
local subst = args['subst'] or pargs['subst'] or ''
return gbifi._getid{ la = la, subst = subst }
end
gbifi._getid = function ( args )
local la = args['la'] or ''
local subst = args['subst'] or ''
local frame = mw.getCurrentFrame()
local page = mw.title.getCurrentTitle()
if la == '' then
local la = ParmData._get{ page = page.text, parm = 'la', template = 'Auto_taxobox', subst = subst }
end
if la == '' then
return ''
end
--local pages = mw.title.new(la)
local gbifid = ParmData._get{ page = la, parm = 'gbifid', template = 'Auto_taxobox', subst = subst } or ''
if gbifid ~= '' then
return mw.text.trim(gbifid, ',')
end
local pgname = page.text
local mladb = mw.text.listToText(mw.text.split( la, "'" ), "''", "''")
gbifid = frame:preprocess("{{"..subst.."#get_db_data:|db=base|from=x_GBIFtax|where=c_name='"..
mladb.."' |order by=c_taxon_id|data=id=c_taxon_id}}"..
"{{"..subst.."#for_external_table:{{{id}}},}}{{"..subst.."#clear_external_data:}}") or ''
if gbifid ~= '' then
return mw.text.trim(gbifid, ',')
end
gbifid = frame:preprocess("{{"..subst.."#get_db_data:|db=Paplitimas|from=GBIF_sk=tt " ..
"|where=tt.name='"..
mladb.."'|order by=tt.gbif_id desc|data=gbif=gbif_id}}"..
"{{"..subst.."#for_external_table:{{{gbif}}},}}"..
"{{"..subst.."#clear_external_data:}}") or ''
if gbifid ~= '' then
return mw.text.trim(gbifid, ',')
end
gbifid = frame:preprocess("{{"..subst.."#get_db_data:|db=Paplitimas|from=paplitimas=tt " ..
"|where=tt.name='"..
mladb.."'|order by=tt.gbif_id desc|data=gbif=gbif_id}}"..
"{{"..subst.."#for_external_table:{{{gbif}}},}}"..
"{{"..subst.."#clear_external_data:}}") or ''
return mw.text.trim(gbifid, ',')
end
gbifi.getsyn = function ( frame )
local args, pargs = frame.args or {}, (frame:getParent() or {}).args or {}
local gbifid = args['gbifid'] or pargs['gbifid'] or ''
local singbifm = {}
local singbifj = frame:preprocess("{{#get_web_data:url=http://api.gbif.org/v1/species/"..gbifid..
"/synonyms?limit=300|format=json text}}") or '{}'
if singbifj ~= nil then
singbifm = json.decode(singbifj)
else
singbifj = '{}'
end
--return mw.dumpObject(singbifm)
return json.encode(singbifm)
end
return gbifi