-- Minimal mw.wikibase compatibility shim. -- This intentionally returns nil/empty results because the container does not -- include a local Wikidata repository. The goal is to keep zhwiki modules from -- crashing when they probe mw.wikibase. local wikibase = {} local function emptyTable() return {} end local dummyEntity = { id = nil, type = 'item', schemaVersion = 2, labels = {}, descriptions = {}, aliases = {}, claims = {}, statements = {}, sitelinks = {} } function dummyEntity:getLabel() return nil end function dummyEntity:getLabelWithLang() return nil, nil end function dummyEntity:getDescription() return nil end function dummyEntity:getAliases() return {} end function dummyEntity:getSitelink() return nil end function dummyEntity:getBestStatements() return {} end function dummyEntity:getAllStatements() return {} end function dummyEntity:formatPropertyValues() return {} end function dummyEntity:formatStatements() return {} end function dummyEntity:getProperties() return {} end local function newDummyEntity( id ) local entity = {} for k, v in pairs( dummyEntity ) do entity[k] = v end entity.id = id return entity end function wikibase.getEntity( id ) if id == nil or id == '' then return nil end return newDummyEntity( id ) end function wikibase.getEntityObject( id ) return wikibase.getEntity( id ) end function wikibase.getEntityIdForCurrentPage() return nil end function wikibase.getEntityIdForTitle() return nil end function wikibase.getEntityUrl( id ) if type( id ) == 'string' and id ~= '' then return 'https://www.wikidata.org/wiki/' .. id end return nil end function wikibase.getLabel() return nil end function wikibase.getLabelWithLang() return nil, nil end function wikibase.getLabelByLang() return nil end function wikibase.getDescription() return nil end function wikibase.getDescriptionWithLang() return nil, nil end function wikibase.getDescriptionByLang() return nil end function wikibase.getAliases() return {} end function wikibase.getSitelink() return nil end function wikibase.getBadges() return {} end function wikibase.getBestStatements() return {} end function wikibase.getAllStatements() return {} end function wikibase.getStatement() return nil end function wikibase.formatValue() return nil end function wikibase.renderSnak() return nil end function wikibase.renderSnaks() return nil end function wikibase.formatStatement() return nil end function wikibase.formatStatements() return {} end function wikibase.getReferencedEntityId() return nil end function wikibase.resolvePropertyId( id ) if type( id ) == 'string' and id:match( '^P%d+$' ) then return id end return nil end function wikibase.getPropertyId( id ) return wikibase.resolvePropertyId( id ) end function wikibase.getLanguageFallbacksFor( lang ) if type( lang ) == 'string' and lang ~= '' then return { lang } end return {} end function wikibase.setupInterface() wikibase.setupInterface = nil mw = mw or {} mw.wikibase = wikibase package.loaded['mw.wikibase'] = wikibase package.loaded['mw.wikibase.entity'] = dummyEntity end return wikibase