Модуль:Wikidata/Wikipedia
Для документации этого модуля может быть создана страница Модуль:Wikidata/Wikipedia/Документация
local p = {};
local wd = require('Модуль:WD');
--[[
function p.getSisterProjectLink( projectInterwikiLettter, projectName )
-- По умолчанию старается достать ссылку на русском, иначе - на родном (P103)
local entity = mw.wikibase.getEntityObject()
if entity == nil or entity.sitelinks == nil then
return ''
end;
local sitelink = entity.sitelinks['ru' .. projectName]
if sitelink ~= nil then
return projectInterwikiLettter .. ':' .. sitelink.title
end;
if entity.claims then
local propValues = entity.claims['P103']
if propValues ~= nil then
local codes = mw.loadData('Module:Wikidata:Dictionary/P424');
for i, propClaim in pairs(propValues) do
if propClaim.mainsnak and propClaim.mainsnak.datavalue and propClaim.mainsnak.datavalue.value and propClaim.mainsnak.datavalue.value["numeric-id"] then
local languageWikidataId = 'Q' .. propClaim.mainsnak.datavalue.value["numeric-id"];
local codesById = codes[languageWikidataId];
if ( codesById ) then
for j, code in pairs( codesById ) do
sitelink = entity.sitelinks[code .. projectName];
if sitelink ~= nil then
return projectInterwikiLettter .. ':' .. code .. ':' .. sitelink.title;
end;
end;
end;
end;
end;
end;
end;
return '';
end;
]]
--
function p.get_sitelink_for_human(entity, s_suffix)
return wd.get_multilingual_sitelink(entity, s_suffix, {'P1412', 'P103'});
end;
function p.getWikisourceLink()
return p.get_sitelink_for_human(mw.wikibase.getEntityObject(), 'wikisource');
-- return p.getSisterProjectLink( 's', 'wikisource' );
end;
function p.getWikiquoteLink()
return p.get_sitelink_for_human(mw.wikibase.getEntityObject(), 'wikiquote');
-- return p.getSisterProjectLink( 'q', 'wikiquote' );
end;
function p.getWikipediaLink()
return p.get_sitelink_for_human(mw.wikibase.getEntityObject(), 'wiki');
-- return p.getSisterProjectLink( 'w', 'wiki' );
end;
function p.getWikinewsLink()
return p.get_sitelink_for_human(mw.wikibase.getEntityObject(), 'wikinews');
-- return p.getSisterProjectLink( 'n', 'wikinews' );
end;
function p.getWikispeciesLink()
local e = mw.wikibase.getEntityObject();
if e ~= nil then
local sitelink = wd.get_sitelink(e, "specieswiki");
if sitelink ~= nil then
return 'species:' .. sitelink.title;
end;
end;
return nil;
end;
return p;