Module:GroupNameVariations: Difference between revisions

From The Seven Sages of Rome
No edit summary
No edit summary
Line 1: Line 1:
-- Module:SMW
local p = {}
local p = {}


p.hello = function (frame)
-- Return results
function p.ask(frame)
local str = "Hello World"
 
return str
    if not mw.smw then
        return "mw.smw module not found"
    end
 
    if frame.args[1] == nil then
        return "no parameter found"
    end
 
    local queryResult = mw.smw.ask( frame.args )
 
    if queryResult == nil then
        return "(no values)"
    end
 
    if type( queryResult ) == "table" then
        local myResult = ""
        for num, row in pairs( queryResult ) do
            myResult = myResult .. '* This is result #' .. num .. '\n'
            for property, data in pairs( row ) do
                local dataOutput = data
                if type( data ) == 'table' then
                    dataOutput = mw.text.listToText( data, ', ', ' and ')
                end
                myResult = myResult .. '** ' .. property .. ': ' .. dataOutput .. '\n'
            end
        end
        return myResult
    end
 
    return queryResult
end
end
return p

Revision as of 12:13, 4 June 2024

This module retrieves name variations associated with a given narrator from Semantic MediaWiki.

Usage

The module can be invoked using #invoke in a template or wiki page.

Parameters

The first unnamed parameter specifies the narrator's name whose name variations should be retrieved.

Behavior

The module queries Semantic MediaWiki for Has Name Variation properties associated with the specified Has Narrator value.

If no results are found, it returns "(no values)".

If multiple results are found, they are concatenated into a list separated by commas, with and before the last item.

Example Output

If NarratorName has the following data in Semantic MediaWiki:

Has Name Variation = John Doe

Has Name Variation = J. Doe

Has Name Variation = Jonathan D.

Then the module will return:

John Doe, J. Doe and Jonathan D.

Notes

The module relies on Semantic MediaWiki (mw.smw.ask).

If the query returns no results, (no values) is displayed.

The function groupMessages is defined but not used in this module.


-- Module:SMW
local p = {}

-- Return results
function p.ask(frame)

    if not mw.smw then
        return "mw.smw module not found"
    end

    if frame.args[1] == nil then
        return "no parameter found"
    end

    local queryResult = mw.smw.ask( frame.args )

    if queryResult == nil then
        return "(no values)"
    end

    if type( queryResult ) == "table" then
        local myResult = ""
        for num, row in pairs( queryResult ) do
            myResult = myResult .. '* This is result #' .. num .. '\n'
            for property, data in pairs( row ) do
                local dataOutput = data
                if type( data ) == 'table' then
                    dataOutput = mw.text.listToText( data, ', ', ' and ')
                end
                myResult = myResult .. '** ' .. property .. ': ' .. dataOutput .. '\n'
            end
        end
        return myResult
    end

    return queryResult
end