Модуль:Песочница/GAN/Infobox/Fonctions/Compétition sportive
Перейти к навигации
Перейти к поиску
Документация
local p = {}
local item = require( 'Модуль:Песочница/GAN/Infobox/Localdata' ).item
local wikidata = require "Модуль:Песочница/GAN/Wikidata"
local countrymod = require "Модуль:Песочница/GAN/Country data"
local typeofteam = require "Модуль:Песочница/GAN/Dictionnaire Wikidata/Typeofteam"
function oldStringTable(args) -- copié du module Wikidata mais return nil au lieu deu {}, {} si aucune correspondance n'est trouvée dans wikidata
local claims = args.claims
if not claims then
claims = wikidata.getClaims(args)
end
if not claims or claims == {} then
return nil
end
local props = {} -- liste des propriétés associété à chaque string pour catégorisation et linkback
for i, j in pairs(claims) do
claims[i] = wikidata.formatStatement(j, args)
table.insert(props, j.mainsnak.property)
end
if args.removedupes and (args.removedupes ~= '-') then
claims = wikidata.addNewValues({}, claims) -- devrait aussi supprimer de props celles qui ne sont pas utilisées
end
return claims, props
end
-- date de la course pour adapter les drapeaux et nationalités des participants
local raceDate = wikidata.formatStatements{
entity = item,
property = {'P580', 'P585'},
numval = 1,
displayformat = 'raw'
}
local function formatPerson(person) -- retourne le nom d'une personne précédé du ou des drapeaux appropriés
local str = wikidata.formatEntity(person)
-- récupère la nationalité telle que stockée dans P27 (personnes) ou P17 (équipes)
local nationalities = wikidata.stringTable{entity = person, property = {'P27', 'P17'}, atdate = raceDate, displayformat = 'raw'}
if not nationalities then
return str
end
local flags = {}
for i, nation in pairs(nationalities) do
local flag, success = countrymod.standarddisplay(nation, {label = '-', date = 'default'})
if success then
str = flag .. ' ' .. str
end
end
return str
end
function p.winnerRow(label, winnertype)
local function wikidataval(winnertype)
-- si l'on ne connait pas le qualificatif, ne pas utiliser Wikidata
if not winnertype then
return nil
end
local winners = wikidata.stringTable{
entity = item,
property = 'P1346',
displayformat = 'raw',
excludespecial = true,
qualifier = 'P642',
qualifiervalue = winnertype
}
if not winners then
return nil
end
for i, winner in pairs(winners) do
winners[i] = formatPerson(winner)
end
local str = table.concat(winners, '<br />')
-- ajout rétrolien et cat
str = wikidata.formatAndCat{value = str, entity = entity, property = 'P1346'}
return str
end
return {type = 'row', label = label, value = param, wikidata = function() return wikidataval(winnertype) end}
end
function p.winnerRow2(label, param, winnertype)
local function wikidataval()
-- si l'on ne connait pas le qualificatif, ne pas utiliser Wikidata
if not winnertype then
return nil
end
local winners = oldStringTable{
entity = item,
property = 'P1346',
displayformat = 'raw',
excludespecial = true,
qualifier = 'P642',
qualifiervalue = winnertype
}
if not winners then
return nil
end
for i, winner in pairs(winners) do
winners[i] = formatPerson(winner)
end
local str = table.concat(winners, '<br />')
-- ajout rétrolien et cat
str = wikidata.formatAndCat{value = str, entity = entity, property = 'P1346'}
return str
end
if wikidataval == nil then
return nil
else
return {type = 'row', label = label, value = param, wikidata = wikidataval}
end
end
function p.typeofteam()
return {
type = 'row',
value = 'compet',
wikidata = {
property = 'P31',
showdate = true,
conjtype = '<br />',
sorttype = 'chronological',
speciallabels = typeofteam,
},
label = 'Statut',
plurallabel = 'Statuts'
}
end
return p