Module:Liste-rcu
Apparence
La documentation de ce module est générée par le modèle {{Documentation module}}.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local args = require('Module:Arguments')
local function interaction(data)
local result = ""
local users = {}
local currentLetter = 65 -- Code ASCII pour 'A'
-- Assigner une lettre à chaque utilisateur
for key, value in pairs(data) do
if value ~= "oui" then
users[value] = string.char(currentLetter)
currentLetter = currentLetter + 1
end
end
local alreadyDone = {}
for key1, value1 in pairs(data) do
for key2, value2 in pairs(data) do
if value1 ~= "oui" and value2 ~= "oui" and key1 ~= key2 then
local pair = value1 .. "-" .. value2
local pairReverse = value2 .. "-" .. value1
if not alreadyDone[pair] and not alreadyDone[pairReverse] then
result = result ..
mw.ustring
.format(
"\n[https://interaction-timeline.toolforge.org/?wiki=frwiki&user=%s&user=%s %s%s]",
mw.uri.encode(value1, "QUERY"), mw.uri.encode(value2, "QUERY"), users[value1], users[value2])
alreadyDone[pair] = true
end
end
end
end
return result
end
local function sigma(data)
return mw.ustring.format(
"[https://sigma.toolforge.org/editorinteract.py?users=%s&users=%s&users=%s&users=%s&users=%s&users=%s&startdate=&enddate=&ns=&server=frwiki sigma] ",
mw.uri.encode(data[1] or "", "QUERY"), mw.uri.encode(data[2] or "", "QUERY"),
mw.uri.encode(data[3] or "", "QUERY"), mw.uri.encode(data[4] or "", "QUERY"),
mw.uri.encode(data[5] or "", "QUERY"), mw.uri.encode(data[6] or "", "QUERY"),
mw.uri.encode(data[7] or "", "QUERY"))
end
local function socksfinder(data)
local result = "[https://socksfinder.toolforge.org/query?users="
for key, value in pairs(data) do
if key ~= "inter" then
result = result .. mw.uri.encode(value, "QUERY") .. ","
end
end
result = mw.ustring.sub(result, 1, -2) .. "&order=count_decreasing&cooccurrences=true socksfinder]"
return result
end
local function intersectcontribs(data)
local result = "[https://intersect-contribs.toolforge.org/index.php?project=frwiki&namespaceFilter=all&users%5B%5D="
local temp = {}
for key, value in pairs(data) do
if key ~= "inter" then
table.insert(temp, mw.uri.encode(value, "QUERY"))
end
end
result = result .. table.concat(temp, "&users%5B%5D=") .. " intersect-contribs]"
return result
end
local function timecard(data)
local result = "[https://spi-tools.toolforge.org/spi/timecard/SPI?users="
local temp = {}
for key, value in pairs(data) do
if key ~= "inter" then
table.insert(temp, mw.uri.encode(value, "QUERY"))
end
end
result = result .. table.concat(temp, "&users=") .. " timecard]"
return result
end
function p.render(frame)
local result = "Erreur dans l'utilisation du Modèle:Liste-rcu. Indiquez au moins un nom d'utilisateur "
local data = args.getArgs(frame)
local length = 0
-- Vérifier si des paramètres ont été fournis
for key, value in pairs(data) do
if key ~= "inter" then
length = length + 1
end
end
-- Si aucun paramètre n'est fourni, retourner le message d'erreur
if length == 0 then
return result
end
if type(data) == "table" then
if data.inter == "oui" then
if length > 1 then
result = ""
for key, value in pairs(data) do
if key ~= "inter" then
result = result .. mw.ustring.format(
"[[Spécial:Contributions/%s|%s]]\t",
mw.uri.encode(value, "QUERY"),
value
)
end
end
result = result .. "\n\n" .. sigma(data)
result = result .. "\n" .. socksfinder(data)
result = result .. "\n" .. intersectcontribs(data)
result = result .. "\n" .. timecard(data)
result = result .. interaction(data)
end
else
result = ""
for key, value in pairs(data) do
if key ~= "inter" then
result = result .. "\n\n* " .. frame:expandTemplate{
title = 'u-rcu',
args = {value}
}
end
end
if length > 1 then
result = result .. "\n\n" .. sigma(data)
result = result .. "\n" .. socksfinder(data)
result = result .. "\n" .. intersectcontribs(data)
result = result .. "\n" .. timecard(data)
result = result .. interaction(data)
end
end
end
return result
end
return p