وحدة:الرئيسية

--وحدة لقوالب الصفحة الرئيسية  local fgetFAlist = require('وحدة:الرئيسية/مختارة').getFAlist local fgetGAlist = require('وحدة:الرئيسية/جيدة').getGAlist local fgetFPlist = require('وحدة:الرئيسية/بوابات').getFPlist local fgetFPiclist = require('وحدة:الرئيسية/صور').getFPiclist local fgetFWordlist = require('وحدة:الرئيسية/كلمة').getFWordlist   local a = {}   function a.rnumber( frame )     d = {}      if(frame.args[1] =='ga' or frame.args[1] =='جيدة' ) then     	d = fgetGAlist()     	return #d 	elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) 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 	elseif (frame.args[1] =='fpic' or frame.args[1] =='صور' ) then 		d = fgetFPiclist() 		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] =='جيدة' ) then     	d = fgetGAlist() 	elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) 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] =='جيدة' ) then     	d = fgetGAlist()     	for _,s in ipairs(d) do        		c = c .. "\n# [[" .. s .. "]]"     	end    	 	elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) 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] =='تعلم' ) then 		local nbf = mw.site.stats.pagesInCategory( 'قائمة مشروع هل تعلم', '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 = 'هل تعلم/حالية', args = {  x } }     elseif (frame.args[1] =='fpic' or frame.args[1] =='صور' ) 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 = 'صورة صفحة رئيسية', args = {  t, s[1],  s[2] } }        		end     	end         elseif (frame.args[1] =='fw' or frame.args[1] =='كلمة' ) then 		d = fgetFWordlist() 		local nbf=0     	for title,items in pairs(d) do        		nbf = nbf + 1     	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] =='جيدة' ) then     	d = fgetGAlist() 	elseif (frame.args[1] =='fa' or frame.args[1] =='مختارة' ) 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] =='مختارة' or frame.args[1] =='جيدة' ) then           	     	---- التأكد أولا بوجود مقالة مخصصة لهذا اليوم بالذات     	dayList = mw.loadData('وحدة:الرئيسية/'.. frame.args[1]..'/تاريخ')     	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('وحدة:الرئيسية/'.. frame.args[1]..'/شهر/'..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