| مسابقه دانشدخت | |
| اسلامیکال از تاریخ ۱۵ دی تا ۲۰ بهمن، میزبان یک همایه با موضوع زنان است. شما میتوانید در مسابقه مقالهنویسی دانشدخت، شرکت کنید و با نگارش مقاله، از جوایز آن بهرهمند باشید. اگر به موضوعات مربوط با زنان علاقهمندید، این فرصت را از دست ندهید. فهرستی از مقالات پیشنهادی جهت ایجاد یا ویرایش در اینجا وجود دارد. |
پودمان:Ayat-Navigator: تفاوت میان نسخهها
پرش به ناوبری
پرش به جستجو
جز (ipairs*) |
(prev_aye) |
||
| (۳۱ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد) | |||
| خط ۱: | خط ۱: | ||
require('strict') | |||
local p = {} | local p = {} | ||
local args = {} | |||
local num_con = require('Module:Numeral converter').convert | local num_con = require('Module:Numeral converter').convert | ||
local getArgs = require('Module:Arguments').getArgs | |||
--local cfg = mw.loadData('Module:Ayat-Navigator/configs') | --local cfg = mw.loadData('Module:Ayat-Navigator/configs') | ||
local function getData(sure) | local function getData(sure, data_type) | ||
if (data_type=="len") then | |||
return require('Module:Ayat-Navigator/Sure-Lengths') | |||
end | |||
if (data_type=="joze_hezb") then | |||
return require('Module:Ayat-Navigator/Joze-Hezb') | |||
end | |||
if (data_type=="aye") then | |||
return require('Module:Ayat-Navigator/Q' .. sure) | |||
end | |||
if (data_type=="name_num") then | |||
return require('Module:Ayat-Navigator/nums-names') | |||
end | |||
local title = mw.title.new('Module:Ayat-Navigator/' .. sure) | local title = mw.title.new('Module:Ayat-Navigator/' .. sure) | ||
if not (title and title.exists) then return nil end | if not (title and title.exists) then return nil end | ||
| خط ۱۱: | خط ۳۲: | ||
function p.named_gen(frame) | function p.named_gen(frame) | ||
local listitems = "" | local listitems = "" | ||
args = getArgs(frame) | |||
if | local sure_num = args["sure_num"] | ||
if getData(num_con("en", sure_num), "ayat_data") then | |||
local data = getData(num_con("en", sure_num), "ayat_data") | |||
if data.ayat_namdar then | |||
for k, v in pairs(data.ayat_namdar) do | |||
listitems = listitems .. '\n* ' .. v | |||
end | |||
end | |||
end | end | ||
if | return listitems | ||
args = getArgs(frame) | end | ||
function p.ayat_gen(frame) | |||
local listitems = "" | |||
args = getArgs(frame) | |||
local aye_num = num_con("en", args["aye_num"]) | |||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
local sure = args["sure"] | |||
if getData(sure_num, "len") then | |||
local data = getData(sure_num, "len") | |||
if tonumber(aye_num) then | |||
for i = 1, data.lengths[sure_num] do | |||
listitems = listitems .. | |||
'\n* [[آیه ' .. num_con("fa", i) .. ' سوره ' .. sure .. '|' | |||
.. num_con("fa", i) .. ']]' | |||
end | |||
end | |||
end | |||
return listitems | |||
end | |||
function p.mortabet(frame) | |||
local listitems = "" | |||
args = getArgs(frame) | |||
local sure_num = args["sure_num"] | |||
if getData(num_con("en", sure_num), "ayat_data") then | |||
local data = getData(num_con("en", sure_num), "ayat_data") | |||
if data.mortabet then | |||
for k, v in pairs(data.mortabet) do | |||
listitems = listitems .. '\n* ' .. v | |||
end | |||
end | |||
end | end | ||
return listitems | |||
end | |||
if getData( | local function hezb_calculator(surenum, ayenum) | ||
data = getData( | if getData(surenum, "joze_hezb") and | ||
tonumber(surenum) and | |||
tonumber(ayenum) then | |||
local data = getData(surenum, "joze_hezb") | |||
local hezbs = data.hezbs | |||
for | for i= 1, 120 do | ||
local hezb_ini_sure = tonumber(hezbs[i].AzAvaleAye[1]) | |||
local hezb_fin_sure = tonumber(hezbs[i].TaAkharAye[1]) | |||
local hezb_ini_aye = tonumber(hezbs[i].AzAvaleAye[2]) | |||
local hezb_fin_aye = tonumber(hezbs[i].TaAkharAye[2]) | |||
if (hezb_ini_sure <= surenum) and | |||
(hezb_fin_sure >= surenum) and | |||
(hezb_ini_sure == hezb_fin_sure) then | |||
if (hezb_ini_aye <= ayenum) and | |||
(hezb_fin_aye >= ayenum) then | |||
return i | |||
end | |||
elseif (hezb_ini_sure <= surenum) and | |||
(hezb_fin_sure >= surenum) and | |||
(hezb_ini_sure < hezb_fin_sure) then | |||
if (surenum == hezb_ini_sure) then | |||
if (hezb_ini_aye <= ayenum) then | |||
return i | |||
end | |||
elseif (surenum > hezb_ini_sure) and | |||
(surenum < hezb_fin_sure) then | |||
return i | |||
elseif (surenum == hezb_fin_sure) then | |||
if (ayenum <= hezb_fin_aye) then | |||
return i | |||
end | |||
end | |||
end | |||
end | end | ||
end | end | ||
end | end | ||
function p. | function p.get_hezb(frame) | ||
local | args = getArgs(frame) | ||
local aye_num = tonumber(num_con("en", args["aye_num"])) | |||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
return hezb_calculator(sure_num, aye_num) | |||
end | |||
function p.get_joze(frame) | |||
args = getArgs(frame) | |||
if | local aye_num = tonumber(num_con("en", args["aye_num"])) | ||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
if getData(sure_num, "joze_hezb") then | |||
local data = getData(sure_num, "joze_hezb") | |||
local hezbs = data.hezbs | |||
local hezb = hezb_calculator(sure_num, aye_num) | |||
for i= 1, 120 do | |||
if (hezb == i) then | |||
return hezbs[i].JozeHezb[1] | |||
end | |||
end | |||
end | end | ||
end | |||
function p.get_tarjoms(frame) | |||
args = getArgs(frame) | |||
if | local aye_num = tonumber(num_con("en", args["aye_num"])) | ||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
local motarjem = args["motarjem"] | |||
if (motarjem == "خرمشاهی") then | |||
motarjem = "Khoramshahi" | |||
elseif (motarjem == "گمشادزهی") then | |||
motarjem = "Gomshadzehi" | |||
else | |||
motarjem = "" | |||
end | end | ||
aye_num | if not (aye_num and sure_num and motarjem) then | ||
return | |||
end | |||
if getData(num_con("en", sure_num), "tarjoms") then | |||
local data = getData(num_con("en", sure_num), "tarjoms") | |||
return data.tarjoms[aye_num][motarjem] | |||
end | |||
end | |||
function p.get_aye(frame) | |||
args = getArgs(frame) | |||
local aye_num = tonumber(num_con("en", args["aye_num"])) | |||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
local sure_name = args["sure_name"] | |||
if aye_num and sure_num and not sure_name then | |||
if getData(sure_num, "aye") then | |||
local data = getData(sure_num, "aye") | |||
return data.ayat[aye_num] | |||
end | |||
elseif aye_num and not sure_num and sure_name then | |||
if getData(sure_name, "name_num") then | |||
local suresnums = getData(sure_num, "name_num") | |||
if suresnums.names_nums[sure_name] then | |||
local surenum = suresnums.names_nums[sure_name] | |||
if getData(surenum, "aye") then | |||
local data = getData(surenum, "aye") | |||
return data.ayat[aye_num] | |||
end | |||
end | |||
end | end | ||
end | end | ||
end | |||
function p.next_aye(frame) | |||
args = getArgs(frame) | |||
local aye_num = tonumber(num_con("en", args["aye_num"])) | |||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
local sure_name = args["sure_name"] | |||
local data_len = getData("", "len") | |||
local data_nn = getData("", "name_num") | |||
return | local sure_name_next | ||
if (sure_num < 114) then | |||
sure_name_next = data_nn.nums_names[sure_num+1] | |||
elseif ((sure_num == 114) and (aye_num < 6)) then | |||
sure_name_next = data_nn.nums_names[sure_num] | |||
elseif ((sure_num == 114) and (aye_num == 6)) then | |||
sure_name_next = data_nn.nums_names[1] | |||
else | |||
return "آیه بعد" | |||
end | |||
local sure_len = data_len.lengths | |||
if (aye_num < sure_len[sure_num]) then | |||
return "[[آیه " .. num_con("fa", aye_num+1) .. " سوره " .. sure_name .."|آیه بعد]]" | |||
elseif (aye_num == sure_len[sure_num]) then | |||
return "[[آیه " .. num_con("fa", "1") .. " سوره " .. sure_name_next .."|آیه بعد]]" | |||
else | |||
return "آیه بعد" | |||
end | |||
end | end | ||
function p. | function p.prev_aye(frame) | ||
local | args = getArgs(frame) | ||
local aye_num = tonumber(num_con("en", args["aye_num"])) | |||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
local sure_name = args["sure_name"] | |||
if | local data_nn = getData("", "name_num") | ||
local data_len = getData("", "len") | |||
local sure_len = data_len.lengths | |||
if ((aye_num > 1) and (sure_num == 1)) then | |||
return "[[آیه " .. num_con("fa", aye_num-1) .. " سوره " .. sure_name .."|آیه قبل]]" | |||
elseif ((aye_num > 1) and (sure_num > 1)) then | |||
return "[[آیه " .. num_con("fa", aye_num-1) .. " سوره " .. sure_name .."|آیه قبل]]" | |||
elseif ((aye_num == 1) and (sure_num > 1)) then | |||
local sure_name_prev = data_nn.nums_names[sure_num-1] | |||
return "[[آیه " .. num_con("fa", sure_len[sure_num-1]) .. " سوره " .. sure_name_prev .."|آیه قبل]]" | |||
elseif ((aye_num == 1) and (sure_num == 1)) then | |||
local sure_name_prev = data_nn.nums_names[114] | |||
return "[[آیه " .. num_con("fa", sure_len[114]) .. " سوره " .. sure_name_prev .."|آیه قبل]]" | |||
else | |||
return "آیه قبل" | |||
end | end | ||
end | |||
function p.get_sure_len(frame) | |||
args = getArgs(frame) | |||
local sure_num = tonumber(num_con("en", args["sure_num"])) | |||
local data_len = getData("", "len") | |||
local sure_len = data_len.lengths | |||
return sure_len[sure_num] | |||
end | |||
function p.get_sure_name(frame) | |||
args = getArgs(frame) | |||
sure_num = args["sure_num"] | local sure_num = tonumber(num_con("en", args["sure_num"])) | ||
local data_nn = getData("", "name_num") | |||
if | if ((sure_num <= 114) and (sure_num >= 1)) then | ||
return data_nn.nums_names[sure_num] | |||
end | end | ||
end | end | ||
return p | return p | ||
نسخهٔ کنونی تا ۱۲ دسامبر ۲۰۲۳، ساعت ۱۴:۲۵
توضیحات این پودمان میتواند در پودمان:Ayat-Navigator/توضیحات قرار گیرد.
require('strict')
local p = {}
local args = {}
local num_con = require('Module:Numeral converter').convert
local getArgs = require('Module:Arguments').getArgs
--local cfg = mw.loadData('Module:Ayat-Navigator/configs')
local function getData(sure, data_type)
if (data_type=="len") then
return require('Module:Ayat-Navigator/Sure-Lengths')
end
if (data_type=="joze_hezb") then
return require('Module:Ayat-Navigator/Joze-Hezb')
end
if (data_type=="aye") then
return require('Module:Ayat-Navigator/Q' .. sure)
end
if (data_type=="name_num") then
return require('Module:Ayat-Navigator/nums-names')
end
local title = mw.title.new('Module:Ayat-Navigator/' .. sure)
if not (title and title.exists) then return nil end
return require('Module:Ayat-Navigator/' .. sure)
end
function p.named_gen(frame)
local listitems = ""
args = getArgs(frame)
local sure_num = args["sure_num"]
if getData(num_con("en", sure_num), "ayat_data") then
local data = getData(num_con("en", sure_num), "ayat_data")
if data.ayat_namdar then
for k, v in pairs(data.ayat_namdar) do
listitems = listitems .. '\n* ' .. v
end
end
end
return listitems
end
function p.ayat_gen(frame)
local listitems = ""
args = getArgs(frame)
local aye_num = num_con("en", args["aye_num"])
local sure_num = tonumber(num_con("en", args["sure_num"]))
local sure = args["sure"]
if getData(sure_num, "len") then
local data = getData(sure_num, "len")
if tonumber(aye_num) then
for i = 1, data.lengths[sure_num] do
listitems = listitems ..
'\n* [[آیه ' .. num_con("fa", i) .. ' سوره ' .. sure .. '|'
.. num_con("fa", i) .. ']]'
end
end
end
return listitems
end
function p.mortabet(frame)
local listitems = ""
args = getArgs(frame)
local sure_num = args["sure_num"]
if getData(num_con("en", sure_num), "ayat_data") then
local data = getData(num_con("en", sure_num), "ayat_data")
if data.mortabet then
for k, v in pairs(data.mortabet) do
listitems = listitems .. '\n* ' .. v
end
end
end
return listitems
end
local function hezb_calculator(surenum, ayenum)
if getData(surenum, "joze_hezb") and
tonumber(surenum) and
tonumber(ayenum) then
local data = getData(surenum, "joze_hezb")
local hezbs = data.hezbs
for i= 1, 120 do
local hezb_ini_sure = tonumber(hezbs[i].AzAvaleAye[1])
local hezb_fin_sure = tonumber(hezbs[i].TaAkharAye[1])
local hezb_ini_aye = tonumber(hezbs[i].AzAvaleAye[2])
local hezb_fin_aye = tonumber(hezbs[i].TaAkharAye[2])
if (hezb_ini_sure <= surenum) and
(hezb_fin_sure >= surenum) and
(hezb_ini_sure == hezb_fin_sure) then
if (hezb_ini_aye <= ayenum) and
(hezb_fin_aye >= ayenum) then
return i
end
elseif (hezb_ini_sure <= surenum) and
(hezb_fin_sure >= surenum) and
(hezb_ini_sure < hezb_fin_sure) then
if (surenum == hezb_ini_sure) then
if (hezb_ini_aye <= ayenum) then
return i
end
elseif (surenum > hezb_ini_sure) and
(surenum < hezb_fin_sure) then
return i
elseif (surenum == hezb_fin_sure) then
if (ayenum <= hezb_fin_aye) then
return i
end
end
end
end
end
end
function p.get_hezb(frame)
args = getArgs(frame)
local aye_num = tonumber(num_con("en", args["aye_num"]))
local sure_num = tonumber(num_con("en", args["sure_num"]))
return hezb_calculator(sure_num, aye_num)
end
function p.get_joze(frame)
args = getArgs(frame)
local aye_num = tonumber(num_con("en", args["aye_num"]))
local sure_num = tonumber(num_con("en", args["sure_num"]))
if getData(sure_num, "joze_hezb") then
local data = getData(sure_num, "joze_hezb")
local hezbs = data.hezbs
local hezb = hezb_calculator(sure_num, aye_num)
for i= 1, 120 do
if (hezb == i) then
return hezbs[i].JozeHezb[1]
end
end
end
end
function p.get_tarjoms(frame)
args = getArgs(frame)
local aye_num = tonumber(num_con("en", args["aye_num"]))
local sure_num = tonumber(num_con("en", args["sure_num"]))
local motarjem = args["motarjem"]
if (motarjem == "خرمشاهی") then
motarjem = "Khoramshahi"
elseif (motarjem == "گمشادزهی") then
motarjem = "Gomshadzehi"
else
motarjem = ""
end
if not (aye_num and sure_num and motarjem) then
return
end
if getData(num_con("en", sure_num), "tarjoms") then
local data = getData(num_con("en", sure_num), "tarjoms")
return data.tarjoms[aye_num][motarjem]
end
end
function p.get_aye(frame)
args = getArgs(frame)
local aye_num = tonumber(num_con("en", args["aye_num"]))
local sure_num = tonumber(num_con("en", args["sure_num"]))
local sure_name = args["sure_name"]
if aye_num and sure_num and not sure_name then
if getData(sure_num, "aye") then
local data = getData(sure_num, "aye")
return data.ayat[aye_num]
end
elseif aye_num and not sure_num and sure_name then
if getData(sure_name, "name_num") then
local suresnums = getData(sure_num, "name_num")
if suresnums.names_nums[sure_name] then
local surenum = suresnums.names_nums[sure_name]
if getData(surenum, "aye") then
local data = getData(surenum, "aye")
return data.ayat[aye_num]
end
end
end
end
end
function p.next_aye(frame)
args = getArgs(frame)
local aye_num = tonumber(num_con("en", args["aye_num"]))
local sure_num = tonumber(num_con("en", args["sure_num"]))
local sure_name = args["sure_name"]
local data_len = getData("", "len")
local data_nn = getData("", "name_num")
local sure_name_next
if (sure_num < 114) then
sure_name_next = data_nn.nums_names[sure_num+1]
elseif ((sure_num == 114) and (aye_num < 6)) then
sure_name_next = data_nn.nums_names[sure_num]
elseif ((sure_num == 114) and (aye_num == 6)) then
sure_name_next = data_nn.nums_names[1]
else
return "آیه بعد"
end
local sure_len = data_len.lengths
if (aye_num < sure_len[sure_num]) then
return "[[آیه " .. num_con("fa", aye_num+1) .. " سوره " .. sure_name .."|آیه بعد]]"
elseif (aye_num == sure_len[sure_num]) then
return "[[آیه " .. num_con("fa", "1") .. " سوره " .. sure_name_next .."|آیه بعد]]"
else
return "آیه بعد"
end
end
function p.prev_aye(frame)
args = getArgs(frame)
local aye_num = tonumber(num_con("en", args["aye_num"]))
local sure_num = tonumber(num_con("en", args["sure_num"]))
local sure_name = args["sure_name"]
local data_nn = getData("", "name_num")
local data_len = getData("", "len")
local sure_len = data_len.lengths
if ((aye_num > 1) and (sure_num == 1)) then
return "[[آیه " .. num_con("fa", aye_num-1) .. " سوره " .. sure_name .."|آیه قبل]]"
elseif ((aye_num > 1) and (sure_num > 1)) then
return "[[آیه " .. num_con("fa", aye_num-1) .. " سوره " .. sure_name .."|آیه قبل]]"
elseif ((aye_num == 1) and (sure_num > 1)) then
local sure_name_prev = data_nn.nums_names[sure_num-1]
return "[[آیه " .. num_con("fa", sure_len[sure_num-1]) .. " سوره " .. sure_name_prev .."|آیه قبل]]"
elseif ((aye_num == 1) and (sure_num == 1)) then
local sure_name_prev = data_nn.nums_names[114]
return "[[آیه " .. num_con("fa", sure_len[114]) .. " سوره " .. sure_name_prev .."|آیه قبل]]"
else
return "آیه قبل"
end
end
function p.get_sure_len(frame)
args = getArgs(frame)
local sure_num = tonumber(num_con("en", args["sure_num"]))
local data_len = getData("", "len")
local sure_len = data_len.lengths
return sure_len[sure_num]
end
function p.get_sure_name(frame)
args = getArgs(frame)
local sure_num = tonumber(num_con("en", args["sure_num"]))
local data_nn = getData("", "name_num")
if ((sure_num <= 114) and (sure_num >= 1)) then
return data_nn.nums_names[sure_num]
end
end
return p