Create  Edit  Diff  FrontPage  Index  Search  Changes  RSS  Login

hexe.rb

「へぇ」プラグイン

使い方

 # $Revision: $
 # hexe: へぇ
 #
 # Copyright (c) 2003 Junichiro KITA <kita@kitaj.no-ip.com>
 # Distributed under the GPL
 #

 require 'pstore'
 @hexe_db = "#{@cache_path}/hexe"
 @conf['hexe.str'] ||= 'へぇ'

 def hexe_add(date)
 	PStore.new(@hexe_db).transaction do |db|
 		db['hexe'] = Hash.new(0) unless db.root?('hexe')
 		db['hexe'][date.strftime("%Y%m%d")] += 1
 	end
 end

 def hexe_get(date)
 	hexe = 0
 	PStore.new(@hexe_db).transaction do |db|
 		hexe = db['hexe'][date.strftime('%Y%m%d')] if db.root?('hexe')
 		db.abort
 	end
 	hexe
 end

 def hexe_str(hexe)
 	if /\$1/ === @conf['hexe.str']
 		@conf['hexe.str'].sub(/\$1/, hexe.to_s)
 	else
 		"#{@conf['hexe.str']}(#{hexe})"
 	end
 end

 if (@mode == 'comment' and @cgi.valid?('hexe') and !bot? and @cgi.cookies['tdiary_hexe'][0])
 	hexe_add(@date)
 end

 unless bot?
 	add_body_leave_proc do |date|
 		<<HTML
 <div class="hexe"><a href="#{@index}?date=#{date.strftime('%Y%m%d')};comment=submit;name=;body=;hexe=so" title="へぇ">#{hexe_str(hexe_get(date))}</a></div>
 HTML
 	end
 end

 unless bot?
 	add_footer_proc do
 		cookie_path = File::dirname(@cgi.script_name)
 		cookie_path += '/' if cookie_path !~ /\/$/
 		cookie = CGI::Cookie::new(
 			'name' => 'tdiary_hexe',
 			'value' => '100hexe',
 			'path' => cookie_path,
 			'expires' => Time::now.gmtime + 90*24*60*60
 		)
 		add_cookie(cookie)
 		''
 	end
 end

 def saveconf_hexe
 	if @mode == 'saveconf'
 		@conf['hexe.str'] = @cgi.params['hexe.str'][0] unless @cgi.params['hexe.str'][0].empty?
 	end
 end

 add_conf_proc('hexe', 'へぇプラグ院') do
 	saveconf_hexe

 	<<HTML
 	<h3 class="subtitle">へぇ表記</h3>
 	<p>指定した文字列中の $1 が「へぇ」数で置き換えられます.$1 が含まれていない場合,指定した文字列の末尾に '($1)' を追加します.</p>
 	<p><input name="hexe.str" value="#{CGI::escapeHTML(@conf['hexe.str'] || '')}"></p>
 HTML
 end

 # vim: ts=3

これをhexe.rbという名前で保存してpluginディレクトリに置くだけ.

カスタマイズ

へぇ表記

設定画面の「へぇプラグ院」で,「へぇ」の表記を変更できます.

見た目

cssでdiv.hexeを適当にイジって下さい.

ToDo?

  • 「へぇ」と鳴るといいねぇ.
  • bot? じゃ弱いかも.
    • cookieを見るようにしてみた.botはcookie送ってこないだろうという前提(根拠ナシ).
  • 記事毎にボタンが欲しい.
    • ムリです.
  • Refererチェック
    • 姑息な手段で回避.これで他所の日記に hexe=so 付きリファラが残ることはなくなった.
Last modified:2006/05/09 23:27:46
Keyword(s):
References:[PluginList]