Modul:Sandlådan/Sextvåetc/WD2
Utseende
Dokumentationen för denna modul kan skapas på Modul:Sandlådan/Sextvåetc/WD2/dok
local wikidata = require('Modul:Wikidata2').formatStatementsFromLua
local Ortsfaktarat = require('Modul:Ortsfakta').rat
local namnversalisering = require('Modul:Textformatering').namnversalisering
local established = require('Modul:Ortsfakta/Aux').established
p = {}
function p.ort( entity, args )
local divkat = ''
local a = {}
table.insert(a, "{{Geobox\n| Region")
local namn = args['Kommunnamn_svenska'] or args['kommunnamn']
if not namn or namn == '' then
if entity.labels and entity.labels.sv then
namn = entity.labels.sv.value
else
namn = mw.title.getCurrentTitle().text
end
end
table.insert(a, "\n| name = " .. namn)
if args['Kommunnamn_norska'] or args['alternativnamn'] then
table.insert(a, "\n| other_name = " .. (args['Kommunnamn_norska'] or args['alternativnamn']))
else
local v = wikidata({entity = entity, property='P2936', noref = 'true', raw = 'true'})
local s1 = {}
if v and #v > 0 then
for i, j in pairs(v) do
local v1 = wikidata({entityId = j.item, noref = 'true', raw = 'true', property = 'P424'})
local wow = false
if v1 and #v1 > 0 then
for i1, j1 in pairs(v1) do
if entity.labels[j1.value] then
if not wow then
table.insert(s1, mw.getCurrentFrame():preprocess('{{Lang|' .. j1.value .. '|' .. entity.labels[j1.value].value .. '}}' ))
wow = true
end
end
end
if not wow then
divkat = divkat .. '[[Kategori:Underhållskategori för Ortsfakta WD|Σ]]'
end
end
end
else
local nb = ''
local nn = ''
if entity.labels.nb then
nb = entity.labels.nb.value
end
if entity.labels.nn then
nn = entity.labels.nn.value
end
if nb == nn and nb ~= '' and nn ~= '' then
table.insert(s1, mw.getCurrentFrame():preprocess('{{Lang|no|' .. nb .. '}}' ))
elseif nb ~= nn and nb ~= '' and nn ~= '' then
table.insert(s1, mw.getCurrentFrame():preprocess('{{Lang|nb|' .. nb .. '}}' ))
table.insert(s1, mw.getCurrentFrame():preprocess('{{Lang|nn|' .. nn .. '}}' ))
elseif nb and nb ~= '' then
table.insert(s1, mw.getCurrentFrame():preprocess('{{Lang|nb|' .. nb .. '}}' ))
elseif nn and nn ~= '' then
table.insert(s1, mw.getCurrentFrame():preprocess('{{Lang|nn|' .. nn .. '}}' ))
end
end
if #s1 > 0 then
table.insert(a, "\n| other_name = " .. mw.text.listToText( s1, '<br/>', '<br/>' ))
else
divkat = divkat .. '[[Kategori:Underhållskategori för Ortsfakta WD|Σ]]'
end
end
local fd = false
local v = wikidata({entity = entity, property = 'P31', avoidqualifier='P582', raw = 'true', noref = 'true'})
if entity.id == 'Q5245991' then
table.insert(a, "\n| category = [[Norges kommuner|Kommun]] och [[Norges fylken|Fylke]]")
elseif v[1].item == 'Q18663579' then
fd = true
table.insert(a, "\n| category = Tidigare [[Norges kommuner|kommun]]")
else
table.insert(a, "\n| category = [[Norges kommuner|Kommun]]")
end
local bild = args.bild
local bildtext = args.bildtext
if not bild then
local data = wikidata({entity = entity, property = 'P18', raw = 'true', noref='true', enbarten = 'true', langpref = 'sv'})
if data and #data > 0 then
bild = data[1].value
bildtext = data[1].bildtext or data[1].motiv
end
end
if bild and bild ~= '' then
table.insert(a, "\n| image = " .. (bild or ''))
if bildtext then
table.insert(a, "\n| image_caption = " .. (bildtext or ''))
end
if bildstorlek then
table.insert(a, "\n| image_size = " .. bildstorlek)
end
end
local flagga = args.flagga
if flagga and flagga ~= '' then
table.insert(a, "\n| flag = " .. flagga)
table.insert(a, "\n| flag_type = Kommunflagga" )
elseif not flagga then
local data = wikidata({entity = entity, property = 'P41', raw = 'true', noref='true', enbarten = 'true'})
if data and #data > 0 then
table.insert(a, "\n| flag = " .. data[1].value)
local data2 = wikidata({entity = entity, property = 'P163', raw = 'true', noref='true', enbarten = 'true'})
if data2 and #data2 > 0 then
table.insert(a, "\n| flag_type = " .. data2[1].value)
else
table.insert(a, "\n| flag_type = Kommunflagga" )
end
end
end
local vapen = args.vapen or args.vapenbild
if vapen and vapen ~= '' then
table.insert(a, "\n| symbol = " .. args.vapen or args.vapenbild)
table.insert(a, "\n| symbol_type = [[Kommunvapen i Norge|Kommunvapen]]")
elseif not vapen then
local data = wikidata({entity = entity, property = 'P94', raw = 'true', noref='true', enbarten = 'true'})
local data2 = wikidata({entity = entity, property = 'P237', raw = 'true', noref='true', enbarten = 'true'})
if data and #data > 0 then
table.insert(a, "\n| symbol = " .. data[1].value)
if data2 and #data2 > 0 then
table.insert(a, "\n| symbol_type = " .. data2[1].value)
else
table.insert(a, "\n| symbol_type = [[Kommunvapen i Norge|Kommunvapen]]")
end
end
end
table.insert(a, "\n| country = Norge")
table.insert(a, "\n| country_flag = 1")
if args.fylke and args.fylke ~= '' then
table.insert(a, "\n| state = " .. args.fylke)
table.insert(a, "\n| state_type = [[Norges fylken|Fylke]]")
elseif not args.fylke and entity.id ~= 'Q5245991' then -- Underviker leta fylken i Oslo
local data
if fd then -- För fd kommuner är det intressant om den har bytt fylke under sin existens
data = wikidata({entity = entity, property = "P131", noref='true', getonly='Q192299', modifyqualifiertime = 'Y', conjunction = '<br/>', separator = '<br/>', withintervall = 'true'})
else -- annars är det inte särskilt intressant
data = wikidata({entity = entity, property = "P131", noref='true', getonly='Q192299'})
end
if data and data ~= '' then
table.insert(a, "\n| state = " .. data )
table.insert(a, "\n| state_type = [[Norges fylken|Fylke]]")
end
end
if args.slogan then
table.insert(a, "\n| motto = " .. args.slogan )
table.insert(a, "\n| motto_type = [[Slogan]]" )
else
local data = wikidata({entity = entity, property = 'P6251', noref = 'noimport'})
if data and data ~= '' then
table.insert(a, "\n| motto = " .. data )
table.insert(a, "\n| motto_type = [[Slogan]]" )
end
end
if args.koordinat then
table.insert(a, "\n| location = " .. args.koordinat)
end
local elevation = args['höjdläge']
if elevation then
table.insert(a, "\n| elevation = " .. elevation)
else
local v = wikidata({entity=entity, property='P2044', enbarten = 'true', raw = 'true', convertunit='Q11573', noref='noimport'})
if v and #v > 0 then
v = v[1]
if tonumber(v.amount) then
table.insert(a, "\n| elevation = " .. math.abs( tonumber(v.amount)) )
if tonumber(v.amount) < 0 then
table.insert(a, "\n| elevation_unit = muh" )
else
table.insert(a, "\n| elevation_unit = möh" )
end
if v.ref and v.ref ~= '' then
table.insert(a, "\n| elevation_note = " .. v.ref)
end
end
end
end
local highest = args['högsta punkt namn']
if highest then
table.insert(a, "\n| highest = " .. highest )
local highest_elevation = args['högsta punkt meter']
if highest_elevation then
table.insert(a, "\n| highest_elevation = " .. highest_elevation )
end
else
local v = wikidata({entity=entity, property='P610', enbarten = 'true', raw = 'true', qual1 = 'P2044', qualifierconvertunit = 'Q11573', qualifierwithoutunit = 'true', qualifiernoformatera = 'true' })
if v and #v > 0 then
table.insert(a, "\n| highest = " .. v[1].value .. v[1].ref)
if tonumber(v[1].qp1) then
table.insert(a, "\n| highest_elevation = " .. math.abs( tonumber(v[1].qp1) ))
if tonumber(v[1].qp1) < 0 then
table.insert(a, "\n| highest_elevation_unit = muh" )
else
table.insert(a, "\n| highest_elevation_unit = möh" )
end
else
local v2 = wikidata({entityId=v[1].item, property='P2044', enbarten = 'true', raw = 'true', convertunit='Q11573', noref='noimport'})
if v2 and #v2 > 0 then
if tonumber(v2[1].amount) then
table.insert(a, "\n| highest_elevation = " .. math.abs( tonumber(v2[1].amount)) )
if tonumber(v2[1].amount) < 0 then
table.insert(a, "\n| highest_elevation_unit = muh" )
else
table.insert(a, "\n| highest_elevation_unit = möh" )
end
table.insert(a, "\n| highest_elevation_note = " .. v2[1].ref)
end
end
end
v2 = wikidata({entityId=v[1].item, property='P625', enbarten = 'true', raw = 'true', noref = 'true', nogeodataparser = 'true'})
if v2 and #v2 > 0 then
v2 = Ortsfaktarat(v2[1], 'sekund')
table.insert(a, "\n| highest_lat_d = " .. (v2.lat_g or ''))
table.insert(a, "\n| highest_lat_m = " .. (v2.lat_m or ''))
table.insert(a, "\n| highest_lat_s = " .. (v2.lat_s or ''))
table.insert(a, "\n| highest_lat_NS = " .. (v2.lat_NS or ''))
table.insert(a, "\n| highest_long_d = " .. (v2.long_g or ''))
table.insert(a, "\n| highest_long_m = " .. (v2.long_m or ''))
table.insert(a, "\n| highest_long_s = " .. (v2.long_s or ''))
table.insert(a, "\n| highest_long_EW = " .. (v2.long_EW or ''))
table.insert(a, "\n| highest_country = NO")
end
end
end
local lowest = args['lägsta punkt namn']
if lowest then
table.insert(a, "\n| lowest = " .. lowest )
local lowest_elevation = args['lägsta punkt meter']
if lowest_elevation then
table.insert(a, "\n| lowest_elevation = " .. lowest_elevation )
end
else
local v = wikidata({entity=entity, property='P1589', enbarten = 'true', raw = 'true', qual1 = 'P2044', qualifierconvertunit = 'Q11573', qualifierwithoutunit = 'true', qualifiernoformatera = 'true' })
if v and #v > 0 then
table.insert(a, "\n| lowest = " .. v[1].value .. v[1].ref)
if tonumber(v[1].qp1) then
table.insert(a, "\n| lowest_elevation = " .. math.abs( tonumber(v[1].qp1) ))
if tonumber(v[1].qp1) < 0 then
table.insert(a, "\n| lowest_elevation_unit = muh" )
else
table.insert(a, "\n| lowest_elevation_unit = möh" )
end
else
local v2 = wikidata({entityId=v[1].item, property='P2044', enbarten = 'true', raw = 'true', convertunit='Q11573', noref='noimport'})
if v2 and #v2 > 0 then
if tonumber(v2[1].amount) then
table.insert(a, "\n| lowest_elevation = " .. math.abs( tonumber(v2[1].amount)) )
if tonumber(v2[1].amount) < 0 then
table.insert(a, "\n| lowest_elevation_unit = muh" )
else
table.insert(a, "\n| lowest_elevation_unit = möh" )
end
table.insert(a, "\n| lowest_elevation_note = " .. v2[1].ref)
end
end
end
v2 = wikidata({entityId=v[1].item, property='P625', enbarten = 'true', raw = 'true', noref = 'true', nogeodataparser = 'true'})
if v2 and #v2 > 0 then
v2 = Ortsfaktarat(v2[1], 'sekund')
table.insert(a, "\n| lowest_lat_d = " .. (v2.lat_g or ''))
table.insert(a, "\n| lowest_lat_m = " .. (v2.lat_m or ''))
table.insert(a, "\n| lowest_lat_s = " .. (v2.lat_s or ''))
table.insert(a, "\n| lowest_lat_NS = " .. (v2.lat_NS or ''))
table.insert(a, "\n| lowest_long_d = " .. (v2.long_g or ''))
table.insert(a, "\n| lowest_long_m = " .. (v2.long_m or ''))
table.insert(a, "\n| lowest_long_s = " .. (v2.long_s or ''))
table.insert(a, "\n| lowest_long_EW = " .. (v2.long_EW or ''))
table.insert(a, "\n| lowest_country = NO")
end
end
end
local nordligt = nil
if args.lat_dec or args.lat_g then
nordligt = tonumber(args.lat_dec or args.lat_g)
table.insert(a, "\n| lat_d = " .. (args.lat_dec or args.lat_g))
table.insert(a, "\n| lat_m = " .. (args.lat_m or ''))
table.insert(a, "\n| lat_s = " .. (args.lat_s or ''))
table.insert(a, "\n| lat_NS = " .. (args.lat_NS or ''))
table.insert(a, "\n| long_d = " .. (args.long_dec or args.long_g or ''))
table.insert(a, "\n| long_m = " .. (args.long_m or ''))
table.insert(a, "\n| long_s = " .. (args.long_s or ''))
table.insert(a, "\n| long_EW = " .. (args.long_EW or ''))
elseif not args.koordinat then
local v = wikidata({entity = entity, property = 'P625', raw = 'true', noref='true', enbarten = 'true', nogeodataparser = 'true'})
if v and #v > 0 then
v = Ortsfaktarat(v[1], 'minut')
if v then
nordligt = tonumber(v.lat_g)
table.insert(a, "\n| lat_d = " .. (v.lat_g or ''))
table.insert(a, "\n| lat_m = " .. (v.lat_m or ''))
table.insert(a, "\n| lat_NS = " .. (v.lat_NS or ''))
table.insert(a, "\n| long_d = " .. (v.long_g or ''))
table.insert(a, "\n| long_m = " .. (v.long_m or ''))
table.insert(a, "\n| long_EW = " .. (v.long_EW or ''))
end
end
end
a = established(entity, a, args) -- hämtar uppgifter om bildande, gränsjusteringar och upplösning mm
table.insert(a, '\n| timezone = [[Centraleuropeisk tid|CET]] | utc_offset = +1 | timezone_type = [[Tidszon]]')
table.insert(a, '\n| timezone_DST = [[Centraleuropeisk tid|CEST]]| utc_offset_DST = +2')
if args.kommunkod and args.kommunkod ~= '' then
table.insert(a, '\n| code = ' .. args.kommunkod)
table.insert(a, '\n| code_type = [[Kommunkod (Norge)|Kommunkod]]')
elseif not args.nummer then
local data = wikidata({entity = entity, property = 'P2504', noref='noref', withintervall = 'yes', modifyqualifiertime = 'Y', conjunction = '<br/>', separator = '<br/>', rank = 'valid'})
if data and #data > 0 then
table.insert(a, '\n| code = ' .. data)
table.insert(a, '\n| code_type = [[Kommunkod (Norge)|Kommunkod]]')
end
end
local ledare = false
if args['direktör'] and args['direktör'] ~= '' then
ledare = true
table.insert(a, '\n| leader1 = ' .. args['direktör'])
table.insert(a, '\n| leader1_type = [[Kommundirektör|Kommun-/]][[Rådmann|stadsdirektör]]')
end
if args['Kommunstyrelsens ordförande'] and args['Kommunstyrelsens ordförande'] ~= '' then
ledare = true
table.insert(a, '\n| leader2 = ' .. args['fylkesordförande'])
table.insert(a, '\n| leader2_type = [[Kommunstyrelse|Kommunstyrelsens<br>ordförande]]')
elseif not args['Kommunstyrelsens ordförande'] then
local data = wikidata({entity = entity, property = 'P6', withintervall = 'yes', modifyqualifiertime = 'Y', noref = 'noimport', raw = 'true', cat = 'true'})
if data and #data > 0 then
ledare = true
if data[1].tifr then
table.insert(a, '\n| leader2 = ' .. data[1].value .. '<small> (' .. data[1].tifr .. ')</small>')
else
table.insert(a, '\n| leader2 = ' .. data[1].value )
end
if data[1].parti and data[1].parti ~= '' then
table.insert(a, '\n| leader2_party = ' .. data[1].parti)
end
table.insert(a, '\n| leader2_type = [[Kommunstyrelse|Kommunstyrelsens<br>ordförande]]')
if data[1].ref then
table.insert(a, '\n| leader2_note = ' .. data[1].ref)
end
end
end
if ledare then
table.insert(a, '\n| leader = ')
table.insert(a, '\n| leader_type = Politik')
end
local y1 = false
local y2 = false
local area = args.yta
if area and area ~= '' then
table.insert(a, "\n| area = " .. area)
if args['yta_datum'] then
table.insert(a, "\n| area_date = " .. args['yta_datum'])
end
if args['yta_ref'] then
table.insert(a, "\n| area_note = " .. args['yta_ref'])
end
if args['yta_land'] then
table.insert(a, "\n| area_land = " .. args['yta_land'])
y1 = true
if args['yta_land_datum'] then
table.insert(a, "\n| area_land_date = " .. args['yta_land_datum'])
end
if args['yta_land_ref'] then
table.insert(a, "\n| area_land_note = " .. args['yta_land_ref'])
end
end
if args['yta_vatten'] then
table.insert(a, "\n| area_water = " .. args['yta_vatten'])
if args['yta_vatten_datum'] then
table.insert(a, "\n| area_water_date = " .. args['yta_vatten_datum'])
end
if args['yta_land_ref'] then
table.insert(a, "\n| area_water_note = " .. args['yta_vatten_ref'])
end
end
elseif not area then
-- area total
local v = wikidata({entity = entity, property = "P2046", sortbytime = 'chronological', enbarten = 'yes', raw = 'true', preferqualifier ='P518', rank = 'valid', preferqualifiervalue = 'Q16868672', modifyqualifiertime = 'Y', convertunit = 'Q712226', noref='noimport'})
if not v or #v == 0 or not tonumber(plus(v[1].value)) then
-- area total, utan qualifier om ovan inte funkade
v = wikidata({entity = entity, property = "P2046", sortbytime = 'chronological', enbarten = 'yes', raw = 'true', avoidqualifier='P518', rank = 'valid', modifyqualifiertime = 'Y', convertunit = 'Q712226', noref='noimport'})
end
if v and #v > 0 and tonumber(plus(v[1].value)) then
y1 = true
table.insert(a, "\n| area = " .. tonumber(plus(v[1].amount)))
table.insert(a, "\n| area_decimals = 2")
if v[1].datum and v[1].datum ~= '' then
table.insert(a, "\n| area_date = " .. v[1].datum)
end
if v[1].ref then
table.insert(a, "\n| area_note = " .. v[1].ref)
end
end
local v2 = wikidata({entity = entity, property = "P2046", sortbytime = 'chronological', enbarten = 'yes', raw = 'true', preferqualifier ='P518', rank = 'valid', preferqualifiervalue = 'Q205895', modifyqualifiertime = 'Y', convertunit = 'Q712226', noref='true'})
local v4 = wikidata({entity = entity, property = "P2046", sortbytime = 'chronological', enbarten = 'yes', raw = 'true', preferqualifier ='P518', rank = 'valid', preferqualifiervalue = 'Q23397', convertunit = 'Q712226', noref='true', modifyqualifiertime = 'Y'}) -- insjövatten
local v5 = wikidata({entity = entity, property = "P2046", sortbytime = 'chronological', enbarten = 'yes', raw = 'true', preferqualifier ='P518', rank = 'valid', preferqualifiervalue = 'Q4022', convertunit = 'Q712226', noref='true', modifyqualifiertime = 'Y'}) -- floder
if v2 and #v2 > 0 and tonumber(plus(v2[1].value)) then
local land = tonumber(plus(v2[1].amount))
if v4 and #v4 > 0 and tonumber(plus(v4[1].value)) then
land = land - tonumber(plus(v4[1].amount))
end
if v5 and #v5 > 0 and tonumber(plus(v5[1].value)) then
land = land - tonumber(plus(v5[1].amount))
end
table.insert(a, "\n| area_land = " .. land )
y1 = true
table.insert(a, "\n| area_land_decimals = 2")
if v2[1].datum and v2[1].datum ~= '' then
table.insert(a, "\n| area_land_date = " .. v2[1].datum)
end
end
local vatten = 0
local v3 = wikidata({entity = entity, property = "P2046", sortbytime = 'chronological', enbarten = 'yes', raw = 'true', preferqualifier ='P518', rank = 'valid', preferqualifiervalue = 'Q213204', convertunit = 'Q712226', noref='true', modifyqualifiertime = 'Y'})
if v3 and #v3 > 0 and tonumber(plus(v3[1].value)) then
vatten = vatten + tonumber(plus(v3[1].amount))
end
if v4 and #v4 > 0 and tonumber(plus(v4[1].value)) then
vatten = vatten + tonumber(plus(v4[1].amount))
end
if v5 and #v5 > 0 and tonumber(plus(v5[1].value)) then
vatten = vatten + tonumber(plus(v5[1].amount))
end
if vatten > 0 then
table.insert(a, "\n| area_water = " .. vatten)
table.insert(a, "\n| area_water_decimals = 2")
if v3[1] and v3[1].datum and v4[1] and v4[1].datum and v5[1] and v5[1].datum and v3[1].datum == v4[1].datum and v3[1].datum == v5[1].datum then
table.insert(a, "\n| area_water_date = " .. v3[1].datum)
end
end
end
local inv = args['folkmängd']
if inv and inv ~= '' then
table.insert(a, "\n| population = " .. inv)
y2 = true
if args.invdatum then
table.insert(a, "\n| population_date = " .. args['folkmängd_datum'] )
end
if args.invref then
table.insert(a, "\n| population_note = " .. args['folkmängd_ref'] )
end
elseif not inv then
local v = wikidata({entity = entity, property='P1082', sortbytime = 'chronological', enbarten = 'yes', raw = 'true', avoidqualifier='P518', modifyqualifiertime = 'Y', noref='noimport'})
if v and v[1] and v[1].amount then
table.insert(a, "\n| population = " .. tonumber(plus(v[1].amount)))
y2 = true
if v[1].datum then
table.insert(a, "\n| population_date = " .. v[1].datum)
end
if v[1].ref then
table.insert(a, "\n| population_note = " .. v[1].ref)
end
end
end
if y1 and y2 then
table.insert(a, "\n| population_density = auto")
end
local residensstad = args.residensstad or args.centralort
if residensstad and residensstad ~= '' then
table.insert(a, "\n| capital = " .. residensstad)
table.insert(a, "\n| capital_type = [[Centralort]]")
elseif not residensstad then
local v = wikidata({entity = entity, property='P36', noref='true'})
if v and v ~= '' then
table.insert(a, "\n| capital = " .. v)
table.insert(a, "\n| capital_type = [[Centralort]]")
end
end
if args['målform'] and args['målform'] ~= '' then
table.insert(a, '\n| free = ' .. args['målform'])
table.insert(a, '\n| free_type = Målform')
elseif not args['målform'] then
local v = wikidata({entity = entity, property='P2936', noref = 'noimport'})
if v then
table.insert(a, '\n| free = ' .. v )
table.insert(a, '\n| free_type = Målform')
end
end
if args.geonames then
table.insert(a, '\n| geonames = ' .. args.geonames)
end
if args.karta and args.karta ~= '' then
table.insert(a, '\n| map = ' .. (args.karta or ''))
table.insert(a, '\n| map_caption = ' .. (args.karttext or 'Översiktskarta'))
elseif not args.karta then
data = wikidata({entity = entity, property = 'P1943', raw = 'true', noref='true', enbarten = 'true'})
if not data or #data == 0 then
data = wikidata({entity = entity, property = 'P242', raw = 'true', noref='true', enbarten = 'true'})
end
if data and #data > 0 then
table.insert(a, '\n| map = ' .. data[1].value)
local mapcaption = 'Översiktskarta'
if string.find(data[1].value, 'Hordaland') then
mapcaption = namn .. ' i [[Hordaland fylke]]'
end
table.insert(a, '\n| map_caption = ' .. mapcaption)
end
end
local kmlfaktaruta = require('Modul:KML faktaruta').main
local k = kmlfaktaruta(entity)
if k then
table.insert(a, '\n| KML = ' .. k)
end
if args.fotnot and args.fotnot ~= '' then
table.insert(a, '\n| footnotes = ' .. args.fotnot .. '<br />[[d:'.. entity.id .. '|Redigera Wikidata]]')
else
table.insert(a, '\n| footnotes = [[d:'.. entity.id .. '|Redigera Wikidata]]')
end
if args.commons then
table.insert(a, '\n| commons = ' .. args.commons)
else
table.insert(a, '\n| commons = ' .. Comcat(entity))
end
if args.hemsida and args.hemsida ~= '' then
table.insert(a, '\n| website = ' .. args.hemsida)
elseif not args.hemsida then
local v = wikidata({entity = entity, property = "P856", enbarten = 'yes', noref='true'})
if v and v ~= '' then
table.insert(a, '\n| website = ' .. v)
end
end
table.insert(a, '\n}}')
return mw.getCurrentFrame():preprocess(table.concat(a)) .. divkat
end
function indexera(v, i)
if v and #v >= i then
return v[i].value
end
return ''
end
function kommunqids(v)
local s = {}
for i, j in pairs(v) do
table.insert(s, v.item)
end
return s
end
function positionskartnamn(frame) -- kartbild för länet som objektet tillhör. används av till exempel mallen "Ortsfakta Sverige WD"
return mw.getCurrentFrame():preprocess('{{Kartposition Sverige '..lankod2lan(lankod(frame))..'|bild}}')
end
function positionskarta(frame) -- kartlokalisering (Geolocator) för länet som objektet tillhör. används av till exempel mallen "Ortsfakta Sverige WD"
return lankod2lan(lankod(frame))
end
function harva(entity, first, second, limit)
local s = {}
local l = wikidata({entity = entity, property = "P131", noref='true', avoidqualifier='P582', getonly=second, raw = 'true', getsimpleproperty = '15px', getproperty = 'P94', getenbarten = 'true'})
if l and #l > limit then
return {}
end
if l and #l > 0 then
return l
else
l = wikidata({entity = entity, property = "P131", noref='true', avoidqualifier='P582', getonly=first, raw = 'true', getsimpleproperty = '15px', getproperty = 'P94', getenbarten = 'true'})
if l and #l > limit then
return {}
end
local b = {}
if l then
for i3, j3 in pairs(l) do
l2 = wikidata({entityId = j3.item, property = "P131", noref='true', avoidqualifier='P582', getonly=second, raw = 'true', getsimpleproperty = '15px', getproperty = 'P94', getenbarten = 'true'})
for i, j in pairs(l2) do
local f = false
for i2, j2 in pairs(b) do
if j.item == j2.item then
f = true
end
end
if not f then
table.insert(b, j)
end
end
end
end
if #b > limit then
return {}
else
return b
end
end
return {}
end
function harva2(entity, first, second, limit)
local s = {}
local l = wikidata({entity = entity, property = "P131", noref='true', getonly=second, raw = 'true', getsimpleproperty = '15px', getproperty = 'P94', getenbarten = 'true'})
if l and #l > limit then
return {}
end
if l and #l > 0 then
return l
else
l = wikidata({entity = entity, property = "P131", noref='true', getonly=first, raw = 'true', getsimpleproperty = '15px', getproperty = 'P94', getenbarten = 'true'})
if l and #l > limit then
return {}
end
local b = {}
if l then
for i3, j3 in pairs(l) do
l2 = wikidata({entityId = j3.item, property = "P131", noref='true', getonly=second, raw = 'true', getsimpleproperty = '15px', getproperty = 'P94', getenbarten = 'true'})
for i, j in pairs(l2) do
local f = false
for i2, j2 in pairs(b) do
if j.item == j2.item then
f = true
end
end
if not f then
table.insert(b, j)
end
end
end
end
if #b > limit then
return {}
else
return b
end
end
return {}
end
function Comcat(entity)
if not entity or not entity.claims or not entity.claims.P373 then
return ''
else
if entity.claims.P373[1].mainsnak.snaktype ~= 'value' then
return ''
else
return entity.claims.P373[1].mainsnak.datavalue.value
end
end
end
function plus(a)
if string.sub(a, 1, 1) == '+' then
return string.sub(a, 2)
end
return a
end
return p