Modul:Infoboks småplanet
Hopp til navigering
Hopp til søk
- Modul:Infoboks småplanet • Modul:Infoboks småplanet/sandkasse • forskjellig (diff)
local p = {} local wiki = { langcode = mw.language.getContentLanguage().code } local getArgs = require('Modul:Arguments').getArgs local getValue = require('Modul:Sandkasse/Cocu/Wikidata').getValue local getRawValue = require('Modul:Sandkasse/Cocu/Wikidata').getRawValue local getDateValue = require('Modul:Sandkasse/Cocu/Wikidata').getDateValue local Pgname = require('Modul:String').replace local S1 = '<table class="infoboks"><tr class="hode overskrift"><th colspan="4">' local S2 = '</th></tr>' local I1 = '<tr class="bilde" valign="top"><td colspan="4" class="sentrert">' local I2 = '</td></tr>' local R1 = '<tr class="rad" valign="top"><th colspan="2" width="">' local R2 = '</th><td colspan="2" class="">' local R3 = '</td></tr>' local DR1 = '<tr class="rad" valign="top"><td colspan="4" class="center">' local DR2 = '</td></tr>' local H1 = '<tr class="overskrift" valign="top"><td colspan="4">' local H2 = '</td></tr>' function dump( out ) if type( out ) == 'table' then local s = '{ ' for k,v in pairs( out ) do if type( k ) ~= 'number' then k = '"'..k..'"' end s = s .. '['..k..'] = ' .. dump( v ) .. ',' end return s .. '} ' else return tostring( out ) end end -- SETTER SAMMEN SEKSJONENE function p.infoboks(frame) if not mw.wikibase then return "" end local artikkel = mw.wikibase.getEntityObject() if not artikkel then return "" end local claims = artikkel.claims if not claims then return "" end return p._startSection(frame) .. p._imageSection(frame) .. p._discoverySection(frame) .. p._orbitSection( frame ) .. p._physicsSection( frame ) .. p._atmosphereSection( frame ) .. p._sourceSection( frame ) .. p._nextSection( frame ) .. p._endSection( frame ) end -- DEFINERER DE ULIKE SEKSJONENE, HVORDAN DE SER UT OG HVORDAN DE FÅR INFORMASJON -- STARTSEKSJONEN function p._startSection( frame ) if frame.args['navn'] ~= "" then PgName = frame.args['navn'] else PgName = Pgname({args = {[1] = mw.title.getCurrentTitle().baseText, [2] = '%s%(.*%)', [3] = '', ['plain'] = 'false'}}) end return S1 .. PgName .. S2 end -- BILDESEKSJON -- FINNER BILDE FRA WIKIDATA OG PLASSERER DET I EN EGEN BILDERAD function p._imageSection(frame) local p18 = mw.wikibase.getEntityObject().claims.P18 if not p18 then if mw.text.trim(frame.args["bilde"]) == "" then return "[[Kategori:Artikler i astronomiprosjektet som trenger bilde]]" end end if mw.text.trim(frame.args["bilde"]) ~= "" then ImageFile = mw.text.trim(frame.args["bilde"]) else ImageFile = p18[1].mainsnak.datavalue.value end if mw.text.trim(frame.args["bildetekst"]) ~= "" then if mw.text.trim(frame.args["bilde"]) ~= "" then ImageText = '<br />' .. mw.text.trim(frame.args["bildetekst"]) else ImageText = "" end else ImageText = "" end if mw.text.trim(frame.args["bildebredde"]) ~= "" then ImageWidth = '|' .. mw.text.trim(frame.args["bildebredde"]) else ImageWidth = "" end return I1 .. '[[Fil:' .. ImageFile .. '|frameless' .. ImageWidth .. ']]' .. ImageText .. I2 end -- OPPDAGELSESSEKSJONEN -- OPPDAGER(E) function p._discoverer(frame) local discoverer = frame.args["oppdager"] local p61 = mw.wikibase.getEntityObject().claims.P61 if discoverer ~= "" and discoverer ~= nil then argDiscoverer = discoverer elseif p61 then if not mw.wikibase.label('Q' .. p61[1].mainsnak.datavalue.value["numeric-id"]) then return "" else argDiscoverer = getValue({args = {[1] = 'P61', [2] = 'hent_wikidata'}}) end else return "" end return R1 .. 'Oppdaget av' .. R2 .. argDiscoverer .. R3 end -- OPPDAGELSESSTIDSPUNKT function p._discovered(frame) local formatISOdate = require('Modul:ISOtilNorskdato').formatIsoDate local p575 = mw.wikibase.getEntityObject().claims.P575 if not p575 then if mw.text.trim(frame.args["oppdaget"]) == "" then return "" end end local discovered_value = mw.wikibase.getEntityObject().claims.P575[1].mainsnak.datavalue.value["time"] local discovered_date = string.sub(discovered_value,2,11) local year_cat = string.sub(discovered_date,1,4) local category = '[[Kategori:Himmellegemer oppdaget i ' .. year_cat .. ']]' if mw.text.trim(frame.args["oppdaget"]) ~= "" then argDiscovered = formatISOdate(mw.text.trim(frame.args["oppdaget"])) else argDiscovered = formatISOdate(discovered_date) end return R1 .. 'Oppdaget' .. R2 .. argDiscovered .. R3 .. category end -- FUNNSTED function p._location(frame) local p65 = mw.wikibase.getEntityObject().claims.P65 if p65 then if not mw.wikibase.label('Q' .. p65[1].mainsnak.datavalue.value["numeric-id"]) then if mw.text.trim(frame.args["funnsted"]) == "" then return "" end end elseif not p65 then if mw.text.trim(frame.args["funnsted"]) == "" then return "" end end if mw.text.trim(frame.args["funnsted"]) ~= "" then return R1 .. 'Oppdaget fra' .. R2 .. mw.text.trim(frame.args["funnsted"]) ..R3 else return R1 .. 'Oppdaget fra' .. R2 .. getValue({args = {[1] = 'P65', [2] = 'hent_wikidata'}}) .. R3 end end -- SMÅPLANETNAVN (KAN IKKE HENTES FRA WIKIDATA) function p._minorname(frame) if mw.text.trim(frame.args["småplanetnavn"]) == "" then return "" else return R1 .. '[[Småplanetnavn]]' .. R2 .. mw.text.trim(frame.args["småplanetnavn"]) .. R3 end end -- OVERGANGSNAVN function p._tempname(frame) local p490 = mw.wikibase.getEntityObject().claims.P490 if not p490 then if mw.text.trim(frame.args["overgangsnavn"]) == "" then return "" end end if mw.text.trim(frame.args["overgangsnavn"]) ~= "" then return R1 .. 'Overgangsnavn' .. R2 .. mw.text.trim(frame.args["overgangsnavn"]) .. R3 else return R1 .. 'Overgangsnavn' .. R2 .. getValue({args = {[1] = 'P490', [2] = 'hent_wikidata'}}) .. R3 end end -- OPPKALT function p._named(frame) local p138 = mw.wikibase.getEntityObject().claims.P138 if not p138 then if mw.text.trim(frame.args["oppkalt"]) == "" then return "" end end if mw.text.trim(frame.args["oppkalt"]) ~= "" then return R1 .. 'Oppkalt etter' .. R2 .. mw.text.trim(frame.args["oppkalt"]) .. R3 else return R1 .. 'Oppkalt etter' .. R2 .. getValue({args = {[1] = 'P138', [2] = 'hent_wikidata'}}) .. R3 end end -- OBJEKTTYPE function p._objtype(frame) local p31= mw.wikibase.getEntityObject().claims.P31 if not p31 then if mw.text.trim(frame.args["objekttype"]) == "" then return "" end end if mw.text.trim(frame.args["objekttype"]) ~= "" then return R1 .. 'Objekttype' .. R2 .. mw.text.trim(frame.args["objekttype"]) .. R3 else return R1 .. 'Objekttype' .. R2 .. getValue({args = {[1] = 'P31', [2] = 'hent_wikidata'}}) .. R3 end end -- GRUPPETILHØRIGHET function p._group(frame) local p196= mw.wikibase.getEntityObject().claims.P196 if not p196 then if mw.text.trim(frame.args["gruppe"]) == "" then return "" end end if mw.text.trim(frame.args["gruppe"]) ~= "" then argGroup = mw.text.trim(frame.args["gruppe"]) else argGroup = getValue({args = {[1] = 'P196', [2] = 'hent_wikidata'}}) end if mw.text.trim(frame.args["familie"]) ~= "" then return R1 .. '[[Smålegemer i solsystemet|Gruppe]]<br /> [[Asteroidefamilie|Familie]]' .. R2 .. argGroup .. '<br />' .. mw.text.trim(frame.args["familie"]) .. R3 elseif mw.wikibase.getEntityObject().claims.P744 then return R1 .. '[[Smålegemer i solsystemet|Gruppe]]<br /> [[Asteroidefamilie|Familie]]' .. R2 .. argGroup .. '<br />' .. getValue({args = {[1] = "P744", [2] = 'hent_wikidata'}}) .. R3 else return R1 .. '[[Smålegemer i solsystemet|Gruppe]]' .. R2 .. argGroup .. R3 end end -- SETTER SAMMEN INFORMASJONEN I OPPDAGELSESSEKSJONEN function p._discoverySection( frame ) -- ANGIR OM SEKSJONEN SKAL VISES, OG HVILKEN OVERSKRIFT SOM I TILFELLE SKAL VISES if p._discoverer(frame) ~= "" or p._discovered(frame) ~= "" or p._location(frame) ~= "" or p._tempname(frame) ~= "" or p._named(frame) ~= "" or p._objtype(frame) ~= "" or p._group(frame) then HeaderDiscovery = H1 .. 'Oppdagelse' .. mw.text.trim(frame.args["ref_oppdagelse"]) .. H2 else return "" end -- ANGIR REKKEFØLGEN I OPPDAGELSESSEKSJONEN local DiscoverySection = HeaderDiscovery .. p._discoverer(frame) .. p._discovered(frame) .. p._location(frame) .. p._minorname(frame) .. p._tempname(frame) .. p._named(frame) .. p._objtype(frame) .. p._group(frame) return DiscoverySection end -- BANESEKSJONEN -- MODERLEGEME function p._parent( frame ) local p397= mw.wikibase.getEntityObject().claims.P397 if not p397 then if mw.text.trim(frame.args["moderlegeme"]) == "" then return "" end end if mw.text.trim(frame.args["moderlegeme"]) ~= "" then return R1 .. 'Moderlegeme' .. R2 .. mw.text.trim(frame.args["moderlegeme"]) .. R3 else return R1 .. 'Moderlegeme' .. R2 .. getValue({args = {[1] = 'P397', [2] = 'hent_wikidata'}}) .. R3 end end -- SATELLITTER function p._satellites( frame ) local p398= mw.wikibase.getEntityObject().claims.P398 if not p398 then if mw.text.trim(frame.args["satellitter"]) == "" then return "" end end if mw.text.trim(frame.args["satellitter"]) ~= "" then return R1 .. '[[Naturlig satellitt|Satellitter]]' .. R2 .. mw.text.trim(frame.args["satellitter"]) .. R3 else return R1 .. '[[Naturlig satellitt|Satellitter]]' .. R2 .. getValue({args = {[1] = 'P398', [2] = 'hent_wikidata'}}) .. R3 end end -- AVSTAND function p._distance( frame ) if mw.text.trim(frame.args["avstandkm"]) and mw.text.trim(frame.args["avstandae"]) == "" then return "" end local kilometer = tonumber(149597870.691) if mw.text.trim(frame.args["avstandkm"]) ~= "" then argDistKM = mw.text.trim(frame.args["avstandkm"]) argDistAE = tonumber(argDistKm / kilometer) argDist = argDistKM .. ' [[Kilometer|km]]<br />' .. argDistAE .. ' [[Astronomisk enhet|AE]]' elseif mw.text.trim(frame.args["avstandae"]) ~= "" then argDistAE = mw.text.trim(frame.args["avstandae"]) argDistKM = tonumber(argDistAE * kilometer) argDist = argDistAE .. ' [[Astronomisk enhet|AE]]<br />' .. argDistKM .. ' [[Kilometer|km]]' end if mw.text.trim(frame.args["moderlegeme"]) then DistText = 'Avstand fra ' .. mw.text.trim(frame.args["moderlegeme"]) elseif mw.wikibase.getEntityObject().claims.P397 then DistText = 'Avstand fra ' .. getValue({args = {[1] = 'P397', [2] = 'hent_wikidata'}}) else DistText = 'Avstand fra [[solen]' end return R1 .. DistText .. R2 .. argDist .. R3 end -- APHEL function p._aphel( frame ) local p2243= mw.wikibase.getEntityObject().claims.P2243 if not p2243 then if mw.text.trim(frame.args["aphel"]) == "" then return "" end end local p2243 = getValue({args = {[1] = 'P2243', [2] = 'hent_wikidata'}}) if string.sub(p2243,-18,-1) == ' astronomisk enhet' then p2243 = string.sub(p2243,1,-19) .. ' AE' else p2243 = p2243 end if mw.text.trim(frame.args["aphel"]) ~= "" then return R1 .. '[[Aphelium]]' .. R2 .. mw.text.trim(frame.args["aphel"]) .. R3 else return R1 .. '[[Aphelium]]' .. R2 .. p2243 .. R3 end end -- PERIHEL function p._perihel( frame ) local p2244= mw.wikibase.getEntityObject().claims.P2244 if not p2244 then if mw.text.trim(frame.args["perihel"]) == "" then return "" end end local p2244 = getValue({args = {[1] = 'P2244', [2] = 'hent_wikidata'}}) if string.sub(p2244,-18,-1) == ' astronomisk enhet' then p2244 = string.sub(p2244,1,-19) .. ' AE' else p2244 = p2244 end if mw.text.trim(frame.args["perihel"]) ~= "" then return R1 .. '[[Perihelium]]' .. R2 .. mw.text.trim(frame.args["perihel"]) .. R3 else return R1 .. '[[Perihelium]]' .. R2 .. p2244 .. R3 end end -- STORE HALVAKSE function p._semimajoraxis( frame ) local p2233= mw.wikibase.getEntityObject().claims.P2233 if not p2233 then if mw.text.trim(frame.args["store halvakse"]) == "" then return "" end end local p2233 = getValue({args = {[1] = 'P2233', [2] = 'hent_wikidata'}}) if string.sub(p2233,-18,-1) == ' astronomisk enhet' then p2233 = string.sub(p2233,1,-19) .. ' AE' else p2233 = p2233 end if mw.text.trim(frame.args["store halvakse"]) ~= "" then return R1 .. '[[Store halvakse]]' .. R2 .. mw.text.trim(frame.args["store halvakse"]) .. R3 else return R1 .. '[[Store halvakse]]' .. R2 .. p2233 .. R3 end end -- EKSENTRISITET function p._eccentricity( frame ) local p1096= mw.wikibase.getEntityObject().claims.P1096 if not p1096 then if mw.text.trim(frame.args["eksentrisitet"]) == "" then return "" end end if mw.text.trim(frame.args["eksentrisitet"]) ~= "" then return R1 .. '[[Baneeksentrisitet|Eksentrisitet]]' .. R2 .. mw.text.trim(frame.args["eksentrisitet"]) ..R3 else return R1 .. '[[Baneeksentrisitet|Eksentrisitet]]' .. R2 .. getValue({args = {[1] = 'P1096', [2] = 'hent_wikidata'}}) .. R3 end end -- OMLØPSTID function p._orbitalperiod( frame ) local p2146= mw.wikibase.getEntityObject().claims.P2146 if not p2146 then if mw.text.trim(frame.args["omløpstid"]) == "" then return "" end end local p2146 = getValue({args = {[1] = 'P2146', [2] = 'hent_wikidata'}}) if string.sub(p2146,-4,-1) == ' dag' then p2146 = string.sub(p2146,1,-5) .. ' dager' else p2146 = p2146 end if mw.text.trim(frame.args["omløpstid"]) ~= "" then return R1 .. '[[Omløpstid]]' .. R2 .. mw.text.trim(frame.args["omløpstid"]) .. R3 else return R1 .. '[[Omløpstid]]' .. R2 .. p2146 .. R3 end end -- DRAKONISK function p._draconiticperiod( frame ) if mw.text.trim(frame.args["omløpstid"]) ~= "" then if mw.text.trim(frame.args["drakonisk"]) ~= "" then return R1 .. ' ([[Omløpstid|drakonisk]])' .. R2 .. mw.text.trim(frame.args["drakonisk"]) ..R3 else return "" end else return "" end end -- TROPISK function p._tropicalperiod( frame ) if mw.text.trim(frame.args["omløpstid"]) ~= "" then if mw.text.trim(frame.args["tropisk"]) ~= "" then return R1 .. ' ([[Omløpstid|tropisk]])' .. R2 .. mw.text.trim(frame.args["tropisk"]) .. R3 else return "" end else return "" end end -- SYNODISK function p._synodicalperiod( frame ) if mw.text.trim(frame.args["synodisk"]) ~= "" then return R1 .. '([[Omløpstid|Synodisk omløpstid]])' .. R2 .. mw.text.trim(frame.args["synodisk"]) .. R3 else return "" end end -- SIDERISK OMLØP function p._siderealperiod( frame ) if mw.text.trim(frame.args["siderisk"]) ~= "" then return R1 .. '([[Omløpstid|Siderisk omløpstid]])' .. R2 .. mw.text.trim(frame.args["siderisk"]) .. R3 else return "" end end -- GJENNOMSNITTSFART function p._avgspeed( frame ) if mw.text.trim(frame.args["gjennomsnittsfart"]) ~= "" then argAvgSpeed = mw.text.trim(frame.args["gjennomsnittsfart"]) else return "" end if mw.text.trim(frame.args["gjennomsnittsfart_enhet"]) ~= "" then argAvgSpeed = argAvgSpeed .. ' ' .. mw.text.trim(frame.args["gjennomsnittsfart_enhet"]) else argAvgSpeed = argAvgSpeed .. ' km/s' end return R1 .. 'Gjennomsnittlig banefart' .. R2 .. argAvgSpeed .. R3 end -- ANOMALISTISK function p._anomaly( frame ) local p2325 = mw.wikibase.getEntityObject().claims.P2325 if not p2325 then if mw.text.trim(frame.args["anomalistisk"]) == "" then return "" end end local p2325 = getValue({args = {[1] = 'P2325', [2] = 'hent_wikidata'}}) if string.sub(p2325,-5,-1) == ' grad' then p2325 = string.sub(p2325,1,-6) .. '°' else p2325 = p2325 end --if frame.args["midlere_anomali"] ~= nil and mw.text.trim(frame.args["midlere_anomali"]) ~= "" then if mw.text.trim(frame.args["anomalistisk"]) ~= "" then return R1 .. '[[Midlere anomali|Midlere anomali]]' .. R2 .. mw.text.trim(frame.args["anomalistisk"]) .. '°' .. R3 else return R1 .. '[[Midlere anomali|Midlere anomali]]' .. R2 .. p2325 .. R3 end end -- INKLINASJON function p._inclination( frame ) local p2045 = mw.wikibase.getEntityObject().claims.P2045 if not p2045 then if mw.text.trim(frame.args["inklinasjon"]) == "" then return "" end end local p2045 = getValue({args = {[1] = 'P2045', [2] = 'hent_wikidata'}}) if string.sub(p2045,-5,-1) == ' grad' then p2045 = string.sub(p2045,1,-6) .. '°' else p2045 = p2045 end if mw.text.trim(frame.args["inklinasjon"]) ~= "" then return R1 .. '[[Inklinasjon]]' .. R2 .. mw.text.trim(frame.args["inklinasjon"]) .. '°' .. R3 else return R1 .. '[[Inklinasjon]]' .. R2 .. p2045 .. R3 end end -- BANEPLANKNUTE function p._ascendingnode( frame ) local p2213 = mw.wikibase.getEntityObject().claims.P2213 if not p2213 then if mw.text.trim(frame.args["baneplanknute"]) == "" then return "" end end local p2213 = getValue({args = {[1] = 'P2213', [2] = 'hent_wikidata'}}) if string.sub(p2213,-5,-1) == ' grad' then p2213 = string.sub(p2213,1,-6) .. '°' else p2213 = p2213 end if mw.text.trim(frame.args["baneplanknute"]) ~= "" then return R1 .. '[[Baneplanknute|Lengden til oppstigende knute]]' .. R2 .. mw.text.trim(frame.args["baneplanknute"]) .. '°' .. R3 else return R1 .. '[[Baneplanknute|Lengden til oppstigende knute]]' .. R2 .. p2213 .. R3 end end -- PERIHELARGUMENT function p._perihelargument( frame ) local p2248 = mw.wikibase.getEntityObject().claims.P2248 if not p2248 then if mw.text.trim(frame.args["perihelargument"]) == "" then return "" end end local p2248 = getValue({args = {[1] = 'P2248', [2] = 'hent_wikidata'}}) if string.sub(p2248,-5,-1) == ' grad' then p2248 = string.sub(p2248,1,-6) .. '°' else p2248 = p2248 end if mw.text.trim(frame.args["perihelargument"]) ~= "" then return R1 .. '[[Perihelargument]]' .. R2 .. mw.text.trim(frame.args["perihelargument"]) .. '°' .. R3 else return R1 .. '[[Perihelargument]]' .. R2 .. p2248 .. R3 end end -- BANEDIAGRAM -- FINNER BILDE FRA WIKIDATA OG PLASSERER DET I EN EGEN BILDERAD function p._orbitdiagram(frame) local p491= mw.wikibase.getEntityObject().claims.P491 if not p491 then if mw.text.trim(frame.args["banediagram"]) == "" then return "" end end if mw.text.trim(frame.args["banediagram"]) ~= "" then OrbitDiagram = mw.text.trim(frame.args["banediagram"]) else OrbitDiagram = p491[1].mainsnak.datavalue.value end return I1 .. '[[Fil:' .. OrbitDiagram .. '|frameless]]' .. I2 end -- EPOKE function p._epoch( frame ) if mw.text.trim(frame.args["epoke"]) ~= "" then return '<br /><small>[[Epoke (astronomi)|Epoke]] ' .. mw.text.trim(frame.args["epoke"]) .. '</small>' else return "" end end -- SETTER SAMMEN INFORMASJONEN I BANESEKSJONEN function p._orbitSection( frame ) -- ANGIR OM SEKSJONEN SKAL VISES, OG HVILKEN OVERSKRIFT SOM I TILFELLE SKAL VISES if p._parent(frame) ~= "" or p._satellites(frame) ~= "" or p._distance(frame) ~= "" or p._aphel( frame ) ~= "" or p._perihel( frame ) ~= "" or p._semimajoraxis( frame ) ~= "" or p._eccentricity( frame ) ~= "" or p._orbitalperiod( frame ) ~= "" or p._draconiticperiod( frame ) ~= "" or p._tropicalperiod( frame ) ~= "" or p._synodicalperiod( frame ) ~= "" or p._siderealperiod( frame ) ~= "" or p._avgspeed( frame ) ~= "" or p._anomaly( frame ) ~= "" or p._inclination( frame ) ~= "" or p._ascendingnode( frame ) ~= "" or p._perihelargument( frame ) ~= "" or p._orbitdiagram( frame ) ~= "" then HeaderOrbit = H1 .. '[[Bane]]egenskaper' .. mw.text.trim(frame.args["bane_ref"]) .. p._epoch( frame ) .. H2 else return "" end -- ANGIR REKKEFØLGEN I BANESEKSJONEN local OrbitSection = HeaderOrbit .. p._parent(frame) .. p._satellites(frame) .. p._distance(frame) .. p._aphel( frame ) .. p._perihel( frame ) .. p._semimajoraxis( frame ) .. p._eccentricity( frame ) .. p._orbitalperiod( frame ) .. p._draconiticperiod( frame ) .. p._tropicalperiod( frame ) .. p._synodicalperiod (frame ) .. p._siderealperiod( frame ) .. p._avgspeed( frame ) .. p._anomaly( frame ) .. p._inclination( frame ) .. p._ascendingnode( frame ) .. p._perihelargument( frame ) .. p._orbitdiagram( frame ) return OrbitSection end -- FYSIKKSEKSJONEN -- DIMENSJONER function p._dimensions( frame ) if mw.text.trim(frame.args["dimensjoner"]) == "" then return "" elseif mw.text.trim(frame.args["dimensjoner"]) ~= "" then argDimension = mw.text.trim(frame.args["dimensjoner"]) end if mw.text.trim(frame.args["dimensjoner_ref"]) ~= "" then argDimension = argDimension .. mw.text.trim(frame.args["dimensjoner_ref"]) end return R1 .. 'Dimensjoner' .. R2 .. argDimension .. R3 end -- GJENNOMSNITTSDIAMETER function p._avgdiameter( frame ) if mw.text.trim(frame.args["gjennomsnittsdiameter"]) == "" then return "" else return R1 .. 'Gjennomsnittlig diameter' .. R2 .. mw.text.trim(frame.args["gjennomsnittsdiameter"]) .. ' km' .. R3 end end -- GJENNOMSNITTSRADIUS function p._avgradius( frame ) if mw.text.trim(frame.args["gjennomsnittsradius"]) == "" then return "" else return R1 .. 'Gjennomsnittlig radius' .. R2 .. mw.text.trim(frame.args["gjennomsnittsradius"]) .. ' km' .. R3 end end -- EKVATORDIAMETER function p._equatordiameter( frame ) if mw.text.trim(frame.args["ekvatordiameter"]) == "" then return "" else return R1 .. 'Ekvatordiameter' .. R2 .. mw.text.trim(frame.args["ekvatordiameter"]) .. ' km' .. R3 end end -- EKVATORRADIUS function p._equatorradius( frame ) if mw.text.trim(frame.args["ekvatorradius"]) == "" then return "" else return R1 .. 'Ekvatorradius' .. R2 .. mw.text.trim(frame.args["ekvatorradius"]) .. ' km' .. R3 end end -- POLDIAMETER function p._polardiameter( frame ) if mw.text.trim(frame.args["poldiameter"]) == "" then return "" else return R1 .. 'Poldiameter' .. R2 .. mw.text.trim(frame.args["poldiameter"]) .. ' km' .. R3 end end -- POLRADIUS function p._polarradius( frame ) if mw.text.trim(frame.args["polradius"]) == "" then return "" else return R1 .. 'Polradius' .. R2 .. mw.text.trim(frame.args["polradius"]) .. ' km' .. R3 end end -- FLATTRYKTHET function p._flattening( frame ) local p1102= mw.wikibase.getEntityObject().claims.P1102 if not p1102 then if mw.text.trim(frame.args["flattrykthet"]) == "" then return "" end end if mw.text.trim(frame.args["flattrykthet"]) ~= "" then return R1 .. '[[Flattrykthet]]' .. R2 .. mw.text.trim(frame.args["flattrykthet"]) .. R3 else return R1 .. '[[Flattrykthet]]' .. R2 .. getValue({args = {[1] = 'P1102', [2] = 'hent_wikidata'}}) .. R3 end end -- OVERFLATEAREAL function p._surfacearea( frame ) if mw.text.trim(frame.args["overflateareal"]) == "" then return "" else return R1 .. 'Overflatens [[areal]]' .. R2 .. mw.text.trim(frame.args["overflateareal"]) .. ' [[Kvadratkilometer|km²]]' .. R3 end end -- VOLUM function p._volume( frame ) if mw.text.trim(frame.args["volum"]) == "" then return "" else return R1 .. '[[Volum]]' .. R2 .. mw.text.trim(frame.args["volum"]) .. ' [[kubikkilometer|km³]]' .. R3 end end -- MASSE function p._mass( frame ) local p2067= mw.wikibase.getEntityObject().claims.P2067 if not p2067 then if mw.text.trim(frame.args["masse"]) == "" then return "" end end if mw.text.trim(frame.args["masse"]) ~= "" then return R1 .. '[[Masse]]' .. R2 .. mw.text.trim(frame.args["masse"]) ..R3 else return R1 .. '[[Masse]]' .. R2 .. getValue({args = {[1] = 'P2067', [2] = 'hent_wikidata'}}) .. R3 end end -- TETTHET function p._density( frame ) if mw.text.trim(frame.args["tetthet"]) == "" then return "" else return R1 .. '[[Tetthet|Middeltetthet]]' .. R2 .. mw.text.trim(frame.args["tetthet"]) .. ' g/cm³' .. R3 end end -- GRAVITASJON function p._gravity( frame ) if mw.text.trim(frame.args["gravitasjon"]) ~= "" then argGravity = mw.text.trim(frame.args["gravitasjon"]) else return "" end if mw.text.trim(frame.args["gravitasjon_enhet"]) ~= "" then argGravity = argGravity .. ' ' .. mw.text.trim(frame.args["gravitasjon_enhet"]) else argGravity = argGravity .. ' m/s²' end return R1 .. '[[Tyngdekraft|Gravitasjon]] ved ekvator' .. R2 .. argGravity .. R3 end -- UNNSLIPNINGSHASTIGHET function p._escapevelocity( frame ) if mw.text.trim(frame.args["unnslipningshastighet"]) == "" then return "" else return R1 .. '[[Unnslipningshastighet]]' .. R2 .. mw.text.trim(frame.args["unnslipningshastighet"]) .. ' km/s' .. R3 end end -- ROTASJON function p._rotation( frame ) if mw.text.trim(frame.args["rotasjon"]) == "" then return "" else return R1 .. '[[Rotasjonsperiode]]' .. R2 .. mw.text.trim(frame.args["rotasjon"]) .. mw.text.trim(frame.args["rotasjon_ref"]) .. R3 end end -- SIDERISK ROTASJON function p._siderealrotation( frame ) if mw.text.trim(frame.args["siderisk_rot"]) == "" then return "" else return R1 .. '[[Rotasjonsperiode|Sidersik rotasjonsperiode]]' .. R2 .. mw.text.trim(frame.args["siderisk_rot"]) .. R3 end end -- ROTASJONSHASTIGHET function p._rotationvelocity( frame ) if mw.text.trim(frame.args["rotasjonshastighet"]) == "" then return "" else return R1 .. 'Rotasjonshastighet ved ekvator' .. R2 .. mw.text.trim(frame.args["rotasjonshastighet"]) .. R3 end end -- REKTASCENSJON function p._rightasc( frame ) if mw.text.trim(frame.args["rektascensjon"]) == "" then return "" else return R1 .. '[[Rektascensjon]] ved nordpolen' .. R2 .. mw.text.trim(frame.args["rektascensjon"]) .. R3 end end -- AKSEHELNING function p._axialtilt( frame ) if mw.text.trim(frame.args["aksehelning"]) == "" then return "" else return R1 .. '[[Aksehelning]]' .. R2 .. mw.text.trim(frame.args["aksehelning"]) .. '°' .. R3 end end -- OVERFLATEREFLEKSJON function p._albedo( frame ) if mw.text.trim(frame.args["albedo"]) == "" then return "" else return R1 .. '[[Albedo|Overflaterefleksjon]]' .. R2 .. mw.text.trim(frame.args["albedo"]) .. R3 end end -- TEMPERATURER function p._surfacetemperature( frame ) if mw.text.trim(frame.args["tempnavn1"]) == "" and mw.text.trim(frame.args["tempnavn2"]) == "" and mw.text.trim(frame.args["tempnavn3"]) == "" and mw.text.trim(frame.args["tempnavn4"]) == "" then return "" end if mw.text.trim(frame.args["tempnavn1"]) == "" then argMintemp1 = "" argSnittemp1 = "" argMaxtemp1 = "" tempRow1 = "" argTemp1 = "" else argTemp1 = '<br /><div style="float: right; font-size:smaller;">' .. mw.text.trim(frame.args["tempnavn1"]) .. ': </div>' if mw.text.trim(frame.args["mintemp1"]) == "" then argMintemp1 = '<div style="float: left; font-size:smaller; text-align:center;">–</div>' else argMintemp1 = '<div style="float: left; font-size:smaller; text-align:center;">' .. mw.text.trim(frame.args["mintemp1"]) .. '</div>' end if mw.text.trim(frame.args["snittemp1"]) == "" then argSnittemp1 = '<small>–</small>' else argSnittemp1 = mw.text.trim(frame.args["snittemp1"]) end if mw.text.trim(frame.args["maxtemp1"]) == "" then argMaxtemp1 = '<div style="float: right; font-size:smaller; text-align:center;">–</div>' else argMaxtemp1 = '<div style="float: right; font-size:smaller; text-align:center;">' .. mw.text.trim(frame.args["maxtemp1"]) .. '</div>' end end if mw.text.trim(frame.args["tempnavn2"]) == "" then argMintemp2 = "" argSnittemp2 = "" argMaxtemp2 = "" tempRow2 = "" argTemp2 = "" else argTemp2 = '<br /><div style="float: right; font-size:smaller;">' .. mw.text.trim(frame.args["tempnavn2"]) .. ': </div>' if mw.text.trim(frame.args["mintemp2"]) == "" then argMintemp2 = '<div style="text-align:center; font-size:smaller;"><div style="float: left;">–</div>' else argMintemp2 = '<div style="text-align:center;"><div style="float: left;">' .. mw.text.trim(frame.args["mintemp2"]) .. '</div>' end if mw.text.trim(frame.args["snittemp2"]) == "" then argSnittemp2 = '–' else argSnittemp2 = mw.text.trim(frame.args["snittemp2"]) end if mw.text.trim(frame.args["maxtemp2"]) == "" then argMaxtemp2 = '<div style="float: right;">–</div></div>' else argMaxtemp2 = '<div style="float: right;">' .. mw.text.trim(frame.args["maxtemp2"]) .. '</div></div>' end end if mw.text.trim(frame.args["tempnavn3"]) == "" then argMintemp3 = "" argSnittemp3 = "" argMaxtemp3 = "" tempRow3 = "" argTemp3= "" else argTemp3 = '<br /><div style="float: right; font-size:smaller;">' .. mw.text.trim(frame.args["tempnavn3"]) .. ': </div>' if mw.text.trim(frame.args["mintemp3"]) == "" then argMintemp3 = '<div style="text-align:center; font-size:smaller;"><div style="float: left;">–</div>' else argMintemp3 = '<div style="text-align:center;"><div style="float: left;">' .. mw.text.trim(frame.args["mintemp3"]) .. '</div>' end if mw.text.trim(frame.args["snittemp3"]) == "" then argSnittemp3 = '–' else argSnittemp3 = mw.text.trim(frame.args["snittemp3"]) end if mw.text.trim(frame.args["maxtemp3"]) == "" then argMaxtemp3 = '<div style="float: right;">–</div></div>' else argMaxtemp3 = '<div style="float: right;">' .. mw.text.trim(frame.args["maxtemp3"]) .. '</div></div>' end end if mw.text.trim(frame.args["tempnavn4"]) == "" then argMintemp4 = "" argSnittemp4 = "" argMaxtemp4 = "" tempRow4 = "" argTemp4= "" else argTemp4 = '<br /><div style="float: right; font-size:smaller;">' .. mw.text.trim(frame.args["tempnavn4"]) .. ': </div>' if mw.text.trim(frame.args["mintemp4"]) == "" then argMintemp4 = '<div style="text-align:center; font-size:smaller;"><div style="float: left;">–</div>' else argMintemp4 = '<div style="text-align:center;"><div style="float: left;">' .. mw.text.trim(frame.args["mintemp4"]) .. '</div>' end if mw.text.trim(frame.args["snittemp4"]) == "" then argSnittemp4 = '–' else argSnittemp4 = mw.text.trim(frame.args["snittemp4"]) end if mw.text.trim(frame.args["maxtemp4"]) == "" then argMaxtemp4 = '<div style="float: right;">–</div></div>' else argMaxtemp4 = '<div style="float: right;">' .. mw.text.trim(frame.args["maxtemp4"]) .. '</div></div>' end end local tempHeader = '<div style="text-align:center; font-size:smaller;"><div style="float: left;">min.</div>snitt<div style="float: right;">max</div></div>' local tempRow1 = argMintemp1 .. argSnittemp1 .. argMaxtemp1 local tempRow2 = argMintemp2 .. argSnittemp2 .. argMaxtemp2 local tempRow3 = argMintemp3 .. argSnittemp3 .. argMaxtemp3 local tempRow4 = argMintemp4 .. argSnittemp4 .. argMaxtemp4 return R1 .. '[[Temperatur|Overflatetemperatur]]' .. argTemp1 .. argTemp2 .. argTemp3 .. R2 .. tempHeader .. tempRow1 .. tempRow2 .. tempRow3 .. tempRow4 .. R3 end -- ENKELTTEMPERATUR function p._singletemp( frame ) if mw.text.trim(frame.args["enkelttemperatur"]) == "" then return "" else return R1 .. '[[Temperatur]]' .. R2 .. mw.text.trim(frame.args["enkelttemperatur"]) .. R3 end end -- SPEKTRALKLASSE function p._spectralclass( frame ) local p215= mw.wikibase.getEntityObject().claims.P215 if not p215 then if mw.text.trim(frame.args["spektralklasse"]) == "" then return "" end end if mw.text.trim(frame.args["spektralklasse"]) ~= "" then return R1 .. '[[Asteroidespektralklasser|Spektralklasse]]' .. R2 .. mw.text.trim(frame.args["spektralklasse"]) .. R3 else return R1 .. '[[Asteroidespektralklasser|Spektralklasse]]' .. R2 .. getValue({args = {[1] = 'P215', [2] = 'hent_wikidata'}}) .. R3 end end -- VISMAG_V function p._vismagv( frame ) local p1215= mw.wikibase.getEntityObject().claims.P1215 if not p1215 then if mw.text.trim(frame.args["vismag_v"]) == "" then return "" end end if mw.text.trim(frame.args["vismag_v"]) ~= "" then return R1 .. '[[Tilsynelatende størrelsesklasse]]' .. R2 .. mw.text.trim(frame.args["vismag_v"]) .. R3 else return R1 .. '[[Tilsynelatende størrelsesklasse]]' .. R2 .. getValue({args = {[1] = 'P1215', [2] = 'hent_wikidata'}}) .. R3 end end -- ABS_MAG function p._absmag( frame ) local p1457= mw.wikibase.getEntityObject().claims.P1457 if not p1457 then if mw.text.trim(frame.args["abs_mag"]) == "" then return "" end end if mw.text.trim(frame.args["abs_mag"]) ~= "" then return R1 .. '[[Absolutt størrelsesklasse]] (MV)' .. R2 .. mw.text.trim(frame.args["abs_mag"]) .. R3 else return R1 .. '[[Absolutt størrelsesklasse]] (MV)' .. R2 .. getValue({args = {[1] = 'P1457', [2] = 'hent_wikidata'}}) .. R3 end end -- VINKELDIAMETER function p._aungularsize( frame ) if mw.text.trim(frame.args["vinkeldiameter"]) == "" then return "" else return R1 .. '[[Vinkeldiameter]]' .. R2 .. mw.text.trim(frame.args["vinkeldiameter"]) .. R3 end end -- SETTER SAMMEN INFORMASJONEN I FYSIKKSEKSJONEN function p._physicsSection( frame ) -- ANGIR OM SEKSJONEN SKAL VISES, OG HVILKEN OVERSKRIFT SOM I TILFELLE SKAL VISES if p._dimensions( frame ) ~= "" or p._avgdiameter( frame ) ~= "" or p._avgradius( frame ) ~= "" or p._equatordiameter( frame ) ~= "" or p._equatorradius( frame ) ~= "" or p._polardiameter( frame ) ~= "" or p._polarradius( frame ) ~= "" or p._flattening( frame ) ~= "" or p._surfacearea( frame ) ~= "" or p._volume( frame ) ~= "" or p._mass( frame ) ~= "" or p._density( frame ) ~= "" or p._gravity( frame ) ~= "" or p._escapevelocity( frame ) ~= "" or p._rotation( frame ) ~= "" or p._siderealrotation( frame ) ~= "" or p._rotationvelocity( frame ) ~= "" or p._rightasc( frame ) ~= "" or p._axialtilt( frame ) ~= "" or p._albedo( frame ) ~= "" or p._surfacetemperature( frame ) ~= "" or p._singletemp( frame ) ~= "" or p._spectralclass( frame ) ~= "" or p._vismagv( frame ) ~= "" or p._absmag( frame ) ~= "" or p._aungularsize( frame ) ~= "" then HeaderPhysics = H1 .. 'Fysiske egenskaper' .. H2 else return "" end return HeaderPhysics .. p._dimensions(frame) .. p._avgdiameter( frame ) .. p._avgradius( frame ) .. p._equatordiameter( frame ) .. p._equatorradius( frame ) .. p._polardiameter( frame ) .. p._polarradius( frame ) .. p._flattening( frame ) .. p._surfacearea( frame ) .. p._volume( frame ) .. p._mass( frame ) .. p._density( frame ) .. p._gravity( frame ) .. p._escapevelocity( frame ) .. p._rotation( frame ) .. p._siderealrotation( frame ) .. p._rotationvelocity( frame ) .. p._rightasc( frame ) .. p._axialtilt( frame ) .. p._albedo( frame ) .. p._surfacetemperature( frame ) .. p._singletemp( frame ) .. p._spectralclass( frame ) .. p._vismagv( frame ) .. p._absmag( frame ) .. p._aungularsize( frame ) end -- ATMOSFÆRESEKSJONEN -- SKALAHØYDE function p._scalehight( frame ) if mw.text.trim(frame.args["skalahøyde"]) == "" then return "" else return R1 .. '[[Skalahøyde]]' .. R2 .. mw.text.trim(frame.args["skalahøyde"]) .. R3 end end -- TRYKK function p._pressure( frame ) if mw.text.trim(frame.args["trykk"]) == "" then return "" else return R1 .. '[[Atmosfærisk trykk]]' .. R2 .. mw.text.trim(frame.args["trykk"]) .. ' [[Pascal (enhet)|Pascal]]' .. R3 end end -- ATMOSFÆRISK SAMMENSETNING function p._atmcomposition( frame ) if mw.text.trim(frame.args["sammensetning"]) == "" then return "" else return R1 .. 'Sammensetning' .. R2 .. mw.text.trim(frame.args["sammensetning"]) .. R3 end end -- SETTER SAMMEN INFORMASJONEN I ATMOSFÆRESEKSJONEN function p._atmosphereSection( frame ) -- ANGIR OM SEKSJONEN SKAL VISES, OG HVILKEN OVERSKRIFT SOM I TILFELLE SKAL VISES if p._scalehight( frame ) ~= "" or p._pressure( frame ) ~= "" or p._atmcomposition( frame ) ~= "" then HeaderAtmosphere = H1 .. 'Atmosfæriske egenskaper' .. mw.text.trim(frame.args["atmosfære_ref"]) .. H2 else return "" end return HeaderAtmosphere .. p._scalehight( frame ) .. p._pressure( frame ) .. p._atmcomposition( frame ) end -- KILDESEKSJONEN -- JPL-DATA function p._JPLid( frame ) local p716= mw.wikibase.getEntityObject().claims.P716 if not p716 then if mw.text.trim(frame.args["JPL-id"]) == "" then return "" end end if mw.text.trim(frame.args["JPL-id"]) ~= "" then argJPLid = mw.text.trim(frame.args["JPL-id"]) else argJPLid = getValue({args = {[1] = 'P716', [2] = 'hent_wikidata'}}) end return R1 .. '[[Jet Propulsion Laboratory|JPL-id]]' .. R2 .. '[http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=' .. argJPLid .. ' lenke]' .. R3 end -- SETTER SAMMEN INFORMASJONEN I KILDESEKSJONEN function p._sourceSection( frame ) -- ANGIR OM SEKSJONEN SKAL VISES, OG HVILKEN OVERSKRIFT SOM I TILFELLE SKAL VISES if p._JPLid(frame) ~= "" then HeaderSource = H1 .. 'Kilder' .. H2 else HeaderSource = "" end -- ANGIR REKKEFØLGEN I OPPDAGELSESSEKSJONEN local SourceSection = HeaderSource .. p._JPLid(frame) return SourceSection end -- NESTE-SEKSJONEN -- FORRIGE function p._previous( frame ) local p155 = mw.wikibase.getEntityObject().claims.P155 if not p155 then return "" else return getValue({args = {[1] = 'P155', [2] = 'hent_wikidata'}}) end end -- NESTE function p._next( frame ) local p156 = mw.wikibase.getEntityObject().claims.P156 if not p156 then return "" else return getValue({args = {[1] = 'P156', [2] = 'hent_wikidata'}}) end end -- SETTER SAMMEN INFORMASJONEN I NESTESEKSJONEN function p._nextSection( frame ) if p._previous(frame) ~= "" and p._next(frame) == "" then return '<tr valign="top" class="rad"><td colspan="4"><hr>' .. '<div class="sentrert">' .. '← Forrige<br />' .. p._previous(frame) .. '</div></td></tr>' elseif p._previous(frame) == "" and p._next(frame) ~= "" then return '<tr valign="top" class="rad"><td colspan="4"><hr>' .. '<div class="sentrert">' .. 'Neste →<br />' .. p._next(frame) .. '</div></td></tr>' elseif p._previous(frame) ~= "" and p._next(frame) ~= "" then return '<tr valign="top" class="rad"><td colspan="4"><hr>' .. '<div class="sentrert">' .. '← Forrige – Neste →<br />' .. p._previous(frame) .. ' – ' .. p._next(frame) .. '</div></td></tr>' else return "" end end -- SLUTTSEKSJONEN -- COMMONSKATEGORI function p._comcat( frame ) local p373= mw.wikibase.getEntityObject().claims.P373 if not p373 then if mw.text.trim(frame.args["comcat"]) == "" then return "" end end if mw.text.trim(frame.args["comcat"]) ~= "" then argComCat = mw.text.trim(frame.args["comcat"]) else argComCat = getValue({args = {[1] = 'P373', [2] = 'hent_wikidata'}}) end if frame.args['navn'] ~= "" then PgName = frame.args['navn'] else PgName = Pgname({args = {[1] = mw.title.getCurrentTitle().baseText, [2] = '%s%(.*%)', [3] = '', ['plain'] = 'false'}}) end return '<div class="sentrert nowrap">[[:commons:' .. argComCat .. '|' .. PgName .. ' på Commons]]</div>' end -- SLUTTKOMMENTAR function p._endcomment( frame ) return "" --'<div class="sentrert"><small>Deler av informasjonen i infoboksen er hentet fra [[Wikidata]].</small></div>' end -- SETTER SAMMEN INFORMASJONEN I SLUTTSEKSJONEN function p._endSection( frame ) endSectionStart = '<tr class="skjult"><td></td><td></td><td></td><td></td></tr>' endSectionEnd = '</td></tr></table>' if p._comcat(frame) or p._endcomment(frame) ~= "" then endSectionMiddle = '<tr valign="top" class="rad"><td colspan="4"><hr>' else endSectionMiddle = "" end return endSectionStart .. endSectionMiddle .. p._comcat(frame) .. p._endcomment(frame) .. endSectionEnd end return p