<?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%2FRonnieV%2FWikidata</id>
	<title>Module:Sandbox/RonnieV/Wikidata - 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%2FRonnieV%2FWikidata"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/RonnieV/Wikidata&amp;action=history"/>
	<updated>2026-05-25T23:36: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/RonnieV/Wikidata&amp;diff=146133&amp;oldid=prev</id>
		<title>imported&gt;RonnieV: Zo werkte het, maar zonder bron</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/RonnieV/Wikidata&amp;diff=146133&amp;oldid=prev"/>
		<updated>2020-07-29T12:32:48Z</updated>

		<summary type="html">&lt;p&gt;Zo werkte het, maar zonder bron&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;p = {}  -- an empty table&lt;br /&gt;
&lt;br /&gt;
local function test(qid, pid)&lt;br /&gt;
	statementstbl = mw.wikibase.getBestStatements( qid, pid )&lt;br /&gt;
	local labels = &amp;quot;&amp;quot;&lt;br /&gt;
	for k, v in ipairs(statementstbl) do&lt;br /&gt;
		local dtype = v.mainsnak.datatype&lt;br /&gt;
		labels = labels .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot; .. dtype&lt;br /&gt;
		if dtype == &amp;quot;time&amp;quot; then&lt;br /&gt;
			labels = labels .. &amp;quot; is a time-element with value&amp;quot;&lt;br /&gt;
			local time = v.mainsnak.datavalue.value.time&lt;br /&gt;
			labels = labels .. time&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return labels&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local maanden = {&lt;br /&gt;
    [1] = &amp;quot;januari&amp;quot;,&lt;br /&gt;
    [2] = &amp;quot;februari&amp;quot;,&lt;br /&gt;
    [3] = &amp;quot;maart&amp;quot;,&lt;br /&gt;
    [4] = &amp;quot;april&amp;quot;,&lt;br /&gt;
    [5] = &amp;quot;mei&amp;quot;,&lt;br /&gt;
    [6] = &amp;quot;juni&amp;quot;,&lt;br /&gt;
    [7] = &amp;quot;juli&amp;quot;,&lt;br /&gt;
    [8] = &amp;quot;augustus&amp;quot;,&lt;br /&gt;
    [9] = &amp;quot;september&amp;quot;,&lt;br /&gt;
    [10] = &amp;quot;oktober&amp;quot;,&lt;br /&gt;
    [11] = &amp;quot;november&amp;quot;,&lt;br /&gt;
    [12] = &amp;quot;december&amp;quot;&lt;br /&gt;
}    &lt;br /&gt;
local function getmonthname(m)&lt;br /&gt;
	m = 1*m&lt;br /&gt;
	local s = type(maanden[m]) == &amp;quot;function&amp;quot; and maanden[m]() or maanden[m] or m .. m .. m&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getitems(qid, pid)&lt;br /&gt;
	statementstbl = mw.wikibase.getBestStatements( qid, pid )&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for k, v in ipairs(statementstbl) do&lt;br /&gt;
		local dtype = v.mainsnak.datatype&lt;br /&gt;
		if dtype == &amp;quot;wikibase-item&amp;quot; then&lt;br /&gt;
			local id = v.mainsnak.datavalue.value.id&lt;br /&gt;
			local label = mw.wikibase.getLabel(id)&lt;br /&gt;
			local dtype = v.mainsnak.datatype&lt;br /&gt;
			link = mw.wikibase.getSitelink(id)&lt;br /&gt;
			if link == nil  or link == &amp;quot;&amp;quot; then&lt;br /&gt;
				newlabel = label &lt;br /&gt;
			else&lt;br /&gt;
				if link == label then&lt;br /&gt;
					newlabel = &amp;quot;[[&amp;quot; .. label .. &amp;quot;]]&amp;quot;&lt;br /&gt;
				else&lt;br /&gt;
					newlabel = &amp;quot;[[&amp;quot; .. link .. &amp;quot;|&amp;quot; .. label .. &amp;quot;]]&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end	&lt;br /&gt;
		elseif dtype == &amp;quot;time&amp;quot; then&lt;br /&gt;
			local time = v.mainsnak.datavalue.value.time&lt;br /&gt;
			local prec = v.mainsnak.datavalue.value.precision 		&lt;br /&gt;
			local y, m, d = string.match(time, &amp;quot;+(%d+)-(%d+)-(%d+)&amp;quot;)&lt;br /&gt;
			newlabel = &amp;quot;&amp;quot;&lt;br /&gt;
			if prec &amp;gt;= 11 then&lt;br /&gt;
				newlabel = d .. &amp;quot; &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			if prec &amp;gt;= 10 then&lt;br /&gt;
				newlabel = newlabel .. getmonthname(m) .. &amp;quot; &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			if prec &amp;gt;= 9 then&lt;br /&gt;
				newlabel = newlabel .. y&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result, newlabel)&lt;br /&gt;
--		labels = labels .. &amp;quot;&amp;lt;br&amp;gt;&amp;quot; .. newlabel&lt;br /&gt;
	end&lt;br /&gt;
--	return labels&lt;br /&gt;
	return table.concat(result, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getlabel(pid)&lt;br /&gt;
	local label = mw.wikibase.getLabel( pid )&lt;br /&gt;
	return label&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getprops()&lt;br /&gt;
	local props = {}&lt;br /&gt;
	table.insert(props, &amp;quot;P735&amp;quot;)&lt;br /&gt;
	table.insert(props, &amp;quot;P734&amp;quot;)&lt;br /&gt;
	table.insert(props, &amp;quot;P19&amp;quot;)&lt;br /&gt;
	table.insert(props, &amp;quot;P569&amp;quot;)&lt;br /&gt;
	table.insert(props, &amp;quot;P106&amp;quot;)&lt;br /&gt;
	table.insert(props, &amp;quot;P26&amp;quot;)&lt;br /&gt;
	table.insert(props, &amp;quot;P570&amp;quot;)&lt;br /&gt;
	return props&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getinfo(frame)&lt;br /&gt;
	local qid = frame.args.qid or &amp;quot;Q42&amp;quot;&lt;br /&gt;
	local props = getprops()&lt;br /&gt;
	local htmlTable = mw.html.create(&amp;quot;table&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;wikitable&amp;quot;)&lt;br /&gt;
	local headerRow = htmlTable&lt;br /&gt;
		:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
	headerRow&lt;br /&gt;
		:tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;colspan&amp;quot;, &amp;quot;2&amp;quot;)&lt;br /&gt;
		:wikitext(&amp;quot;Wikidata for &amp;quot; .. getlabel(qid) )&lt;br /&gt;
	for k,v in pairs(props) do&lt;br /&gt;
		local row = htmlTable:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
		local cell = row:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
			cell:wikitext(getlabel(v))&lt;br /&gt;
		local cell = row:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
			cell:wikitext(getitems(qid, v) )&lt;br /&gt;
	end	&lt;br /&gt;
	return htmlTable&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
function p.test(frame)&lt;br /&gt;
	local qid = frame.args.qid or &amp;quot;Q42&amp;quot;&lt;br /&gt;
	result = test(qid, &amp;quot;P570&amp;quot;)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- reizigersinformatie van een station&lt;br /&gt;
&lt;br /&gt;
local function getmostrecentdate(qid)&lt;br /&gt;
	statementstbl = mw.wikibase.getAllStatements( qid, &amp;#039;P1373&amp;#039; )&lt;br /&gt;
	local maxtime = &amp;#039;&amp;#039;&lt;br /&gt;
	for k, v in ipairs(statementstbl) do&lt;br /&gt;
		local dtype = v.mainsnak.datatype&lt;br /&gt;
		if dtype == &amp;quot;quantity&amp;quot; then&lt;br /&gt;
			local value = v.mainsnak.datavalue.value.amount&lt;br /&gt;
			local datum = mw.wikibase.renderSnaks( v.qualifiers.P585 )&lt;br /&gt;
			local jaar = string.sub(datum, string.len(datum)-4)		&lt;br /&gt;
			if jaar &amp;gt; maxtime then&lt;br /&gt;
				maxtime = jaar&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return maxtime&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getNMBStelling(qid, gezochtjaar)&lt;br /&gt;
	statementstbl = mw.wikibase.getAllStatements( qid, &amp;#039;P1373&amp;#039; )&lt;br /&gt;
	local aantaldoordeweek = &amp;#039;-&amp;#039;&lt;br /&gt;
	local aantalzaterdag = &amp;#039;-&amp;#039;&lt;br /&gt;
	local aantalzondag = &amp;#039;-&amp;#039;&lt;br /&gt;
	local labels  = &amp;quot;&amp;quot;&lt;br /&gt;
	for k, v in ipairs(statementstbl) do&lt;br /&gt;
		local dtype = v.mainsnak.datatype&lt;br /&gt;
		if dtype == &amp;quot;quantity&amp;quot; then&lt;br /&gt;
			local amount = string.sub(v.mainsnak.datavalue.value.amount,2)&lt;br /&gt;
			local tv = v.qualifiers.P585&lt;br /&gt;
			local datum = mw.wikibase.renderSnaks( tv )&lt;br /&gt;
			local jaar = string.sub(datum, string.len(datum)-4)		&lt;br /&gt;
&lt;br /&gt;
			if jaar == gezochtjaar then&lt;br /&gt;
				local dag = v.qualifiers.P2894&lt;br /&gt;
				local weekdag = mw.wikibase.renderSnaks( dag ) or &amp;#039;&amp;#039;&lt;br /&gt;
				if weekdag == &amp;#039;work week&amp;#039; then&lt;br /&gt;
					aantaldoordeweek = amount&lt;br /&gt;
				else&lt;br /&gt;
					if weekdag == &amp;#039;Saturday&amp;#039; then&lt;br /&gt;
						aantalzaterdag = amount&lt;br /&gt;
					else&lt;br /&gt;
						if weekdag == &amp;#039;Sunday&amp;#039; then&lt;br /&gt;
							aantalzondag = amount&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;
	labels = &amp;#039;{{NMBS Reizigerstellingen|&amp;#039; .. aantaldoordeweek ..&amp;#039;|&amp;#039; .. aantalzaterdag .. &amp;#039;|&amp;#039; .. aantalzondag .. &amp;#039;|&amp;#039; .. gezochtjaar .. &amp;#039;}}&amp;#039;&lt;br /&gt;
	return labels&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getvoyagers(frame)&lt;br /&gt;
	local qid = frame.args.qid or &amp;quot;Q601108&amp;quot;&lt;br /&gt;
	local date = getmostrecentdate(qid)&lt;br /&gt;
	local result = getNMBStelling(qid, date)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;RonnieV</name></author>
	</entry>
</feed>