|
|
(15 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| local p = {} | | local p = {} |
| local lang = mw.language.getContentLanguage()
| |
| local var = mw.ext.VariablesLua
| |
| local params = require('Module:Paramtest')
| |
| local yesno = require('Module:Yesno')
| |
| local currency_image = require("Module:Currency Image")
| |
| local commas = require("Module:Addcommas")
| |
|
| |
|
| |
|
| |
| local geprices_data = mw.loadJsonData('Module:GEPrices/data.json')
| |
|
| |
| local ptitle = mw.title.getCurrentTitle()
| |
| local ns = ptitle.nsText
| |
| local title = ptitle.fullText
| |
| local pgTitle = ptitle.text
| |
|
| |
|
| | local coins = require('Module:Coins') |
| | local exchange = require('Module:Exchange') |
|
| |
|
| | -- |
| | -- Module access point |
| | -- |
| | function p._main(target) |
| | -- return target |
| | if not target then |
| | return 'N/A' |
| | end |
|
| |
|
| | target = tostring(target) |
| | local amount = exchange._price(target) |
| | return coins._amount(amount) |
| | end |
|
| |
|
| | -- |
| | -- {{Coins}} access point |
| | -- |
| function p.main(frame) | | function p.main(frame) |
| local args = frame:getParent().args
| | local args = frame:getParent().args |
| -- Params and defaults
| | return p._main(args[1]) |
| local name, stock, buyvalue, sellvalue, geprice = params.defaults{
| |
| {args.geprice or args.geprice, ''}
| |
| }
| |
| local itemvalue = ''
| |
| local gemwname = params.default_to(args.gemwname,name)
| |
| local smwname = params.default_to(args.smwname,name)
| |
| local displayname = params.default_to(args.displayname or args.DisplayName,name)
| |
| local image = 'File:' .. params.default_to(args.image or args.Image, name .. '.png')
| |
| local gemw = yesno(args.gemw or 'yes', false)
| |
| local restock = params.default_to(args.restock or args.Restock,-1)
| |
|
| |
| -- Check precached Module:GEPrices/data
| |
| if gemw and geprice == '' then
| |
| local cached_price = geprices_data[gemwname]
| |
| if type(cached_price) == 'number' and cached_price > 0 then
| |
| geprice = cached_price
| |
| end
| |
| end
| |
|
| |
| -- Lookup GE price
| |
| if gemw and geprice == '' then
| |
| local has_geprice, geprice_check = pcall(find_geprice,gemwname)
| |
| if has_geprice and geprice_check > -1 then
| |
| geprice = geprice_check
| |
| end
| |
| end
| |
|
| |
| -- Lookup GE value
| |
| if gemw and itemvalue == '' then
| |
| local has_gevalue, gevalue = pcall(find_gevalue,gemwname)
| |
| if has_gevalue and gevalue > -1 then
| |
| itemvalue = gevalue
| |
| end
| |
| end
| |
|
| |
| | |
| | |
|
| |
| -- Check precached Module:GEHighAlch/data - gets GE alch so inaccurate
| |
| if itemvalue == '' then
| |
| local highalch_data = mw.loadJsonData('Module:GEHighAlchs/data.json')
| |
| local cached_data = highalch_data[name]
| |
| if type(cached_data) == 'number' and cached_data > -1 then
| |
| itemvalue = cached_data/.6
| |
| end
| |
| end
| |
|
| |
| | |
|
| |
| buyvalue = commas._strip(buyvalue)
| |
| sellvalue = commas._strip(sellvalue)
| |
| local buy_smw = tonumber(buyvalue)
| |
| local sell_smw = tonumber(sellvalue) or 1e10
| |
| local ge_sort = tonumber(geprice)
| |
| local buyCurrency = ''
| |
| local sellCurrency = ''
| |
| | |
| | |
| | |
| if gemw and tonumber(geprice) ~= nil then
| |
| geprice = showCurrencyAmount('Pkp', geprice)
| |
| else
| |
| ge_sort = 0
| |
| geprice = 'Not sold'
| |
| end
| |
|
| |
| if stock=='inf' then stock='∞' end --inf is easier to type
| |
| if stock=='∞' then restock='N/A' end --self-documenting code
| |
|
| |
| local ret = mw.html.create('tr'):css('text-align','center')
| |
| if not hideimage then
| |
| ret:tag('td'):wikitext(mw.ustring.format('[[%s|link=]]', image, name))
| |
| end
| |
| -- no hideXXX parameter for the column that lists the actual items.
| |
| ret:tag('td'):css('text-align','left'):wikitext(mw.ustring.format('%s', name, displayname))
| |
| | |
|
| |
| | |
| if not hidege then
| |
| ret:tag('td')
| |
| :attr('data-sort-value', ge_sort)
| |
| :wikitext(geprice)
| |
| :done()
| |
| end
| |
|
| |
|
| |
|
| |
| local onMain = ns == '' or ns == 'RuneScape'
| |
| if onMain and useSmw then
| |
| local smw = {}
| |
| local smw_sub = {}
| |
| local source = pgTitle
| |
| smw['Sells item'] = name
| |
| smw_sub['Sold by'] = source
| |
| smw_sub['Sold item image'] = image
| |
| smw_sub['Sold item'] = name
| |
| smw_sub['Sold item text'] = displayname
| |
| smw_sub['Store stock'] = stock
| |
| smw_sub['Restock time'] = restock
| |
| smw_sub['Store sell price'] = sell_smw --type = number for sorting purposes
| |
| smw_sub['Store buy price'] = buy_smw or 'N/A'
| |
| smw_sub['Store currency'] = currency
| |
| smw_sub['Store notes'] = namenotes
| |
| smw_sub['Store delta'] = delta
| |
| mw.smw.subobject(smw_sub) -- add item subobject to page
| |
| mw.smw.set(smw) -- add data to page
| |
| end
| |
| return tostring(ret)
| |
| end | | end |
|
| |
|
| | | --[[ DEBUG = |
| | | = p._main('Watering can') |
| function showCurrencyAmount(currency, amount)
| | = p._main() |
| local image = currency and currency_image(currency, amount) or ''
| | --]] |
| if image ~= '' and currency and tonumber(amount) then
| |
| return string.format('[[File:%s|link=%s]] %s', image, currency, commas._add(amount))
| |
| else
| |
| return amount
| |
| end
| |
| end
| |
|
| |
|
| return p | | return p |