Module:Store locations list: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
No edit summary
mNo edit summary
 
(23 intermediate revisions by the same user not shown)
Line 14: Line 14:
local inspect = require("Module:Inspect")
local inspect = require("Module:Inspect")


local p2pIcon = '[[File:Member icon.png|frameless|link=Pay-to-play]]'
--local p2pIcon = '[[File:Member icon.png|frameless|link=Pay-to-play]]'
local f2pIcon = '[[File:Free-to-play icon.png|frameless|link=Free-to-play]]'
--local f2pIcon = '[[File:Free-to-play icon.png|frameless|link=Free-to-play]]'
 
local p2pIcon = 'Yes'
local f2pIcon = 'No'


function p.main(frame)
function p.main(frame)
Line 40: Line 43:
             :tag('th'):wikitext('Seller'):done()
             :tag('th'):wikitext('Seller'):done()
             :tag('th'):wikitext('Location'):done()
             :tag('th'):wikitext('Location'):done()
             :tag('th'):wikitext('Price<br/>sold at'):attr('data-sort-type', 'number'):done()
             :tag('th'):wikitext('Buyable for'):attr('data-sort-type', 'number'):done()
             :tag('th'):wikitext('Price<br/>bought at'):attr('data-sort-type', 'number'):done()
             :tag('th'):wikitext('Sellable for'):attr('data-sort-type', 'number'):done()
             :tag('th'):wikitext('Members?'):done()
             :tag('th'):wikitext('Members?'):done()
         :done()
         :done()
Line 49: Line 52:
:tag('td'):wikitext(shop.seller):done()
:tag('td'):wikitext(shop.seller):done()
:tag('td'):wikitext(location):done()
:tag('td'):wikitext(location):done()
:tag('td')
:attr({['data-sort-value']=shop.buySortValue})
:wikitext(shop.buyvalue)
:done()
:tag('td')
:tag('td')
:attr({['data-sort-value']=shop.sellSortValue})
:attr({['data-sort-value']=shop.sellSortValue})
:wikitext(shop.sellvalue)
:wikitext(shop.sellvalue)
:done()
:tag('td')
:attr({['data-sort-value']=shop.buySortValue})
:wikitext(shop.buyvalue)
:done()
:done()
:tag('td')
:tag('td')
Line 64: Line 67:


     -- Create the rows for the output table
     -- Create the rows for the output table
     for _, shop in ipairs(data) do
     for _, shop in ipairs(data) do  
    mw.log("shop", inspect(shop))
   
     for i, location in ipairs(shop.location) do
     for i, location in ipairs(shop.location) do
        addShopRow(shop, location)
        addShopRow(shop, location)
Line 98: Line 99:
         '?Store currency #',
         '?Store currency #',
         '?Store notes',
         '?Store notes',
         '?Members',
         '?Members #',
'?Is members only #',
         offset = 0,
         offset = 0,
         limit = limit or 500,
         limit = limit or 500,
Line 111: Line 113:
     end
     end
     mw.log(string.format('SMW (store locations list): entries: %d, time elapsed: %.3f ms.', #smwdata, (t2 - t1) * 1000))
     mw.log(string.format('SMW (store locations list): entries: %d, time elapsed: %.3f ms.', #smwdata, (t2 - t1) * 1000))
   
    mw.log("smw data", inspect(smwdata))


     table.sort(smwdata, function(a, b) return b['Store sell price'] < a['Store sell price'] end)
     table.sort(smwdata, function(a, b) return b['Store sell price'] < a['Store sell price'] end)
Line 123: Line 123:
             table.insert(members, item['Store Is members only'])
             table.insert(members, item['Store Is members only'])
         elseif type(item['Is members only']) == 'boolean' then
         elseif type(item['Is members only']) == 'boolean' then
mw.log("members only")
            table.insert(members, item['Is members only'])
elseif type(item['Is members only']) == 'string' then
             table.insert(members, item['Is members only'])
             table.insert(members, item['Is members only'])
         end
         end
Line 144: Line 145:
         -- item['Region'] = region
         -- item['Region'] = region


mw.log("#members", #members)
mw.log("members", members)
       
         if #members == 1 then
         if #members == 1 then
Line 160: Line 158:
         -- Process the item and add it to the final data table
         -- Process the item and add it to the final data table
         local dataline = p.processData(item, editbtn)
         local dataline = p.processData(item, editbtn)
mw.log("dataline", inspect(dataline))


         table.insert(data, dataline)
         table.insert(data, dataline)
Line 191: Line 187:
     local sellvalue = item['Store sell price'] or ''
     local sellvalue = item['Store sell price'] or ''
     local sellSortValue = 0
     local sellSortValue = 0
mw.log("sellvalue", sellvalue)
mw.log("sell is 1e10", tonumber(sellvalue) == 1e10)


     if not(sellvalue == 1e10) then
     if not(sellvalue =='N/A') and not(tonumber(sellvalue) == 1e10) then
         sellvalue = tonumber(sellvalue)
         sellvalue = tonumber(sellvalue)


Line 213: Line 212:
         sellvalue = 'N/A'
         sellvalue = 'N/A'
     end
     end
mw.log("sellvalue 2", sellvalue)
      
      
     local buyvalue = item['Store buy price'] or ''
     local buyvalue = item['Store buy price'] or ''
     local buySortValue = 0
     local buySortValue = 0
     if not(buyvalue == 'N/A') then
 
mw.log("buyvalue", buyvalue)
mw.log("buy is 1e10", tonumber(buyvalue) == 1e10)
 
 
     if not(buyvalue == 'N/A') and not(tonumber(buyvalue) == 1e10) then
         buyvalue = tonumber(buyvalue)
         buyvalue = tonumber(buyvalue)
mw.log("buyvalue 2", buyvalue)
         if buyvalue then
         if buyvalue then
             buySortValue = buyvalue
             buySortValue = buyvalue
Line 230: Line 240:
             --    buyvalue = currencyImg .. buyvalue
             --    buyvalue = currencyImg .. buyvalue
             -- end
             -- end
        else
else
            buyvalue = editbtn -- If sellvalue can't be converted to a number it will default to the edit button
buyvalue = editbtn -- If buyvalue can't be converted to a number it will default to the edit button
        end
end
    end
else
buySortValue = buyvalue
buyvalue = 'N/A'
end
      
      
     -- members only?
     -- members only?
     local members = item['Members']
     local members = item['Members']
mw.log("members", members)
 
mw.log("members dump", inspect(members))
     if type(members) == 'table' then
     if type(members) == 'table' then
         -- contains yes and/or no
         -- contains yes and/or no
Line 265: Line 277:
         members = editbtn
         members = editbtn
     end
     end
mw.log("final members", members)


     return {
     return {

Navigation menu