Module:Sandbox/BlaueBlüte/Wikibase/lexFormSimple

From English Wikipedia @ Freddythechick
local m = {}

function m.getFormHavingFeature(frame)
	if frame == nil or frame.args == nil or frame.args.lexemeId == nil or frame.args.lexemeId == '' then
		return "<span class='error'>Please specify 'lexemeId' parameter.</span>"
	end
	local lexemeId = frame.args.lexemeId
	local requestedFeatureId = frame.args.featureId
	local requestedLanguageCode = frame.args.languageCode
	local lexeme = mw.wikibase.getEntity( lexemeId )
	local forms = lexeme.forms
	
	local s = "[no form having feature " .. requestedFeatureId .. "]"
	
	for i, form in pairs(forms) do
		local formFeatureIds = form.grammaticalFeatures
		for _, featureId in pairs(formFeatureIds) do
			if featureId == requestedFeatureId then
				local representations = form.representations
				for _, representation in pairs(representations) do
					if not requestedLanguageCode or representation.language == requestedLanguageCode then
						s = representation.value
					end
				end
			end
		end
	end
	
	return s
end

return m