Module:විකිමාධ්ය දින පොත
Appearance
This module is rated as pre-alpha. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure. |
මෙම මොඩියුලය විකිමාධ්ය දින පොත සඳහා අවශ්ය විශේෂ පහසුකම් සපයයි.
භාවිතය
[සංස්කරණය]{{#invoke:විකිමාධ්ය දින පොත|function_name}}
local p = {}
local function loop_log_id_list( mode )
local i = 0
local result = '0000000000'
local book_name = 'විකිමාධ්ය දින පොත'
local page_title = 'විකිමාධ්ය දින පොත'
for i = 0, 10000000000, 1 do
result = string.format("%010.0f", i)
page_title = book_name..'/'..result
if mw.title.new( page_title ).exists then
-- මෙම යොමුව පවතියි. ඊලඟ එක බලන්න.
else
if ( mode == 'වත්මන්' ) then
result = string.format("%010.0f", i-1)
else
-- නිවැරදි අගය දැනටමත් result තුළ ඇත
end
break
end
end
return result
end
local function get_previous_log_id_internal( id )
local pattern = '(%d+)$'
local n = nil
local result = '0000000000'
if (id == nil) then
-- විශේෂ අවස්ථාව
result = loop_log_id_list( 'වත්මන්' )
else
n = string.match( id, pattern )
end
if (n == nil) then
-- විශේෂ අවස්ථාව
result = loop_log_id_list( 'වත්මන්' )
else
-- පෙර නම් එකක් අඩු කරන්න
r = n-1
if (r < 0) then
-- සෘණ අගයක් පැමිණ ඇත. පෙර අගය ම ලබා දී බලමු
result = string.format("%010.0f", n)
else
result = string.format("%010.0f", r)
end
end
return result
end
local function get_log_data_internal( id, vyaapruthiya, vargaya )
-- local vyaapruthiya = frame.args['ව්යාපෘතිය']
-- local vargaya = frame.args['වර්ගය']
-- local id = p.extract_log_id_from_title(frame)
local result = 0
local data = mw.loadData("Module:විකිමාධ්ය දින පොත/දත්ත/"..id)
if vargaya == "අන්තර්ගතය"
or vargaya == "පිටු"
or vargaya == "දෝෂ ප්රවර්ග"
or vargaya == "දෝෂ පිටු"
or vargaya == "විශේෂ"
then
result = data[vyaapruthiya][vargaya]
-- සිංහල දත්ත වල කොමාව, දශම සළකුණ ලෙස භාවිතා නොවේ.
-- එම නිසා ගණනය කිරීම් වල දී කොමා සළකුණ අවශ්ය නොවේ.
-- result = mw.ustring.gsub( result, ",", "" );
end
return result
end
function p.get_next_log_id( frame )
local s = frame.args['s']
local pattern = '(%d+)$'
local n = nil
local result = '0000000000'
if (s == nil) then
-- විශේෂ අවස්ථාව
result = loop_log_id_list( 'ඊලඟ' )
else
n = string.match( s, pattern )
end
if (n == nil) then
-- විශේෂ අවස්ථාව
result = loop_log_id_list( 'ඊලඟ' )
else
-- පෙර නම් එකක් එකතු කරන්න
result = string.format("%010.0f", n+1)
end
return result
end
function p.get_active_log_id( frame )
return loop_log_id_list( 'වත්මන්' )
end
function p.get_previous_log_id( frame )
local s = frame.args['s']
local pattern = '(%d+)$'
local n = nil
local r = 0
local result = '0000000000'
if (s == nil) then
-- විශේෂ අවස්ථාව
result = loop_log_id_list( 'වත්මන්' )
else
n = string.match( s, pattern )
end
if (n == nil) then
-- විශේෂ අවස්ථාව
result = loop_log_id_list( 'වත්මන්' )
else
-- පෙර නම් එකක් අඩු කරන්න
r = n-1
if (r < 0) then
-- සෘණ අගයක් පැමිණ ඇත. පෙර අගය ම ලබා දී බලමු
result = string.format("%010.0f", n)
else
result = string.format("%010.0f", r)
end
end
return result
end
function p.get_log_data_diff( frame )
local v = {}
v["වර්ගය"] = frame.args['වර්ගය']
local result = p.get_log_data_diff_value( frame )
if v["වර්ගය"] == 'දෝෂ ප්රවර්ග' or v["වර්ගය"] == 'දෝෂ පිටු' then
v["වාසි සැකිල්ල"] = 'වාසි පැත්තට අඩු'
else
v["වාසි සැකිල්ල"] = 'වාසි පැත්තට වැඩි'
end
if result > 0 then
result = frame:expandTemplate{ title = v["වාසි සැකිල්ල"], args = { result } }
elseif result < 0 then
result = frame:expandTemplate{ title = v["වාසි සැකිල්ල"], args = { result } }
else
result = frame:expandTemplate{ title = 'නොවෙනස්', args = { result, label = '+0' } }
end
return result
end
function p.get_log_data_diff_value( frame )
local vyaapruthiya = frame.args['ව්යාපෘතිය']
local vargaya = frame.args['වර්ගය']
local mema_id = p.extract_log_id_from_title(frame)
local pera_id = get_previous_log_id_internal( mema_id )
local result = '+0'
local mema_dhaththa = 0
local pera_dhaththa = 0
mema_dhaththa = get_log_data_internal( mema_id, vyaapruthiya, vargaya )
pera_dhaththa = get_log_data_internal( pera_id, vyaapruthiya, vargaya )
result = mema_dhaththa - pera_dhaththa
return result
end
function p.get_log_data( frame )
local vyaapruthiya = frame.args['ව්යාපෘතිය']
local vargaya = frame.args['වර්ගය']
local id = p.extract_log_id_from_title(frame)
local result = get_log_data_internal( id, vyaapruthiya, vargaya )
-- local data = mw.loadData("Module:විකිමාධ්ය දින පොත/දත්ත/"..id)
-- if vargaya == "අන්තර්ගතය"
-- or vargaya == "පිටු"
-- or vargaya == "දෝෂ ප්රවර්ග"
-- or vargaya == "දෝෂ පිටු"
-- or vargaya == "විශේෂ"
-- then
-- result = data[vyaapruthiya][vargaya]
-- end
return result
end
function p.extract_log_id_from_title( frame )
local s = frame.args['s']
local pattern = '(%d+)$'
local result = '0000000000'
result = string.match( s, pattern )
if (result == nil) then
result = '0000000000'
end
return result
end
function p.extract_data_page_from_title( frame )
local id = p.extract_log_id_from_title( frame )
local dataPage = "Module:විකිමාධ්ය දින පොත/දත්ත/"..id
return dataPage
end
function p.check_data_corrected( frame )
local v = {}
local s = frame.args['s']
local pattern = '(%d+)$'
local id = '0000000000'
local result = ''
id = string.match( s, pattern )
if (id == nil) then
id = loop_log_id_list( 'වත්මන්' )
end
local dataPage = "Module:විකිමාධ්ය දින පොත/දත්ත/"..id
local data
local data_loaded = "False"
if pcall(function () data = mw.loadData(dataPage) end ) then data_loaded = "True" end
-- local data = mw.loadData(dataPage)
if (data_loaded == "True") then
v["දත්ත පිටුවට"] = frame:expandTemplate{ title = 'ක්රියා කරවිය හැකි පැනලය', args = { dataPage, 'දත්ත පිටුව' } }
if data["නිවැරදිය"] == "එසේය" then
-- result = frame:expandTemplate{ title = 'දැන්වීම', args = { 'මෙහි දැක්වෙන දත්ත නිවැරදි කර ඇත: '..v["දත්ත පිටුවට"] } }
result = v["දත්ත පිටුවට"]
else
result = frame:expandTemplate{ title = 'දැන්වීම', args = { 'මෙහි දැක්වෙන දත්ත නිවැරදි කර නොමැත: '..v["දත්ත පිටුවට"] } }
end
-- result = result..frame:expandTemplate{ title = 'ක්රියා කරවිය හැකි පැනලය', args = { dataPage, 'දත්ත පිටුව' } }
end
return result
end
return p