=begin 今日はなんの日?プラグイン option: file=input_file なんの日ファイル(必須) pre=N N日前まで含む suf=M M日後まで含む span=S S日前後まで含む(default:S=3) deco 飾り付け(というか、SF版専用)使用に於いては要カスタム simple シンプルに example: ファイル書式: MMDDdatetext... が一行。xN行。 上の形式に従ってない部分、行頭が#の部分は無視します。 history: 1.1: 2001.11.7・初版。カスタム、イレギュラー対応。 1.2: 2003.5.19 CSSっぽく 1.3: 2003.9.14 =end require 'kconv' def plug(opt) return '' if opt['file'].nil? pre_span = opt['pre'] || 3 suf_span = opt['suf'] || 3 pre_span = suf_span = opt['span'] unless opt['span'].nil? mode_decorate = opt['deco'].nil? ? false : true mode_simple = opt['simp'].nil? ? false : true pre_span = pre_span.to_i suf_span = suf_span.to_i today_src = @logDirectory.chomp('/') + '/' + opt['file'] $stderr.print "CHK; today #{today_src}\n" today_list = [] time_now = Time.now year_now = time_now.strftime("%Y").to_i time_pre = pre_span * 60 * 60 * 24 time_suf = suf_span * 60 * 60 * 24 month_old = '01' day_old = '01' # 読込 open(today_src).each { |line| next if line =~ /^#/ data = Kconv.tosjis(line).chomp.split("\t") # フォーマットのチェック if data[0] =~ /(\d\d)(\d\d)/ year, month, day = year_now, $1, $2 # イレギュラー対策 month = month_old if month.to_i == 0 month = "12" if month.to_i > 12 day = day_old if day.to_i == 0 day = "31" if day.to_i > 31 time = Time.mktime(year_now, month.to_i, day.to_i) flag = false flag = true if (time - time_now) == 0 flag = true if ((time - time_now) > 0) && ((time - time_now) < time_suf) flag = true if ((time - time_now) < 0) && ((time_now - time) < time_pre) if flag $stderr.puts "CHK; today-find #{Kconv.tosjis(data[1])}" data.shift date = data.shift str = data.join("\t") today_list << [date, str] end month_old = '' month_old << month day_old = '' day_old << day end } if today_list.size > 0 if mode_simple today_list.each { |date, str| today << date << " " << str << "
\n" } elsif mode_decorate #装飾過多+SF版専用。 mo = time_now.strftime("%b").downcase md = time_now.strftime("%m%d") url = 'http://homepage2.nifty.com/URU/' + mo + '.htm#' + md today = '' << "\n" today << '' << "\n" today_list.each { |date, str| data = str.split("\t") str1 = data.shift str2 = data.join today << '' today << '' today << '' today << '' << "\n" } today << '
' today << '今日はなんの日?' today << ' SF版' today << '
' << date << '' << str1 << '
' today << '
' << str2 << '
' if str2.size > 0 today << '
' << "\n" else today = "\n" today_list.each { |date, str| today << '' today << '' today << '' today << '' << "\n" } today << "
' << date << '' << str << '
\n" end end return today end