<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.darkan.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AExchangeDefault</id>
	<title>Module:ExchangeDefault - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.darkan.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AExchangeDefault"/>
	<link rel="alternate" type="text/html" href="https://wiki.darkan.org/index.php?title=Module:ExchangeDefault&amp;action=history"/>
	<updated>2026-07-17T15:11:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.darkan.org/index.php?title=Module:ExchangeDefault&amp;diff=174276&amp;oldid=prev</id>
		<title>Jawarrior1: Created page with &quot;-- &lt;pre&gt; -- Default view for {{ExchangeItem}} for use on Exchange ns pages -- -- Use of this via #invoke is deprecated and will eventually be removed -- This is intended for use by Module:Exchange --  local p = {}  -- imports local excgdata = require( &#039;Module:ExchangeData&#039; )._main local round = require( &#039;Module:Number&#039; )._round local timeago = require( &#039;Module:TimeAgo&#039; )._ago local yesno = require( &#039;Module:Yesno&#039; )  function p.main( item )     local frame = mw.getCur...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.darkan.org/index.php?title=Module:ExchangeDefault&amp;diff=174276&amp;oldid=prev"/>
		<updated>2024-02-13T20:30:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- &amp;lt;pre&amp;gt; -- Default view for {{ExchangeItem}} for use on Exchange ns pages -- -- Use of this via #invoke is deprecated and will eventually be removed -- This is intended for use by &lt;a href=&quot;/Module:Exchange&quot; title=&quot;Module:Exchange&quot;&gt;Module:Exchange&lt;/a&gt; --  local p = {}  -- imports local excgdata = require( &amp;#039;Module:ExchangeData&amp;#039; )._main local round = require( &amp;#039;Module:Number&amp;#039; )._round local timeago = require( &amp;#039;Module:TimeAgo&amp;#039; )._ago local yesno = require( &amp;#039;Module:Yesno&amp;#039; )  function p.main( item )     local frame = mw.getCur...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;pre&amp;gt;&lt;br /&gt;
-- Default view for {{ExchangeItem}} for use on Exchange ns pages&lt;br /&gt;
--&lt;br /&gt;
-- Use of this via #invoke is deprecated and will eventually be removed&lt;br /&gt;
-- This is intended for use by [[Module:Exchange]]&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- imports&lt;br /&gt;
local excgdata = require( &amp;#039;Module:ExchangeData&amp;#039; )._main&lt;br /&gt;
local round = require( &amp;#039;Module:Number&amp;#039; )._round&lt;br /&gt;
local timeago = require( &amp;#039;Module:TimeAgo&amp;#039; )._ago&lt;br /&gt;
local yesno = require( &amp;#039;Module:Yesno&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
function p.main( item )&lt;br /&gt;
    local frame = mw.getCurrentFrame()&lt;br /&gt;
    local lang = mw.language.getContentLanguage()&lt;br /&gt;
    local title = mw.title.getCurrentTitle()&lt;br /&gt;
    local data  = mw.loadData( &amp;#039;Module:Exchange/&amp;#039; .. item )&lt;br /&gt;
&lt;br /&gt;
    -- set variables here if possible to keep table building easier to follow&lt;br /&gt;
    local rowspan = 8&lt;br /&gt;
    local volDate = data.volumeDate or lang:formatDate( &amp;#039;c&amp;#039; )&lt;br /&gt;
    local dateDiffZ = lang:formatDate( &amp;#039;z&amp;#039; ) - lang:formatDate( &amp;#039;z&amp;#039;, volDate )&lt;br /&gt;
    local dateDiffY = lang:formatDate( &amp;#039;Y&amp;#039; ) - lang:formatDate( &amp;#039;Y&amp;#039;, volDate )&lt;br /&gt;
    local price = data.price and lang:formatNum( data.price ) or &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039;&lt;br /&gt;
    local date = &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039;&lt;br /&gt;
    local lowAlch = &amp;#039;&amp;lt;i&amp;gt;Not alchable&amp;lt;/i&amp;gt;&amp;#039;&lt;br /&gt;
    local highAlch = &amp;#039;&amp;lt;i&amp;gt;Not alchable&amp;lt;/i&amp;gt;&amp;#039;&lt;br /&gt;
    local memsIcon = &amp;#039;&amp;#039;&lt;br /&gt;
    local usage = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    if data.volume and ( dateDiffZ + 365 * dateDiffY ) &amp;lt;= 7 then&lt;br /&gt;
        rowspan = 10&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if data.date then&lt;br /&gt;
        date = lang:formatDate( &amp;#039;j F Y, H:i &amp;quot;(UTC)&amp;quot;&amp;#039;, data.date )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if data.alchable == nil or yesno( data.alchable ) then&lt;br /&gt;
        if data.value then&lt;br /&gt;
            lowAlch = lang:formatNum( math.floor( data.value * 0.4 ) )&lt;br /&gt;
            highAlch = lang:formatNum( math.floor( data.value * 0.6 ) )&lt;br /&gt;
        else&lt;br /&gt;
            lowAlch, highAlch = &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039;, &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if data.members ~= nil then&lt;br /&gt;
        if data.members then&lt;br /&gt;
            memsIcon = &amp;#039;[[File:P2P icon.png|40px|link=Members|middle]]&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            memsIcon = &amp;#039;[[File:F2P icon.png|40px|link=Free-to-play|middle]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- workaround so we can use `table.concat`&lt;br /&gt;
    usage = {}&lt;br /&gt;
&lt;br /&gt;
    for k, v in ipairs( data.usage ) do&lt;br /&gt;
        usage[k] = v&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #usage == 0 then&lt;br /&gt;
    	usage = &amp;quot;\n* &amp;#039;&amp;#039;None&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
        usage = &amp;#039;\n* [[&amp;#039; .. table.concat( usage, &amp;#039;]]\n* [[&amp;#039; ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    usage = usage .. string.format(&amp;#039;\n&amp;lt;small&amp;gt;Modules: [[Module:Exchange/%s|info]] • [[Module:Exchange/%s/Data|data]]&amp;lt;/small&amp;gt;&amp;#039;, data.item, data.item)&lt;br /&gt;
&lt;br /&gt;
    -- build table&lt;br /&gt;
    local tbl = mw.html.create( &amp;#039;table&amp;#039; )&lt;br /&gt;
        :addClass( &amp;#039;wikitable&amp;#039; )&lt;br /&gt;
        :css( {&lt;br /&gt;
            [&amp;#039;border&amp;#039;] = &amp;#039;0&amp;#039;,&lt;br /&gt;
            [&amp;#039;border-collapse&amp;#039;] = &amp;#039;separate&amp;#039;,&lt;br /&gt;
            [&amp;#039;margin-top&amp;#039;] = &amp;#039;-1em&amp;#039;,&lt;br /&gt;
            [&amp;#039;margin-bottom&amp;#039;] = &amp;#039;0&amp;#039;&lt;br /&gt;
        } )&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;th&amp;#039; )&lt;br /&gt;
                :attr( &amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    border = &amp;#039;0&amp;#039;,&lt;br /&gt;
                    padding = &amp;#039;0&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :tag( &amp;#039;table&amp;#039; )&lt;br /&gt;
                    :css( {&lt;br /&gt;
                        width = &amp;#039;100%&amp;#039;,&lt;br /&gt;
                        [&amp;#039;border-collapse&amp;#039;] = &amp;#039;collapse&amp;#039;&lt;br /&gt;
                    } )&lt;br /&gt;
                    :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
                        :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                            :css( {&lt;br /&gt;
                                padding = &amp;#039;8px 16px&amp;#039;,&lt;br /&gt;
                                [&amp;#039;border-right&amp;#039;] = &amp;#039;0&amp;#039;&lt;br /&gt;
                            } )&lt;br /&gt;
                            :wikitext( &amp;#039;[[File:&amp;#039; .. ( data.item or &amp;#039;Coins 1000&amp;#039; ) .. &amp;#039;.png&amp;#039; .. &amp;#039;|link=&amp;#039; .. item .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                            :css( {&lt;br /&gt;
                                width = &amp;#039;100%&amp;#039;,&lt;br /&gt;
                                [&amp;#039;font-size&amp;#039;] = &amp;#039;135%&amp;#039;,&lt;br /&gt;
                                [&amp;#039;text-align&amp;#039;] = &amp;#039;left&amp;#039;,&lt;br /&gt;
                                [&amp;#039;white-space&amp;#039;] = &amp;#039;normal&amp;#039;,&lt;br /&gt;
                                padding = &amp;#039;8px 0&amp;#039;,&lt;br /&gt;
                                [&amp;#039;border-left&amp;#039;] = &amp;#039;0&amp;#039;,&lt;br /&gt;
                                [&amp;#039;border-right&amp;#039;] = &amp;#039;0&amp;#039;&lt;br /&gt;
                            } )&lt;br /&gt;
                            -- this used to default to [[Grand Exchange Market Watch]] if item wasn&amp;#039;t supplied&lt;br /&gt;
                            -- but that only happened on 6 user pages, an orphanage and a preload&lt;br /&gt;
                            :wikitext( &amp;#039;[[&amp;#039; .. item .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
                            :tag( &amp;#039;br&amp;#039; )&lt;br /&gt;
                                :done()&lt;br /&gt;
                            :tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                                :css( {&lt;br /&gt;
                                    [&amp;#039;font-weight&amp;#039;] = &amp;#039;normal&amp;#039;,&lt;br /&gt;
                                    [&amp;#039;font-size&amp;#039;] = &amp;#039;75%&amp;#039;&lt;br /&gt;
                                } )&lt;br /&gt;
                                :wikitext( data.examine or &amp;#039;&amp;#039; )&lt;br /&gt;
                                :done()&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                            :css( {&lt;br /&gt;
                                padding = &amp;#039;8px 16px&amp;#039;,&lt;br /&gt;
                                [&amp;#039;border-left&amp;#039;] = &amp;#039;0&amp;#039;&lt;br /&gt;
                            } )&lt;br /&gt;
                            :wikitext( memsIcon )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;th&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;text-align&amp;#039;] = &amp;#039;left&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-left&amp;#039;] = &amp;#039;10px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :wikitext( &amp;#039;Price data&amp;#039; )&lt;br /&gt;
                :done()&lt;br /&gt;
            :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                :attr( &amp;#039;rowspan&amp;#039;, rowspan ) &lt;br /&gt;
                :css( &amp;#039;vertical-align&amp;#039;, &amp;#039;top&amp;#039; )&lt;br /&gt;
                :tag( &amp;#039;div&amp;#039; )&lt;br /&gt;
                    :addClass( &amp;#039;GEPage&amp;#039; )&lt;br /&gt;
                    :css( {&lt;br /&gt;
                        padding = &amp;#039;10px 5px 0 5px&amp;#039;,&lt;br /&gt;
                        float = &amp;#039;right&amp;#039;&lt;br /&gt;
                    } )&lt;br /&gt;
                    :tag( &amp;#039;div&amp;#039; )&lt;br /&gt;
                        :addClass( &amp;#039;GEdatachart&amp;#039; )&lt;br /&gt;
                        :css( {&lt;br /&gt;
                            margin = &amp;#039;5px 0 25px 0&amp;#039;,&lt;br /&gt;
                            [&amp;#039;min-width&amp;#039;] = &amp;#039;700px&amp;#039;,&lt;br /&gt;
                            [&amp;#039;height&amp;#039;] = &amp;#039;500px&amp;#039;&lt;br /&gt;
                        } )&lt;br /&gt;
                        -- GE Chart goes here&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;vertical-align&amp;#039;] = &amp;#039;top&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-bottom&amp;#039;] = &amp;#039;5px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :tag( &amp;#039;ul&amp;#039; )&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;Price:&amp;lt;/b&amp;gt; &amp;#039; )&lt;br /&gt;
                        :tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                            :attr( &amp;#039;id&amp;#039;, &amp;#039;GEPrice&amp;#039; )&lt;br /&gt;
                            :wikitext( price )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;Last updated:&amp;lt;/b&amp;gt; &amp;#039; .. timeago{data.date, purge=&amp;#039;yes&amp;#039;} )&lt;br /&gt;
                        :tag( &amp;#039;br&amp;#039; )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                            :attr( &amp;#039;id&amp;#039;, &amp;#039;GEDate&amp;#039; )&lt;br /&gt;
                            :wikitext( date )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
 &lt;br /&gt;
    if data.volume and ( dateDiffZ + 365 * dateDiffY ) &amp;lt;= 7 then&lt;br /&gt;
        tbl&lt;br /&gt;
            :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
                :tag( &amp;#039;th&amp;#039; )&lt;br /&gt;
                    :css( {&lt;br /&gt;
                        [&amp;#039;text-align&amp;#039;] = &amp;#039;left&amp;#039;,&lt;br /&gt;
                        [&amp;#039;padding-left&amp;#039;] = &amp;#039;10px&amp;#039;&lt;br /&gt;
                    } )&lt;br /&gt;
                    :wikitext( &amp;#039;Volume data&amp;#039; )&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
            :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
                :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                    :attr( &amp;#039;id&amp;#039;, &amp;#039;volumeData&amp;#039; )&lt;br /&gt;
                    :css ( {&lt;br /&gt;
                        [&amp;#039;vertical-align&amp;#039;] = &amp;#039;top&amp;#039;,&lt;br /&gt;
                        [&amp;#039;padding-bottom&amp;#039;] = &amp;#039;5px&amp;#039;&lt;br /&gt;
                    } )&lt;br /&gt;
                    :tag( &amp;#039;ul&amp;#039; )&lt;br /&gt;
                        :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                            :wikitext( &amp;#039;&amp;lt;b&amp;gt;7-day total:&amp;lt;/b&amp;gt; &amp;#039; )&lt;br /&gt;
                                :tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                                    :attr( &amp;#039;id&amp;#039;, &amp;#039;GEVolume&amp;#039; )&lt;br /&gt;
                                    :wikitext( lang:formatNum( 1000000 * data.volume ) )&lt;br /&gt;
                                    :done()&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                            :wikitext( &amp;#039;&amp;lt;b&amp;gt;1-day average&amp;lt;/b&amp;gt; &amp;#039; .. lang:formatNum( round( 1000000 / 7 * data.volume, -3 ) ) )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                            :wikitext( &amp;#039;&amp;lt;b&amp;gt;Last updated:&amp;lt;/b&amp;gt; &amp;#039; .. timeago{data.volumeDate, purge=&amp;#039;yes&amp;#039;} )&lt;br /&gt;
                            :tag( &amp;#039;br&amp;#039; )&lt;br /&gt;
                                :done()&lt;br /&gt;
                            :tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                                :attr( &amp;#039;id&amp;#039;, &amp;#039;GEVolumeDate&amp;#039; )&lt;br /&gt;
                                :wikitext( lang:formatDate( &amp;#039;j F Y, H:i &amp;quot;(UTC)&amp;quot;&amp;#039;, data.volumeDate ) )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    tbl&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;th&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;text-align&amp;#039;] = &amp;#039;left&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-left&amp;#039;] = &amp;#039;10px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :wikitext( &amp;#039;Other details&amp;#039; )&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;vertical-align&amp;#039;] = &amp;#039;top&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-bottom&amp;#039;] = &amp;#039;5px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :tag( &amp;#039;ul&amp;#039; )&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;[[Grand Exchange Database|Exchange ID]]:&amp;lt;/b&amp;gt; &amp;#039; )&lt;br /&gt;
                        :tag( &amp;#039;span&amp;#039; )&lt;br /&gt;
                            :attr( &amp;#039;id&amp;#039;, &amp;#039;GEDBID&amp;#039; )&lt;br /&gt;
                            :wikitext( data.itemId or &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039; )&lt;br /&gt;
                            :done()&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;Low Alchemy:&amp;lt;/b&amp;gt; &amp;#039; .. lowAlch )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;High Alchemy:&amp;lt;/b&amp;gt; &amp;#039; .. highAlch )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;[[Value]]:&amp;lt;/b&amp;gt; &amp;#039; .. ( data.value and lang:formatNum( data.value ) or &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039; ) )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;[[Grand Exchange#Trade restrictions|Exchange limit]]:&amp;lt;/b&amp;gt; &amp;#039; .. ( data.limit and lang:formatNum( data.limit ) or &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039; ) )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;&amp;lt;b&amp;gt;[[GED#Categories|GED Category]]:&amp;lt;/b&amp;gt; &amp;#039; .. (data.category or &amp;#039;&amp;lt;i&amp;gt;Unknown&amp;lt;/i&amp;gt;&amp;#039;) )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;th&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;text-align&amp;#039;] = &amp;#039;left&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-left&amp;#039;] = &amp;#039;10px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :wikitext( &amp;#039;External links&amp;#039; )&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;vertical-align&amp;#039;] = &amp;#039;top&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-bottom&amp;#039;] = &amp;#039;5px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :tag( &amp;#039;ul&amp;#039; )&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;[http://services.runescape.com/m=itemdb_rs/viewitem.ws?obj=&amp;#039; .. data.itemId .. &amp;#039; Look up current price]&amp;#039; )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :tag( &amp;#039;li&amp;#039; )&lt;br /&gt;
                        :wikitext( &amp;#039;[http://services.runescape.com/m=itemdb_rs/results.ws?query=&amp;#039; .. mw.uri.encode( item, &amp;#039;QUERY&amp;#039; ) .. &amp;#039; Search for relevant prices]&amp;#039; )&lt;br /&gt;
                        :done()&lt;br /&gt;
                    :done()&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;th&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;text-align&amp;#039;] = &amp;#039;left&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-left&amp;#039;] = &amp;#039;10px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :wikitext( &amp;#039;Usage&amp;#039; )&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
        :tag( &amp;#039;tr&amp;#039; )&lt;br /&gt;
            :tag( &amp;#039;td&amp;#039; )&lt;br /&gt;
                :css( {&lt;br /&gt;
                    [&amp;#039;vertical-align&amp;#039;] = &amp;#039;top&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-left&amp;#039;] = &amp;#039;5px&amp;#039;,&lt;br /&gt;
                    [&amp;#039;padding-bottom&amp;#039;] = &amp;#039;5px&amp;#039;&lt;br /&gt;
                } )&lt;br /&gt;
                :wikitext( &amp;#039;This item is used in:&amp;#039; .. usage )&lt;br /&gt;
                :done()&lt;br /&gt;
            :done()&lt;br /&gt;
&lt;br /&gt;
    tbl = tostring( tbl )&lt;br /&gt;
&lt;br /&gt;
    -- categories&lt;br /&gt;
    local cats = &amp;#039;&amp;#039;&lt;br /&gt;
    local natPrice&lt;br /&gt;
&lt;br /&gt;
    if title.nsText == &amp;#039;Exchange&amp;#039; then&lt;br /&gt;
        cats = cats .. &amp;#039;[[Category:Grand Exchange]]&amp;#039;&lt;br /&gt;
                    .. &amp;#039;[[Category:Wikia Game Guides exchange]]&amp;#039;&lt;br /&gt;
                    .. &amp;#039;[[Category:Grand Exchange by date updated|*&amp;#039; .. lang:formatDate( &amp;#039;c&amp;#039;, data.date ) .. data.itemId .. &amp;#039;]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
        if item ~= title.text then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange names that needs checking]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- have to preprocess this for it to work&lt;br /&gt;
        cats = cats .. frame:preprocess( &amp;#039;{{DEFAULTSORT:&amp;#039; .. data.item .. &amp;#039;}}&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
        if not data.itemId then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange items with no ID]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if not data.icon then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange items missing icon]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if data.price and data.value and ( data.alchable == nil or yesno( data.alchable ) ) then&lt;br /&gt;
            if mw.ustring.lower( item ) == &amp;#039;nature rune&amp;#039; then&lt;br /&gt;
                natPrice = data.price&lt;br /&gt;
            else&lt;br /&gt;
                natPrice = mw.loadData( &amp;#039;Module:Exchange/Nature rune&amp;#039; ).price&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            if math.floor( ( data.value * 0.6 ) - data.price - natPrice ) &amp;gt; 0 then&lt;br /&gt;
                cats = cats .. &amp;#039;[[Category:Profitable Alchemy Items]]&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            if math.floor( ( data.value * 0.4 ) - data.price - natPrice ) &amp;gt; 0 then&lt;br /&gt;
                cats = cats .. &amp;#039;[[Category:Profitable Low Alchemy Items]]&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            if math.floor( ( data.value * 0.3 ) - data.price ) &amp;gt; 0 then&lt;br /&gt;
                cats = cats .. &amp;#039;[[Category:Profitable General Store Items]]&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
        elseif not data.value then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange items missing value]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- this doesn&amp;#039;t allow for the update time to be in the previous day but less than 24 hours&lt;br /&gt;
        -- if that&amp;#039;s the case, then the page will end up in the 7 days category&lt;br /&gt;
        -- the same will happen for the other 2 categories too&lt;br /&gt;
        -- but it&amp;#039;s not so noticeable given the already elapsed time&lt;br /&gt;
        local lastUpdate = ( lang:formatDate( &amp;#039;z&amp;#039; ) - lang:formatDate( &amp;#039;z&amp;#039;, data.date ) + 365 * ( lang:formatDate( &amp;#039;Y&amp;#039; ) - lang:formatDate( &amp;#039;Y&amp;#039;, data.date ) ) + 3 ) / 7&lt;br /&gt;
        lastUpdate = round( lastUpdate, 0 )&lt;br /&gt;
 &lt;br /&gt;
        if lastUpdate == 1 then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Needs price update/7 days]]&amp;#039;&lt;br /&gt;
        elseif lastUpdate &amp;gt;= 2 and lastUpdate &amp;lt;= 4 then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Needs price update/28 days]]&amp;#039;&lt;br /&gt;
        elseif lastUpdate &amp;gt; 4 then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Needs price update/29+ days]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if not data.limit then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange items missing limit]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if not data.category then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange items missing category]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- Error checking&lt;br /&gt;
        if not data.price or data.price &amp;lt; 1 then&lt;br /&gt;
            cats = cats .. &amp;#039;[[Category:Exchange items with no price]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- help header&lt;br /&gt;
    local help = mw.html.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
        :attr( &amp;#039;id&amp;#039;, &amp;#039;gemw_guide&amp;#039; )&lt;br /&gt;
        :css( {&lt;br /&gt;
            padding = &amp;#039;5px 10px&amp;#039;,&lt;br /&gt;
            color = &amp;#039;#000&amp;#039;,&lt;br /&gt;
            border = &amp;#039;1px solid #aaa&amp;#039;,&lt;br /&gt;
            background = &amp;#039;#f2f2f2&amp;#039;&lt;br /&gt;
        } )&lt;br /&gt;
        :wikitext( &amp;#039;If you need assistance on editing this page, or trying to understand how these Exchange pages work, please add a comment to [[Talk:Grand Exchange Market Watch]].&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
    help = tostring( help )&lt;br /&gt;
&lt;br /&gt;
    local noErr, data = pcall( excgdata, { item }, true )&lt;br /&gt;
    &lt;br /&gt;
    if not noErr then&lt;br /&gt;
        data = &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return help .. &amp;#039;&amp;lt;br /&amp;gt;&amp;#039; .. tbl .. data .. cats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jawarrior1</name></author>
	</entry>
</feed>