X-Git-Url: http://git.sourceforge.jp/view?p=shogi-server%2Fshogi-server.git;a=blobdiff_plain;f=mk_html;h=6dfd3b174304c436ccd05930ae4c7ffcffef6c45;hp=cf29e4eacb1d1b299634ff6dca4264b0670b6dd3;hb=e4a84fa22e0db1b48c9cd4efe62549895a1b7133;hpb=367a3813a25c99f2b59be703f30bfa1ea1e9e188 diff --git a/mk_html b/mk_html index cf29e4e..6dfd3b1 100755 --- a/mk_html +++ b/mk_html @@ -1,43 +1,74 @@ #!/usr/bin/ruby -## $Id$ - -## Copyright (C) 2006 Daigo Moriwaki -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -# -# This generates html pages from players.yaml. -# -# Sample: -# $ ./mk_html < players.yaml > rating.html -# +# $Id$ +# +# Author:: Daigo Moriwaki +# Homepage:: http://sourceforge.jp/projects/shogi-server/ +# +#-- +# Copyright (C) 2006-2012 Daigo Moriwaki +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#++ +# +# == Synopsis +# +# mk_html generates an html page from a players.yaml. +# +# == Usage +# +# ./mk_html [OPTION] < players.yaml > rating.html +# +# [-h, --help] +# show help +# +# [-w,--wdoor] +# adpot wdoor style +# +# [--footer filename] +# insert contents in the filename at the bottom of a genrated page. +# +# == Prerequire +# +# * Ruby 2.0.0 or later +# +# $ sudo aptitude install ruby ruby +# +# == Example +# +# $ ./mk_html --footer ./wdoor_1000.html < players.yaml > players.html +# +# $ cat ./wdoor-1000.html +#

The average of the rates in a group is always 1000. +#

BACK +# +require 'optparse' require 'yaml' require 'erb' include ERB::Util def show_date(time) - time.strftime("%Y-%m-%d") -end - -def usage - $stderr.puts <<-EOF -USAGE: #{$0} - EOF - exit 1 + if (Time.now - time < 30*60) + return "on line" + elsif (Time.now - time < 24*60*60) + return time.strftime("%Y-%m-%d") + # return "%d hours ago" % [(Time.now - time)/3600] + else + return time.strftime("%Y-%m-%d") + end end def remove_long_to_see_players(file) @@ -49,8 +80,31 @@ def remove_long_to_see_players(file) end def main + $wdoor = false + $footer_content = nil + opts = OptionParser.new + opts.banner = "Usage: mk_html [OPTIONS]" + opts.on("--footer filename", String, "Insert contents of the filename at the bottom of a genrated page") do |filename| + unless File.exist?(filename) + $stderr.puts "File not found: %s" % [filename] + raise + end + $footer_content = File.open(filename).read + end + opts.on("-w","--wdoor", "adopt a wdoor style") { $wdoor=true } + opts.on_tail("-h", "--help", "show this message") do + puts opts + exit + end + begin + opts.parse(ARGV) + rescue + puts opts + exit -1 + end + lines = "" - while l = gets do + while l = $stdin.gets do lines << l end file = YAML::load(lines) @@ -67,6 +121,17 @@ def main remove_long_to_see_players(file) popup_id = 0 + + if $wdoor + yss_rate = 0 + file["players"].keys.each do |group_index| + file["players"][group_index].each do |player, yaml| + if player == "YSS+707d4f98d9d2620cdaab58f19d02a2e4" + yss_rate = yaml['rate'] + end + end + end + end file["players"].sort.each do |key, yaml| # sort groups in the order written in players.yaml sorted_keys = yaml.keys.sort do |a,b| @@ -89,9 +154,10 @@ def main player_decoration = "default" - case (Time.now - last_modified)/(60*60*24) - when (0..1) then player_decoration = "today" - when (0..7) then player_decoration = "this_week" + case (Time.now - last_modified)/60 # minutes + when (0..30) then player_decoration = "current" + when (0..(1*60*24)) then player_decoration = "today" + when (0..(7*60*24)) then player_decoration = "this_week" end case key @@ -106,7 +172,7 @@ def main %> - <%= h yaml[key]['name'] %> + <%= h yaml[key]['name'] %>