モジュール:Scheduledのソースを表示
←
モジュール:Scheduled
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
ページの編集を始める前にメールアドレスの確認をする必要があります。
個人設定
でメールアドレスを設定し、確認を行ってください。
このページのソースの閲覧やコピーができます。
local DEFAULT_TZ_OFFSET = 9 --JST local function split(text) local lines = {} for line in text:gmatch("[^\t\r\n\f ][^\n]*") do lines[#lines+1] = line end return lines end local function CJD(timestamp, tzOffset) local jd = timestamp / 86400 + 2440587.5 return jd + 0.5 + tzOffset / 24 end local rotation = {} --[[ rotation.dailyIndex() - periodで指定した周期のインデックスを日替わりで返す (optionのパラメータは下記 Scheduled.daily() を参照) ]] rotation.dailyIndex = function(period, option) local adjuster = tonumber(option.adjuster or 0) local tzOffset = tonumber(option.tzOffset or DEFAULT_TZ_OFFSET) local step = tonumber(option.step or 1) local span = tonumber(option.span or 1) local spanAdjuster = tonumber(option.spanAdjuster or 0) local timestamp = tonumber(option.timestamp or os.time()) local dateValue = CJD(timestamp, tzOffset) + spanAdjuster return (math.floor(dateValue / span) * step + adjuster) % period + 1 end ----------- --interface local p = {} --[[ Scheduled.daily() - リストから日替わりで候補を取得する 必須パラメータ: data: 改行区切りの候補リスト オプション: adjuster: 任意の候補を表示させるための調整値。初期値: 0 tzOffset: 日付が切り替わるタイムゾーンのオフセット値。初期値: 9 (JST) step: 1回の更新で候補リストをいくつ進めるか。step=2とすると1,3,5番目...の順。初期値: 1 span: 何日単位で結果を更新するか。初期値: 1 spanAdjuster: spanに2以上を指定する場合、任意のタイミングで更新させるための調整値。初期値: 0 timestamp: UNIX時刻。特定の日時での実行結果を見たいときに指定。初期値: 現在時刻 ]] p.daily = function(frame) local data = frame.args.data if not data then error('引数 "data" は必須です。') end local dataList = split(data) local option = frame.args local index = rotation.dailyIndex(#dataList, option) return dataList[index] end return p
モジュール:Scheduled
に戻る。
案内メニュー
個人用ツール
ログイン
名前空間
モジュール
議論
変種
表示
閲覧
ソースを表示
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
箱振局HP
このWikiについて
ヘルプ
ヘルプ
お知らせ
サポート
お問い合わせ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報