Modul:Random portal component: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
Tidak ada ringkasan suntingan
 
(4 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 1:
-- This module implements [[Template:Random portal component]] [[en:Module:Random portal component]]
 
local p = {}
Baris 10:
local function subPageTrackingCategories(pages, max, header)
local retval = "";
local availableSubPageCount = 0;
local i;
local thispagetitle = mw.title.getCurrentTitle().text
 
-- don't track DYK etc, only selected/featured articles, biogs etc
if ((string.find(header, "/[sStT]electederpilih") == -1) and (string.find(header, "/[fFpP]eaturedilihan") == -1)) then
return retval
end
Baris 23 ⟶ 21:
end
 
-- no tracking if this is a subpage
if ((mw.ustring.match(thispagetitle, "/") ~= nil) and (thispagetitle ~= "AC/DC")) then
return retval
end
 
myMaxCheck local maxNum = tonumber(max)
-- limit checking to prevent Lua overload
local myMaxCheckavailableSubPageCount = 60maxNum
 
if tonumber(max) < myMaxCheck then
-- Check for missing subpages at end of alleged number range
myMaxCheck = tonumber(max)
while availableSubPageCount > 0 and not mw.title.new(pages.subpage .. '/' .. tostring(availableSubPageCount)).exists do
availableSubPageCount = availableSubPageCount +- 1;
end
localif availableSubPageCount =< maxNum then 0;
for i=1,myMaxCheck do
retval = retval .. "[[Kategori:Komponen portal acak dengan subhalaman yang tersedia lebih sedikit dari maks yang ditentukan]]"
local aSubPage = mw.title.new(pages.subpage .. '/' .. i)
else
if (aSubPage.exists) then
-- Check for spurious subpages beyond end of alleged number range
availableSubPageCount = availableSubPageCount + 1;
local aSubPage =while mw.title.new(pages.subpage .. '/' .. itostring(availableSubPageCount + 1)).exists do
availableSubPageCount = availableSubPageCount + 1
end
if (availableSubPageCount <> tonumber(max))maxNum then
end
retval = retval .. "[[Kategori:Komponen portal acak dengan lebih banyak subhalaman yang tersedia daripada jumlah maksimal]]"
if myMaxCheck >= tonumber(max) then
if (availableSubPageCount < tonumber(max)) then
retval = retval .. "[[Category:Random portal component with fewer available subpages than specified max]]"
elseif (availableSubPageCount > tonumber(max)) then
retval = retval .. "[[Category:Random portal component with more available subpages than specified max]]"
end
end
 
-- before categorising, check what type of subpage we are categorising, and if detected, categorise images separately
local subpageType = "subpagessubhalaman" -- generic type
local subpageName = pages.subpage
subpageName = mw.ustring.gsub(subpageName, "^[^/]*/", "")
subpageName = mw.ustring.lower(subpageName)
if ((mw.ustring.find(subpageName, "picturefoto", 1, true) ~= nil) or
(mw.ustring.find(subpageName, "imagegambar", 1, true) ~= nil) or
(mw.ustring.find(subpageName, "panorama", 1, true) ~= nil)) then
subpageType = "imagesubhalaman subpagesgambar"
end
if (availableSubPageCount < 2) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan lesskurang thandari 2 available " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 5) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 2–5 available " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 10) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 6–10 available " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 15) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 11–15 available " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 20) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 16–20 available16-20 " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 25) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 21–25 available21-25 " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 30) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 26–30 available " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 40) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 31–40 available " .. subpageType .. " tersedia]]"
elseif (availableSubPageCount <= 50) then
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan 41–50 available " .. subpageType .. " tersedia]]"
else
retval = retval .. "[[CategoryKategori:RandomKomponen portal componentacak withdengan overlebih dari 50 available " .. subpageType .. " tersedia]]"
end
return retval;
Baris 100 ⟶ 99:
pages.root = args.rootpage or currentTitle.prefixedText
pages.subpage = pages.root .. '/' .. expandArg(args, 'subpage')
local i;tries = 10
pages.random = pages.subpage .. '/' .. getRandomNumber(args.max)
repeat
pages.random = pages.subpage .. '/' .. getRandomNumber(args.max)
tries = tries - 1
until tries < 1 or mw.title.new(pages.random).exists
pages.footer = 'Template:Box-footer'
return pages
Baris 115 ⟶ 118:
)
if mw.title.getCurrentTitle().namespace == 100 then -- is in the portal namespace
msg = msg .. '[[CategoryKategori:PortalsPortal needingyang attentionmembutuhkan perhatian]]'
end
return msg
Baris 172 ⟶ 175:
ret[#ret + 1] = getRandomSubpageContent(frame, pages)
ret[#ret + 1] = getFooter(frame, pages, string.format(
'[[/NominateNominasikan/%s|SuggestUsulkan]] • [[%s|%s]] ',
expandArg(args, 'subpage'),
pages.subpage,
args.footer or 'ArchiveArsip'
))