Modulis:JSON/GBIF

    Puslapis iš Enciklopedijos Lietuvai ir Pasauliui (ELIP).
    [peržiūrėti] [redaguoti] [istorija] [atnaujinti] Documentation icon Modulio dokumentacija


    Panaudojimas

    Visi testai praėjo.

    test_Gref:

    Tekstas Laukiama Gauta
    YesY {{#invoke:JSON/GBIF |getid|la=Alauda}} 2490696 2490696
    YesY {{#invoke:JSON/GBIF |getid|la=Alauda2}}
    YesY {{#invoke:JSON/GBIF |getid|la=Abrus}} 2943776 2943776
    YesY {{#invoke:JSON/GBIF |getid|la=Acaena anserinifolia}} 5370749 5370749
    YesY {{#invoke:JSON/GBIF |getid|la=Acaena (Lepidoptera)}} 3257362 3257362
    YesY {{#invoke:JSON/GBIF |getid|la=Aegle}} 2864442 2864442
    YesY {{#invoke:JSON/GBIF |getid|la=Aegle (Noctuidae)}} 1788724 1788724
    YesY {{#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

    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
    

    Sudarytojai, rašytojai ir redaktoriai

    Kitur naudojant ar cituojant šį straipsnį, būtina nurodyti jo sumanytojus, sudarytojus, rašytojus ir redaktorius.
    • Vitas Povilaitis – autorius ir redaktorius – 115% (+4024-521=3503 wiki spaudos ženklai).
    • Šarūnas Burdulis – redaktorius – 0% (+0-6=-6 wiki spaudos ženklai).