<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.everycrt.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ARepairServicesMap</id>
	<title>Module:RepairServicesMap - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.everycrt.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ARepairServicesMap"/>
	<link rel="alternate" type="text/html" href="https://wiki.everycrt.com/index.php?title=Module:RepairServicesMap&amp;action=history"/>
	<updated>2026-08-02T04:53:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.everycrt.com/index.php?title=Module:RepairServicesMap&amp;diff=6920&amp;oldid=prev</id>
		<title>Arclight: Arclight changed the content model of the page Module:RepairServicesMap from &quot;wikitext&quot; to &quot;Scribunto module&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.everycrt.com/index.php?title=Module:RepairServicesMap&amp;diff=6920&amp;oldid=prev"/>
		<updated>2026-02-10T01:45:32Z</updated>

		<summary type="html">&lt;p&gt;Arclight changed the content model of the page &lt;a href=&quot;/wiki/Module:RepairServicesMap&quot; title=&quot;Module:RepairServicesMap&quot;&gt;Module:RepairServicesMap&lt;/a&gt; from &amp;quot;wikitext&amp;quot; to &amp;quot;Scribunto module&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:45, 10 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Arclight</name></author>
	</entry>
	<entry>
		<id>https://wiki.everycrt.com/index.php?title=Module:RepairServicesMap&amp;diff=3344&amp;oldid=prev</id>
		<title>Arclight-MCP-Bot: Create Lua module for repair services map (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.everycrt.com/index.php?title=Module:RepairServicesMap&amp;diff=3344&amp;oldid=prev"/>
		<updated>2026-01-13T01:25:43Z</updated>

		<summary type="html">&lt;p&gt;Create Lua module for repair services map (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Module:RepairServicesMap&lt;br /&gt;
-- Generates a map of all repair services using SMW queries&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.map(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local height = args.height or &amp;#039;500&amp;#039;&lt;br /&gt;
    local zoom = args.zoom or &amp;#039;2&amp;#039;&lt;br /&gt;
    local filter = args.filter or &amp;#039;&amp;#039;&lt;br /&gt;
    &lt;br /&gt;
    -- Build the SMW query&lt;br /&gt;
    local query = &amp;#039;[[Category:Repair services]][[Has coordinates::+]]&amp;#039;&lt;br /&gt;
    if filter ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        query = query .. &amp;#039;[[Has device types::~*&amp;#039; .. filter .. &amp;#039;*]]&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Get results using SMW&lt;br /&gt;
    local smw = mw.smw&lt;br /&gt;
    if not smw then&lt;br /&gt;
        return &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Semantic MediaWiki not available&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local results = smw.ask({&lt;br /&gt;
        query,&lt;br /&gt;
        &amp;#039;?Has coordinates&amp;#039;,&lt;br /&gt;
        &amp;#039;?Has name&amp;#039;,&lt;br /&gt;
        &amp;#039;?Has city&amp;#039;,&lt;br /&gt;
        &amp;#039;?Has device types&amp;#039;,&lt;br /&gt;
        &amp;#039;?Has mail-in service&amp;#039;,&lt;br /&gt;
        limit = 500&lt;br /&gt;
    })&lt;br /&gt;
    &lt;br /&gt;
    if not results or #results == 0 then&lt;br /&gt;
        return &amp;#039;&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;No repair services with coordinates found.&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Build coordinate string for display_map&lt;br /&gt;
    local coords = {}&lt;br /&gt;
    for _, result in ipairs(results) do&lt;br /&gt;
        local coord = result[&amp;#039;Has coordinates&amp;#039;]&lt;br /&gt;
        local name = result[&amp;#039;Has name&amp;#039;] or result[1] or &amp;#039;Unknown&amp;#039;&lt;br /&gt;
        local city = result[&amp;#039;Has city&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
        local devices = result[&amp;#039;Has device types&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
        local mailin = result[&amp;#039;Has mail-in service&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
        &lt;br /&gt;
        if coord then&lt;br /&gt;
            -- Handle if coord is a table (SMW sometimes returns tables)&lt;br /&gt;
            if type(coord) == &amp;#039;table&amp;#039; then&lt;br /&gt;
                coord = coord[1]&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            -- Build popup text&lt;br /&gt;
            local popup = &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; .. name .. &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
            if city ~= &amp;#039;&amp;#039; then&lt;br /&gt;
                popup = popup .. &amp;#039;&amp;lt;br&amp;gt;&amp;#039; .. city&lt;br /&gt;
            end&lt;br /&gt;
            if devices ~= &amp;#039;&amp;#039; then&lt;br /&gt;
                if type(devices) == &amp;#039;table&amp;#039; then&lt;br /&gt;
                    devices = table.concat(devices, &amp;#039;, &amp;#039;)&lt;br /&gt;
                end&lt;br /&gt;
                popup = popup .. &amp;#039;&amp;lt;br&amp;gt;Repairs: &amp;#039; .. devices&lt;br /&gt;
            end&lt;br /&gt;
            if mailin == &amp;#039;Yes&amp;#039; then&lt;br /&gt;
                popup = popup .. &amp;#039;&amp;lt;br&amp;gt;✓ Mail-in available&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            table.insert(coords, coord .. &amp;#039;~&amp;#039; .. popup)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #coords == 0 then&lt;br /&gt;
        return &amp;#039;&amp;lt;p&amp;gt;&amp;lt;em&amp;gt;No valid coordinates found.&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Use frame:preprocess to call #display_map&lt;br /&gt;
    local coordString = table.concat(coords, &amp;#039;;&amp;#039;)&lt;br /&gt;
    local mapWikitext = &amp;#039;{{#display_map:&amp;#039; .. coordString .. &amp;#039;|height=&amp;#039; .. height .. &amp;#039;|zoom=&amp;#039; .. zoom .. &amp;#039;|width=100%}}&amp;#039;&lt;br /&gt;
    &lt;br /&gt;
    return frame:preprocess(mapWikitext)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.count(frame)&lt;br /&gt;
    local smw = mw.smw&lt;br /&gt;
    if not smw then return &amp;#039;0&amp;#039; end&lt;br /&gt;
    &lt;br /&gt;
    local results = smw.ask({&lt;br /&gt;
        &amp;#039;[[Category:Repair services]]&amp;#039;,&lt;br /&gt;
        limit = 500&lt;br /&gt;
    })&lt;br /&gt;
    &lt;br /&gt;
    return results and #results or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Arclight-MCP-Bot</name></author>
	</entry>
</feed>