پودمان:Imamatpedia
توضیحات این پودمان میتواند در پودمان:Imamatpedia/توضیحات قرار گیرد.
local fgetFAlist = require('Module:Imamatpedia/Selected').getFAlist
local fgetFPlist = require('Module:Imamatpedia/بوابات').getFPlist
local a = {}
function a.rnumber( frame )
d = {}
if (frame.args[1] =='fa' or frame.args[1] =='Selected' ) then
d = fgetFAlist()
return #d
elseif (frame.args[1] =='fp' or frame.args[1] =='بوابات' ) then
d = fgetFPlist()
local nb =0
for t,s in pairs(d) do
nb = nb+1
end
return nb
end
end
function a.rlist( frame )
d = {}
if(frame.args[1] =='ga' or frame.args[1] =='Good' ) then
d = fgetGAlist()
elseif (frame.args[1] =='fa' or frame.args[1] =='Selected' ) then
d = fgetFAlist()
end
math.randomseed( os.time() )
x = math.random(1,#d)
repeat
x1 = math.random(1,#d)
until x1 ~= x
repeat
x2 = math.random(1,#d)
until (x2 ~= x and x2 ~= x1)
return "[["..d[x1].."]] – [["..d[x].."]] – [["..d[x2].."]]"
end
function a.plist(frame)
local c = ''
local d = {}
if(frame.args[1] =='ga' or frame.args[1] =='Good' ) then
d = fgetGAlist()
for _,s in ipairs(d) do
c = c .. "\n# [[" .. s .. "]]"
end
elseif (frame.args[1] =='fa' or frame.args[1] =='Selected' ) then
d = fgetFAlist()
for _,s in ipairs(d) do
c = c .. "\n# [[" .. s .. "]]"
end
elseif (frame.args[1] =='fp' or frame.args[1] =='بوابات' ) then
d = fgetFPlist()
for t,s in pairs(d) do
c = c .. "\n# [[" ..t.."|".. s[3] .. "]]"
end
end
return c
end
----
---- _RandOne : النتيجة هي اسم عشوائي مقالة واحدة مختارة/جيدة
local function _getOnepDay( frame )
d = {}
math.randomseed( os.time() )
if (frame.args[1] =='dyk' or frame.args[1] =='learning' ) then
local nbf = mw.site.stats.pagesInCategory( 'Project list did you know', 'pages' )
if(type(nbf) ~= "number") then return '' end
---- x = math.random(1,nbf)
x = (math.floor(os.time()/(24*3600)) % nbf ) +1
return frame:expandTemplate{ title = 'Main page/Know/Current', args = { x } }
elseif (frame.args[1] =='fpic' or frame.args[1] =='Picture' ) then
d = fgetFPiclist()
local nbf=0
for t,s in pairs(d) do
nbf = nbf + 1
end
---- x = math.random(1,nbf)
x = math.floor(os.time()/(24*3600)) % nbf
local nb=0
for t,s in pairs(d) do
nb = nb + 1
if(nb == x) then
return frame:expandTemplate{ title = 'Main page/Main/Right/Picture/Template', args = { t, s[1], s[2] } }
end
end
x = math.floor(os.time()/(24*3600)) % nbf
local nb=0
for t,s in pairs(d) do
nb = nb + 1
if(nb == x) then
return frame:expandTemplate{ title = 'كلمة اليوم', args = { s[1], s[2] } }
end
end
elseif (frame.args[1] =='fp' or frame.args[1] =='بوابات' ) then
d = fgetFPlist()
local nbf=0
for title,items in pairs(d) do
nbf = nbf + 1
end
--- x = math.random(1,nbf)
x = math.floor(os.time()/(24*3600)) % nbf
local nb=0
for t,s in pairs(d) do
nb = nb + 1
if(nb == x) then
return frame:expandTemplate{ title = 'بوابة اليوم المختارة/قالب', args = { s[1], s[2], t , s[3] } }
end
end
elseif(frame.args[1] =='ga' or frame.args[1] =='Good' ) then
d = fgetGAlist()
elseif (frame.args[1] =='fa' or frame.args[1] =='Selected' ) then
d = fgetFAlist()
end
---x = math.random(1,#d)
x = math.floor(os.time()/(24*3600)) % #d
return x --d[x]
end
local function _LCount( items )
local nb = 0
for _, item in ipairs(items) do
nb = nb +1
end
return nb
end
local function _OneDay( frame )
local dayList = {}
local monthList = {}
local articles = {}
local nbarts = 0
math.randomseed( os.time() )
if(frame.args[1] =='Selected' or frame.args[1] =='Good' ) then
---- التأكد أولا بوجود مقالة مخصصة لهذا اليوم بالذات
dayList = mw.loadData('Module:Imamatpedia/'.. frame.args[1]..'/Date')
for date1, articles in pairs(dayList) do
if( date1 == mw.getContentLanguage():formatDate('Y-n-d') ) then
nbarts = _LCount(articles)
if(nbarts == 1) then
return articles[1]
elseif nbarts > 1 then
return articles[math.random(1,nbarts) ]
end
end
end
--- البحث عن ذكرى سنوية
monthList = mw.loadData('Module:Imamatpedia/'.. frame.args[1]..'/Month/'..mw.getContentLanguage():formatDate('n'))
articles = monthList[mw.getContentLanguage():formatDate('d')]
if(type(articles) ~= 'table') then
return ''
end
nbarts = _LCount(articles)
if(nbarts == 0) then
return ''
elseif nbarts == 1 then
return articles[1]
else
return articles[math.random(1,nbarts) ]
end
end
return ''
end
function a.selectArt(frame)
local title = _OneDay( frame )
if(title ~= '') then
return title
else
return _getOnepDay( frame )
end
end
----
----
return a