<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FRexxS%2FImageLegend</id>
	<title>Module:Sandbox/RexxS/ImageLegend - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FRexxS%2FImageLegend"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/RexxS/ImageLegend&amp;action=history"/>
	<updated>2026-05-24T03:21:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/RexxS/ImageLegend&amp;diff=146086&amp;oldid=prev</id>
		<title>imported&gt;RexxS: ranks now implemented</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/RexxS/ImageLegend&amp;diff=146086&amp;oldid=prev"/>
		<updated>2016-05-16T17:03:11Z</updated>

		<summary type="html">&lt;p&gt;ranks now implemented&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
This is used to return an image legend from Wikidata&lt;br /&gt;
image is property P18&lt;br /&gt;
image legend is property P2096&lt;br /&gt;
&lt;br /&gt;
Call as {{#invoke:Sandbox/RexxS/ImageLegend |getImageLegend | PARAMETER | lang=&amp;lt;ISO-639code&amp;gt; |id=&amp;lt;QID&amp;gt;}}&lt;br /&gt;
Returns PARAMETER, unless it is equal to &amp;quot;FETCH_WIKIDATA&amp;quot; from Item QID (expensive call)&lt;br /&gt;
If QID is omitted or blank, the current article is used (not expensive call)&lt;br /&gt;
If lang is omitted, it uses the local wiki language, otherwise it uses the provided ISO-639 language code&lt;br /&gt;
ISO-639: https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html#wp1252447&lt;br /&gt;
&lt;br /&gt;
Ranks are: &amp;#039;preferred&amp;#039; &amp;gt; &amp;#039;normal&amp;#039;&lt;br /&gt;
This returns the label from the first image with &amp;#039;preferred&amp;#039; rank&lt;br /&gt;
Or the label from the first image with &amp;#039;normal&amp;#039; rank if preferred returns nothing&lt;br /&gt;
Ranks: https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua&lt;br /&gt;
&lt;br /&gt;
In South Pole Telescope, the structure of P18 is:&lt;br /&gt;
    [&amp;quot;P18&amp;quot;] = table#26 {&lt;br /&gt;
      table#27 {&lt;br /&gt;
        [&amp;quot;id&amp;quot;] = &amp;quot;Q1513315$bc122c22-4da5-8301-9d2f-8a5eb415e9e8&amp;quot;,&lt;br /&gt;
        [&amp;quot;mainsnak&amp;quot;] = table#28 {&lt;br /&gt;
          [&amp;quot;datatype&amp;quot;] = &amp;quot;commonsMedia&amp;quot;,&lt;br /&gt;
          [&amp;quot;datavalue&amp;quot;] = table#29 {&lt;br /&gt;
            [&amp;quot;type&amp;quot;] = &amp;quot;string&amp;quot;,&lt;br /&gt;
            [&amp;quot;value&amp;quot;] = &amp;quot;South pole telescope nov2009.jpg&amp;quot;,&lt;br /&gt;
          },&lt;br /&gt;
          [&amp;quot;property&amp;quot;] = &amp;quot;P18&amp;quot;,&lt;br /&gt;
          [&amp;quot;snaktype&amp;quot;] = &amp;quot;value&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        [&amp;quot;qualifiers&amp;quot;] = table#30 {&lt;br /&gt;
          [&amp;quot;P2096&amp;quot;] = table#31 {&lt;br /&gt;
            table#32 {&lt;br /&gt;
              [&amp;quot;datatype&amp;quot;] = &amp;quot;monolingualtext&amp;quot;,&lt;br /&gt;
              [&amp;quot;datavalue&amp;quot;] = table#33 {&lt;br /&gt;
                [&amp;quot;type&amp;quot;] = &amp;quot;monolingualtext&amp;quot;,&lt;br /&gt;
                [&amp;quot;value&amp;quot;] = table#34 {&lt;br /&gt;
                  [&amp;quot;language&amp;quot;] = &amp;quot;en&amp;quot;,&lt;br /&gt;
                  [&amp;quot;text&amp;quot;] = &amp;quot;The South Pole Telescope in November 2009&amp;quot;,&lt;br /&gt;
                },&lt;br /&gt;
              },&lt;br /&gt;
              [&amp;quot;hash&amp;quot;] = &amp;quot;6d87da1d793aa25eed516953ef8ad15e9b030d12&amp;quot;,&lt;br /&gt;
              [&amp;quot;property&amp;quot;] = &amp;quot;P2096&amp;quot;,&lt;br /&gt;
              [&amp;quot;snaktype&amp;quot;] = &amp;quot;value&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            table#35 {&lt;br /&gt;
              [&amp;quot;datatype&amp;quot;] = &amp;quot;monolingualtext&amp;quot;,&lt;br /&gt;
              [&amp;quot;datavalue&amp;quot;] = table#36 {&lt;br /&gt;
                [&amp;quot;type&amp;quot;] = &amp;quot;monolingualtext&amp;quot;,&lt;br /&gt;
                [&amp;quot;value&amp;quot;] = table#37 {&lt;br /&gt;
                  [&amp;quot;language&amp;quot;] = &amp;quot;lt&amp;quot;,&lt;br /&gt;
                  [&amp;quot;text&amp;quot;] = &amp;quot;Pietų ašigalio teleskopas 2009 m. lapkritį&amp;quot;,&lt;br /&gt;
                },&lt;br /&gt;
              },&lt;br /&gt;
              [&amp;quot;hash&amp;quot;] = &amp;quot;7a04953630950ebf0cce672c30d1b150e74f7003&amp;quot;,&lt;br /&gt;
              [&amp;quot;property&amp;quot;] = &amp;quot;P2096&amp;quot;,&lt;br /&gt;
              [&amp;quot;snaktype&amp;quot;] = &amp;quot;value&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        [&amp;quot;qualifiers-order&amp;quot;] = table#38 {&lt;br /&gt;
          &amp;quot;P2096&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        [&amp;quot;rank&amp;quot;] = &amp;quot;normal&amp;quot;,&lt;br /&gt;
        [&amp;quot;type&amp;quot;] = &amp;quot;statement&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
p.getImageLegend = function(frame)&lt;br /&gt;
	-- look for named parameter id; if it&amp;#039;s blank make it nil&lt;br /&gt;
	local id = frame.args.id&lt;br /&gt;
	if id and (#id == 0) then&lt;br /&gt;
		id = nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- look for named parameter lang&lt;br /&gt;
	-- it should contain a two-character ISO-639 language code&lt;br /&gt;
	-- if it&amp;#039;s blank fetch the language of the local wiki&lt;br /&gt;
	local lang = frame.args.lang&lt;br /&gt;
	if (not lang) or (#lang &amp;lt; 2) then&lt;br /&gt;
		lang = mw.language.getContentLanguage().code&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- first unnamed parameter is the local parameter, if supplied&lt;br /&gt;
	local input_parm = mw.text.trim(frame.args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
	if input_parm == &amp;quot;FETCH_WIKIDATA&amp;quot; then&lt;br /&gt;
		local ent = mw.wikibase.getEntityObject(id)&lt;br /&gt;
		local imgs&lt;br /&gt;
		if ent and ent.claims then&lt;br /&gt;
			imgs = ent.claims.P18&lt;br /&gt;
		end&lt;br /&gt;
		local imglbl&lt;br /&gt;
		if imgs then&lt;br /&gt;
			-- look for an image with &amp;#039;preferred&amp;#039; rank&lt;br /&gt;
			for k1, v1 in pairs(imgs) do&lt;br /&gt;
				if v1.rank == &amp;quot;preferred&amp;quot; and v1.qualifiers.P2096 then&lt;br /&gt;
					local imglbls = v1.qualifiers.P2096&lt;br /&gt;
					for k2, v2 in pairs(imglbls) do&lt;br /&gt;
						if v2.datavalue.value.language == lang then&lt;br /&gt;
							imglbl = v2.datavalue.value.text&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			-- if we don&amp;#039;t find one, look for an image with &amp;#039;normal&amp;#039; rank&lt;br /&gt;
			if (not imglbl) then&lt;br /&gt;
				for k1, v1 in pairs(imgs) do&lt;br /&gt;
					if v1.rank == &amp;quot;normal&amp;quot; and v1.qualifiers.P2096 then&lt;br /&gt;
						local imglbls = v1.qualifiers.P2096&lt;br /&gt;
						for k2, v2 in pairs(imglbls) do&lt;br /&gt;
							if v2.datavalue.value.language == lang then&lt;br /&gt;
								imglbl = v2.datavalue.value.text&lt;br /&gt;
								break&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return imglbl&lt;br /&gt;
	else&lt;br /&gt;
		return input_parm&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;RexxS</name></author>
	</entry>
</feed>