「モジュール:Maintenance/isShow」の版間の差分
細 (名前変更に追従) |
細 (判定が誤っていた物を修正) |
||
(同じ利用者による、間の1版が非表示) | |||
4行目: | 4行目: | ||
maintenancedata = mw.loadJsonData("module:Maintenance/data.json") | maintenancedata = mw.loadJsonData("module:Maintenance/data.json") | ||
--forで最後の要素までカウントする | |||
for index,item in ipairs(maintenancedata.maintenance) do | |||
c = index | |||
end | |||
-- 開始時間について定義 | -- 開始時間について定義 | ||
if maintenancedata.maintenance[ | if maintenancedata.maintenance[c].start == "near" then | ||
start = "-1" | start = "-1" | ||
else | else | ||
start = os.date("!%Y-%m-%d %T",maintenancedata.maintenance[ | start = os.date("!%Y-%m-%d %T",maintenancedata.maintenance[c].start) | ||
end | end | ||
-- 終了時間について定義 | -- 終了時間について定義 | ||
if maintenancedata.maintenance[ | if maintenancedata.maintenance[c].time == "few" then | ||
endtime = "0" | endtime = "0" | ||
elseif maintenancedata.maintenance[ | elseif maintenancedata.maintenance[c].time == "intermittent" then | ||
endtime = "0" | endtime = "0" | ||
elseif maintenancedata.maintenance[ | elseif maintenancedata.maintenance[c].time == "observation" then | ||
endtime = "0" | endtime = "0" | ||
else | else | ||
endtime = maintenancedata.maintenance[ | endtime = maintenancedata.maintenance[c].time | ||
end | end | ||
25行目: | 29行目: | ||
--メンテナンスが終わってるか判定 | --メンテナンスが終わってるか判定 | ||
if endtime ~= 0 then | if endtime ~= 0 then | ||
if ( os.difftime(os.time( | if ( os.difftime(endtime, os.time()) > 0 ) then | ||
return "true" | return "true" | ||
else | else | ||
32行目: | 36行目: | ||
elseif start ~= 0 then | elseif start ~= 0 then | ||
if start == "-1" then | if start == "-1" then | ||
elseif | elseif ( os.difftime(os.time()+86400, starttime) > 0 ) then | ||
return "true" | return "true" | ||
end | end |
2023年7月12日 (水) 17:00時点における最新版
このモジュールについての説明文ページを モジュール:Maintenance/isShow/doc に作成できます
local p = {} function p.main() -- メンテナンス予定jsonファイル読み込み maintenancedata = mw.loadJsonData("module:Maintenance/data.json") --forで最後の要素までカウントする for index,item in ipairs(maintenancedata.maintenance) do c = index end -- 開始時間について定義 if maintenancedata.maintenance[c].start == "near" then start = "-1" else start = os.date("!%Y-%m-%d %T",maintenancedata.maintenance[c].start) end -- 終了時間について定義 if maintenancedata.maintenance[c].time == "few" then endtime = "0" elseif maintenancedata.maintenance[c].time == "intermittent" then endtime = "0" elseif maintenancedata.maintenance[c].time == "observation" then endtime = "0" else endtime = maintenancedata.maintenance[c].time end --メンテナンスが終わってるか判定 if endtime ~= 0 then if ( os.difftime(endtime, os.time()) > 0 ) then return "true" else return "false" end elseif start ~= 0 then if start == "-1" then elseif ( os.difftime(os.time()+86400, starttime) > 0 ) then return "true" end else return "false" end end return p