×
Create a new article
Write your page title here:
We currently have 22 articles on The Grand Library of Hylia. Type your article name above or click on one of the titles below and start writing!



The Grand Library of Hylia

Module:RandomCargoRecord: Difference between revisions

No edit summary
No edit summary
Line 11: Line 11:
         return string.format("<code>tableName</code> parameter is required")
         return string.format("<code>tableName</code> parameter is required")
     end
     end
    if hasErrors then return CATEGORY_INVALID_ARGS end


local countFields = 'COUNT(*)=total'
local countFields = 'COUNT(*)=total'
Line 18: Line 17:
local total = countResults.total
local total = countResults.total


local getRandom = require('Module:Random').number
local number = require('Module:Random').number
local queryFields = 'game,link'
local queryFields = 'game,link'
local countOffset = getRandom(1, total)
local countOffset = number(1, total)


local args = {
local args = {

Revision as of 06:48, 27 December 2023

Documentation for this module may be created at Module:RandomCargoRecord/doc

local p = {}
local cargo = mw.ext.cargo

function p.randomCargoRecord(frame)
    local getArgs = require('Module:Arguments').getArgs
    local args = getArgs(frame);
    local tableName = args[1]

    if tableName == nil or tableName == "" then
        hasErrors = true
        return string.format("<code>tableName</code> parameter is required")
    end

	local countFields = 'COUNT(*)=total'
	local countArgs = {}
	local countResults = cargo.query(tableName, countFields, countArgs)
	local total = countResults.total

	local number = require('Module:Random').number
	local queryFields = 'game,link'
	local countOffset = number(1, total)

	local args = {
		format = table,
		fields = queryFields,
		limit = 1,
		offset = countOffset
	}
	local result = cargo.query(tableName, fields, args)
    for r = 1, #results do
        local result = results[r]
        return string.format("<h1>%s</h1>", result.link)
    end
end

return p