<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AOSM</id>
	<title>Module:OSM - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AOSM"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:OSM&amp;action=history"/>
	<updated>2026-06-22T02:56:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:OSM&amp;diff=478831&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:OSM&amp;diff=478831&amp;oldid=prev"/>
		<updated>2021-07-16T05:13:08Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local function buildquery(frame, target)&lt;br /&gt;
	local textToDisplay, leftLink, rightLink, runQueryRightAway, itemObject, itemID, query, coord, bbox, remark, overpassUrl, primitives, timeout, style, logo&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	&lt;br /&gt;
	if args.display then&lt;br /&gt;
		-- text to display on link&lt;br /&gt;
		textToDisplay = ' ' .. args.display&lt;br /&gt;
	else&lt;br /&gt;
		textToDisplay = ''&lt;br /&gt;
	end&lt;br /&gt;
	if args.timeout then&lt;br /&gt;
		timeout = '[timeout:' .. args.timeout .. '][out:json];\n'&lt;br /&gt;
	else&lt;br /&gt;
		timeout = '[timeout:20][out:json];\n'&lt;br /&gt;
	end&lt;br /&gt;
	if args.link and args.link == 'no' then&lt;br /&gt;
		-- just return the url&lt;br /&gt;
		leftLink = ''&lt;br /&gt;
		rightLink = ''&lt;br /&gt;
		textToDisplay = ''&lt;br /&gt;
	else&lt;br /&gt;
		leftLink = '['&lt;br /&gt;
		rightLink = ']'&lt;br /&gt;
	end&lt;br /&gt;
	if args.run and args.run == 'no' then&lt;br /&gt;
		-- don't run immediately&lt;br /&gt;
		runQueryRightAway = ''&lt;br /&gt;
	else&lt;br /&gt;
		runQueryRightAway = '&amp;amp;R'&lt;br /&gt;
	end&lt;br /&gt;
	if frame.args.overpass then&lt;br /&gt;
		itemID = &amp;quot;&amp;quot;&lt;br /&gt;
		itemObject = nil&lt;br /&gt;
	else&lt;br /&gt;
		if args.id then&lt;br /&gt;
			-- build query for specific Q-item(s) &lt;br /&gt;
			itemID = args.id&lt;br /&gt;
			pcall(function () itemObject = mw.wikibase.getEntityObject(mw.text.split(itemID,&amp;quot;;&amp;quot;)[1]) end)&lt;br /&gt;
		else&lt;br /&gt;
			itemObject = mw.wikibase.getEntityObject()&lt;br /&gt;
			if itemObject == nil then&lt;br /&gt;
				return &amp;quot;This page doesn't have a wikidata entry&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			-- build query for current page&lt;br /&gt;
			itemID = itemObject.id&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Always perform a regular expression based search&lt;br /&gt;
    -- The data may contain multiple values&lt;br /&gt;
    if frame.args.overpass == nil then&lt;br /&gt;
		itemID = '&amp;quot;~&amp;quot;(^|;)(' .. itemID:gsub(&amp;quot;;&amp;quot;, &amp;quot;\|&amp;quot;) .. ')(;|$)'&lt;br /&gt;
		leftbracket = '[&amp;quot;'&lt;br /&gt;
		rightbracket = '&amp;quot;]'&lt;br /&gt;
	else&lt;br /&gt;
		leftbracket = ''&lt;br /&gt;
		rightbracket = ''&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.query then&lt;br /&gt;
		-- user can add their own tags to filter on&lt;br /&gt;
		query = args.query&lt;br /&gt;
	else&lt;br /&gt;
		if frame.args.overpass then&lt;br /&gt;
			return &amp;quot;If you invoke with overpass, you have to include a query=&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		query = ''&lt;br /&gt;
	end&lt;br /&gt;
	if args.coord and not(args.limitToBBOX=='no') then&lt;br /&gt;
		-- The user can provide coordinates and a zoom factor&lt;br /&gt;
		coord = '&amp;amp;C=' .. args.coord&lt;br /&gt;
		-- In that case we can limit the search to the area in view&lt;br /&gt;
		bbox = '({{bbox}})'&lt;br /&gt;
		-- and tell them how to search wider.&lt;br /&gt;
		remark = ' // remove the ' .. bbox .. 'if you want the query to be executed globally'&lt;br /&gt;
	else&lt;br /&gt;
		coord = ''&lt;br /&gt;
		bbox = ''&lt;br /&gt;
		remark = ''&lt;br /&gt;
	end&lt;br /&gt;
	overpassUrl = timeout .. '(\n'&lt;br /&gt;
	-- if the user specifies prim(itives), but then leaves the string empty, abort&lt;br /&gt;
	if args.prim then&lt;br /&gt;
		if args.prim == '' then&lt;br /&gt;
			return &amp;quot;Please indicate which primitives you want to query for&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		primitives = args.prim&lt;br /&gt;
	else&lt;br /&gt;
		primitives = 'nwr'&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if primitives:find(&amp;quot;n&amp;quot;) then&lt;br /&gt;
		-- Include nodes&lt;br /&gt;
		overpassUrl = overpassUrl .. 'node' .. leftbracket .. target .. itemID .. rightbracket .. query .. bbox .. ';' .. remark .. '\n'&lt;br /&gt;
	end&lt;br /&gt;
	if primitives:find(&amp;quot;w&amp;quot;) then&lt;br /&gt;
		-- Include ways&lt;br /&gt;
		overpassUrl = overpassUrl .. 'way' .. leftbracket .. target .. itemID .. rightbracket .. query .. bbox .. ';\n'&lt;br /&gt;
	end&lt;br /&gt;
	if primitives:find(&amp;quot;r&amp;quot;) then&lt;br /&gt;
		-- Include relations&lt;br /&gt;
		overpassUrl = overpassUrl .. 'relation' .. leftbracket .. target .. itemID .. rightbracket .. query .. bbox .. ';\n&amp;gt;&amp;gt;;\n'&lt;br /&gt;
	end	&lt;br /&gt;
	overpassUrl = overpassUrl .. ');\n'&lt;br /&gt;
	overpassUrl = overpassUrl .. 'out geom;\n'&lt;br /&gt;
	if args.style then&lt;br /&gt;
			style = args.style&lt;br /&gt;
	else&lt;br /&gt;
		if args.logo then&lt;br /&gt;
			logo = &amp;quot;  icon-image: url(&amp;quot; .. args.logo .. ');\n'&lt;br /&gt;
		else&lt;br /&gt;
			if itemObject then&lt;br /&gt;
				logo = tostring(itemObject:formatPropertyValues('P154')['value']):gsub(&amp;quot;&amp;amp;#39;&amp;quot;, &amp;quot;'&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			if logo and not(logo == '') then&lt;br /&gt;
				logo = '  icon-image: url(&amp;quot;https://commons.wikimedia.org/wiki/Special:Redirect/file/'.. logo .. '&amp;quot;);\n'&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if logo then&lt;br /&gt;
			style = &amp;quot;node [&amp;quot;.. target ..&amp;quot;]{\n  text: name;\n&amp;quot;.. logo .. &amp;quot;  icon-width: 32;}&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if style then&lt;br /&gt;
		overpassUrl = overpassUrl .. '{{style:\n' .. style .. '\n}}\n'&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return leftLink .. 'http://overpass-turbo.eu/?Q=' .. mw.uri.encode(overpassUrl, &amp;quot;PATH&amp;quot; ) .. coord .. runQueryRightAway .. textToDisplay .. rightLink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.overpass( frame )&lt;br /&gt;
	frame.args.overpass = true&lt;br /&gt;
	return buildquery(frame, '')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.wd( frame )&lt;br /&gt;
	return buildquery(frame, 'wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.pt( frame )&lt;br /&gt;
 	frame.args.style = &amp;quot;node {\n  opacity: 0;\n  fill-opacity: 0;}\nnode[highway=bus_stop], way[highway=bus_stop]{\n  text: name;\n  icon-image: url('icons/maki/bus-18.png');\n  icon-width: 18;}&amp;quot;&lt;br /&gt;
 	frame.args.prim = &amp;quot;r&amp;quot;&lt;br /&gt;
 	frame.args.timeout = 50&lt;br /&gt;
	return buildquery(frame, 'wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.etym( frame )&lt;br /&gt;
	return buildquery(frame, 'name:etymology:wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.subject( frame )&lt;br /&gt;
	return buildquery(frame, 'subject:wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.artist( frame )&lt;br /&gt;
	return buildquery(frame, 'artist:wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.architect( frame )&lt;br /&gt;
	return buildquery(frame, 'architect:wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.operator( frame )&lt;br /&gt;
	return buildquery(frame, 'operator:wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.brand( frame )&lt;br /&gt;
	return buildquery(frame, 'brand:wikidata')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>