Importer, Bürokraten, Moderatoren (CommentStreams), Strukturierte-Diskussionen-Bots, Oberflächenadministratoren, Push-Abonnementverwalter, Oversighter, Administratoren, Kampagnenbearbeiter (Hochladeassistent)
855
Bearbeitungen
KKeine Bearbeitungszusammenfassung |
K (21 Versionen von wikivoyage:Modul:IsIn importiert) |
||
| (11 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
local isInDoc = { | local isInDoc = { | ||
suite = 'IsIn', | suite = 'IsIn', | ||
serial = ' | serial = '2022-10-22', | ||
item = 99527605 | item = 99527605 | ||
} | } | ||
-- require( 'strict' ) | |||
local | local wu = require( 'Module:Wikidata utilities' ) | ||
local wikidata = { | local wikidata = { | ||
| Zeile 14: | Zeile 14: | ||
} | } | ||
local isIn = {} | local isIn = { | ||
moduleInterface = isInDoc | |||
} | |||
function isIn.isDisambig( frame ) | function isIn.isDisambig( frame ) | ||
local page, pageId | |||
if not frame then | if not frame then | ||
return false | return 'false' | ||
end | |||
if type( frame ) == 'table' and not frame.args then | |||
return 'false' | |||
end | end | ||
if type( frame ) == 'table' then | if type( frame ) == 'table' then | ||
page = frame.args.page or frame.args[ 1 ] or '' | page = frame.args.page or frame.args[ 1 ] or '' | ||
| Zeile 28: | Zeile 33: | ||
page = mw.text.trim( page ) | page = mw.text.trim( page ) | ||
if page == '' then | if page == '' then | ||
return false | return 'false' | ||
end | end | ||
pageId = mw.wikibase.getEntityIdForTitle( page ) | pageId = mw.wikibase.getEntityIdForTitle( page ) | ||
if not pageId then | if not pageId then | ||
return false | return 'false' | ||
end | end | ||
local values = | local values = wu.getValues( pageId, wikidata.instanceOf ) | ||
if values == '' then | if values == '' then | ||
return false | return 'false' | ||
end | end | ||
for i, v in ipairs( values ) do | for i, v in ipairs( values ) do | ||
if v.id == wikidata.disambigId then | if v.id == wikidata.disambigId then | ||
return true | return 'true' | ||
end | end | ||
end | end | ||
return false | return 'false' | ||
end | end | ||
| Zeile 65: | Zeile 70: | ||
targetPage = page.nsText .. ':' .. targetPage | targetPage = page.nsText .. ':' .. targetPage | ||
end | end | ||
local targetObj = mw.title.new( targetPage ) | |||
if not | if not targetObj then | ||
return 'invalidTitle' | return 'invalidTitle' | ||
elseif not | elseif not targetObj.exists then | ||
return 'notExisting' | return 'notExisting' | ||
elseif | elseif targetObj.isRedirect then | ||
return 'isRedirect' | return 'isRedirect' | ||
elseif isIn.isDisambig( targetPage ) then | elseif isIn.isDisambig( targetPage ) == 'true' then | ||
return 'isDisambig' | return 'isDisambig' | ||
else | else | ||
| Zeile 101: | Zeile 106: | ||
if page.nsText == '' then -- only main namespace | if page.nsText == '' then -- only main namespace | ||
page = 'Category:' .. page.text | page = 'Category:' .. page.text | ||
title = mw.title.new( page ) | local title = mw.title.new( page ) | ||
if title and title.exists then | if title and title.exists then | ||
return '[[' .. page.. '| ]]' | return '[[' .. page.. '| ]]' | ||
| Zeile 107: | Zeile 112: | ||
end | end | ||
return '' | return '' | ||
end | end | ||
return isIn | return isIn | ||