Modul:Wikidata: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Hidayatsrf (bicara | kontrib) fix Tag: Dikembalikan Suntingan perangkat seluler Suntingan peramban seluler Suntingan seluler lanjutan |
Membatalkan suntingan berniat baik oleh Hidayatsrf: Terdapat beberapa kendala teknis saat menampilkan beberapa data raw, dikembalikan untuk sementara waktu (A Járőröknek!) Tag: Pembatalan Dikembalikan |
||
Baris 1:
-- version
local p = {}
Baris 35:
},
["years-old"] = {
["singular" ["plural"] = "", -- years old
["paucal"] = "", -- for languages with 3 plural forms as in {{PLURAL:$1|singular|paucal|plural}}
},
["cite"] = { -- cite parameters
Baris 67:
["categoryprop"] = "", -- Category:Pages using Wikidata property $1 (void for no local category)
["categoryref"] = "", -- Category:Pages with references from Wikidata (void for no local category)
["addfallback"] = {}
}
Baris 114 ⟶ 112:
tableMerge(cases, res.cases)
end
end
end
Baris 129 ⟶ 123:
if mw.language.isKnownLanguageTag(langcode or '') == false then
if not mw.title.getCurrentTitle().isContentPage then
langcode = cframe:
end
if mw.language.isKnownLanguageTag(langcode or '') == false then
Baris 241 ⟶ 235:
if icon then
if lang and lang ~= uselang then
ret_lang = "
end
if label_id and (lang == nil or lang ~= uselang) then
Baris 248 ⟶ 242:
namespace = 'Property:'
end
ret_icon = "
untranslated = true
end
Baris 275 ⟶ 267:
end
-- Add an icon for editing a statement with requirements for
local function addEditIcon(parameters)
local ret = ''
if parameters.editicon and parameters.id and parameters.property then
local icon_style = parameters.editicon == "right" and ' style="float: right;"' or ''
ret = ' <span class="penicon" data-bridge-edit-flow="single-best-value"'
.. ""
.. "</span>"
if isSet(i18n.categoryprop) then
Baris 401 ⟶ 390:
end
return data
end
Baris 527 ⟶ 506:
local function getUnit(amount, id, parameters) -- get unit symbol or name
local suffix = ''
if
-- get unit symbol
local unit_symbol = unitSymbol(id, parameters.lang)
if isSet(unit_symbol) then
suffix = unit_symbol
end
end
if suffix == '' then -- formatting=unit, or formatting=unitcode not found
-- get unit
local unit_label, lang = getLabelByLangs(id, parameters.lang)
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false)
else
suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon)
Baris 636 ⟶ 608:
conv_amount = math.floor(amount/10^6 + 0.5)
conv_suffix = ' M' .. string.sub(suffix, 2)
end
end
Baris 648 ⟶ 615:
if string.sub(parameters.formatting or '', 1, 8) == "duration" then
local sec = tonumber(conv_amount or amount)
if parameters.formatting == '
local intervals = {"hours", "minutes", "seconds"}
local sec2table = lang_obj:getDurationIntervals(sec, intervals)
Baris 674 ⟶ 635:
end
return duration
else
return lang_obj:formatDuration(sec)
end
end
if parameters.case then
amount = case(parameters.case, amount, parameters.lang[1]
elseif parameters.formatting ~= 'raw' then
amount = lang_obj:formatNum(tonumber(amount))
end
if conv_amount then
Baris 738 ⟶ 697:
end
local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp)
ret = string.gsub(ret, "^(%[?%[?)0+", "%1") --
ret = string.gsub(ret, "( %[?%[?)0+", "%1")
return ret
Baris 789 ⟶ 748:
end
-- format data value wikibase-entityid
local function printDatatypeEntity(data, parameters)
local entity_id = data['id']
Baris 805 ⟶ 764:
if parameters.case ~= 'gender' then
labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id)
end
local ret1, ret2
Baris 846 ⟶ 802:
return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2
end
Baris 889 ⟶ 828:
local function getSnakValue(snak, parameters)
if snak.snaktype == 'value' then
if snak.datatype == "string" then
return printDatatypeString(snak.datavalue.value, parameters)
-- other data value string, tabular-data not implemented
elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then
return printDatatypeMedia(snak.datavalue.value, parameters)
elseif snak.datatype == "url" then
return printDatatypeUrl(snak.datavalue.value, parameters)
Baris 907 ⟶ 843:
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusical(snak.datavalue.value, parameters.formatting)
-- other data types
elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then
return printDatatypeEntity(snak.datavalue.value, parameters)
elseif snak.datatype == 'monolingualtext' then
return printDatatypeMonolingual(snak.datavalue.value, parameters)
Baris 928 ⟶ 859:
return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain()
elseif snak.snaktype == 'somevalue' then
if parameters.formatting == 'raw'
return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain()
end
Baris 974 ⟶ 905:
elseif snak[1] then -- a multi qualifier
local result, sortkey = {}, {}
local maxvals = tonumber(parameters.
for idx in pairs(snak) do
result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters)
Baris 1.013 ⟶ 944:
-- see d:Help:Sources
local function getReferences(claim, parameters)
if not isSet(parameters.references)
local lang = parameters.lang
local maxrefs = tonumber(parameters.references) or 1
Baris 1.042 ⟶ 971:
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
end
refs[snakkey] = refparts
Baris 1.143 ⟶ 1.068:
end
end
if type(result) == 'table' and #result > 0 and isSet(i18n.categoryref) then
return mw.text.listToText(result) .. "[[" ..i18n.categoryref .. "]]"
end
return
end
Baris 1.238 ⟶ 1.155:
parameters.property = string.upper(args.property or "")
local qualifierId = {}
qualifierId[1] = getArg(string.upper(args.qualifier
local i = 2
while isSet(args["qualifier" .. i]) do
Baris 1.246 ⟶ 1.163:
parameters.formatting = getArg(args.formatting)
parameters.convert = getArg(args.convert)
parameters.case = args.case
parameters.list = getArg(args.list, true, {firstrank='bestrank'})
parameters.shownovalue = getArg(args.shownovalue, true)
parameters.separator = getArg(args.separator)
parameters.conjunction = getArg(args.conjunction, parameters.separator)
parameters.qseparator =
parameters.qconjunction =
local sorting_col = args.tablesort
local sorting_up = (args.sorting or "") ~= "-1"
local rowformat = args.rowformat
parameters.references =
local showerrors = args.showerrors
local default = args.default
Baris 1.281 ⟶ 1.186:
-- fetch property
local claims = {}
local bestrank = (parameters.
for p in string.gmatch(parameters.property, 'P%d+') do
claims = getStatements(parameters.id, p, bestrank)
Baris 1.290 ⟶ 1.195:
end
if #claims == 0 then
end
Baris 1.301 ⟶ 1.205:
parameters.separator = parameters.separator or "<br />"
parameters.conjunction = parameters.conjunction or "<br />"
parameters.qseparator =
parameters.qconjunction =
if not rowformat then
rowformat = "$0 ($1"
Baris 1.422 ⟶ 1.326:
local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank)
if #claim2 > 0 then
valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params)
end
Baris 1.438 ⟶ 1.340:
sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq
if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then
valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang
if whitelist[j] and whitelist[j][valueq or ""] then
elseif blacklist[j] and blacklist[j][valueq or ""] then
rowlist[#values] = false
elseif ignorevalue[j] and ignorevalue[j][valueq or ""] then
values[#values]["col" .. j] = nil
elseif selectvalue[j] and not selectvalue[j][valueq or ""] then
end
end
Baris 1.481 ⟶ 1.361:
if not value and showerrors then value = error end
if value then
if isSet(parameters.references
refs[#refs]["col0"] = reference
values[#values]["col0"] = value
Baris 1.512 ⟶ 1.390:
table.sort(sortindices, comparator)
end
local maxvals = tonumber(parameters.
result = {}
for idx in pairs(values) do
local valuerow = values[sortindices[idx]]
local reference
value = valuerow["col0"]
Baris 1.547 ⟶ 1.425:
value = value .. reference
end
if isSet(value
result[#result + 1] = value
if not parameters.list or (maxvals and maxvals == #result) then
Baris 1.556 ⟶ 1.434:
if args.query == 'num' then
result_query =
for _, v in pairs(rowlist) do
result_query = result_query + (v and 1 or 0)
end
end
if #result > 0 then
Baris 1.570 ⟶ 1.451:
local claim = claims[sortindices[1]]
result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters)
if result and isSet(parameters.references) then result = result .. getReferences(claim, parameters) end
if args.query == 'num' then result_query = 1 end
end
Baris 1.893 ⟶ 1.767:
dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision}
dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+"))
dates[1].min.month = tonumber(mw.ustring.match(birth.time, "\-(%d%d)\-"))
dates[1].min.day = tonumber(mw.ustring.match(birth.time, "\-(%d%d)T"))
dates[1].max = mw.clone(dates[1].min)
dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision}
dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+"))
dates[2].min.month = tonumber(mw.ustring.match(death.time, "\-(%d%d)\-"))
dates[2].min.day = tonumber(mw.ustring.match(death.time, "\-(%d%d)T"))
dates[2].max = mw.clone(dates[2].min)
Baris 1.944 ⟶ 1.818:
if args.formatting == 'unit' then
local langs = findLang(args.lang)
local yo, yo_sg, yo_pl, yo_pau
if langs[1] == wiki.langcode then
yo_pl = i18n["years-old"].plural
yo_pau = i18n["years-old"].paucal
end
if not isSet(yo_pl
yo_sg = yo_pl
end
if not isSet(yo_pau) then
yo_pau = yo_pl
end
yo = mw.language.new(langs[1]):plural(old_max, {yo_sg, yo_pau, yo_pl})
if mw.ustring.find(yo, '$1', 1, true) then
old_expr = mw.ustring.gsub(yo, "$1", old)
Baris 2.045 ⟶ 1.923:
local prop = mw.text.trim(args[1] or '')
local num = {}
if not isSet(prop) and frame.args then
for k, v in pairs(pargs) do
end
for k, v in pairs(frame.args) do
end
_, num = p.claim(
return num
elseif args[2] then -- qualifier
|