やる気のないやる気

辺境のSEがプログラミングとかガジェットとか技術書のレビューとかするブログ。毎日更新したいなぁ…。

【LimeChat】毎日同じ時間に発言するスクリプトを作った

IRCクライアントのLimeChatで毎日同じ時間に発言する方法のスクリプト

毎朝8時30分に「おはようございます!8:30です。今日も一日頑張りましょ-ヾ(๑╹◡╹)ノ"」とか流したり
毎日17時に「定時です。お疲れ様でした(((((((((((っ・ω・)っ」とか流したり
応用として今日の10時から会議だって日だけ朝一で9時55分位でセットして「10時から会議です。会議室に移動してください」とか流したり
できるかなぁ

/*
 指定した時間にメッセージを出力するスクリプト
  ※連投防止のため指定時間の1分後に動作します
  ※上記時間から最大で±1分程度の誤差があります
 
 *Version*
 1.0:新規作成
 
*/
// 出力設定
var messageText = 'おはようございます!8:30です。今日も一日頑張りましょ-ヾ(๑╹◡╹)ノ"'
var hour = 8; // 時(24時間表示)
var min = 29;  // 分(1桁でも0は不要…あっても動くかも)
var channel = '#all';

/*
 連投防止用wait関数
*/
function wait(intervalTime)
{
  setTimeout(showMessage, 60 * 1000);
}

/*
 メッセージ出力関数
*/
function showMessage()
{
  send(channel, messageText);
  setNextTimer();
}

/*
 タイマー設定
*/
function setNextTimer()
{
  log('出力先チャンネル:' + channel);
  var now = new Date();
  
  var nextH = hour - now.getHours();
  var nextM = min - now.getMinutes();
  var intervalTime = ((nextH * 60) + nextM) * 60 * 1000;
  if (intervalTime < 0){
    intervalTime = (((24 * 60) * 60) * 1000 ) + intervalTime;
  }
  var nextDate = new Date();
  nextDate.setTime(now.getTime() + intervalTime + 1000);
  log('次回出力予定時間:' + nextDate.toLocaleString());
  setTimeout(wait, intervalTime);
}

/*
 起動時イベント
*/
function event::onLoad()
{
  setNextTimer();
}

使い方はスクリプトの出力設定のhour、min、channelとメッセージを書き換えてLimeChatに設定するだけの親切設計

改変、再配布は自由だけど改変はフィードバックくれたり、再配布は教えてくれると嬉しいなぁって