Tue, 08 Jul 2008
はじめてのpyblosxomプラグイン、swatchbeatそのさん
ローカル時刻で表わされているエントリの更新時間を、協定世界時へ変換、さらにビール標準時へ変換。これも、もっと良い方法があると思うんだ…
import time, datetime
def get_beat(entry):
if not entry:
return ""
local_time_tuple = entry['timetuple']
year = int(local_time_tuple[0])
month = int(local_time_tuple[1])
day = int(local_time_tuple[2])
hour = int(local_time_tuple[3])
minute = int(local_time_tuple[4])
sec = int(local_time_tuple[5])
ptime = time.mktime((year,month,day,hour,minute,sec,0,0,-1))
gtime = time.gmtime(ptime)
beat_tmp_hour = int(time.strftime('%H', gtime)) + 1
if beat_tmp_hour == 24:
beat_tmp_hour = 0
beat_tmp_hour = beat_tmp_hour * 60 * 60
beat_tmp_min = int(time.strftime('%M', gtime)) * 60
beat_tmp_sec = int(time.strftime('%S', gtime))
# bm_time_delta = datetime.timedelta(hours=1)
# bmtime = gtime + bm_time_delta
# bm_time_tuple = datetime.datetime.fromtimestamp(gtime)
#
# beat_tmp_hour = int(bm_time_tuple[3]) * 60 * 60
# beat_tmp_min = int(bm_time_tuple[4]) * 60
# beat_tmp_sec = int(bm_time_tuple[5])
beat_tmp = int((beat_tmp_hour + beat_tmp_min + beat_tmp_sec) / 86.4)
beat = "@" + str(beat_tmp)
return beat
def cb_story(args):
entry = args['entry']
entry["beat"] = get_beat(entry)
…ともかく、ビール(スウォッチ社本社のあるエリア)標準時を求める部分は、もっとスマートなやりかたが絶対にあるはず。なお、コメントアウトしてある部分は、上手く動きませんでした。
Comments
明日直す。
Add Comment...
スパム対策のため、一ヶ月を経過したエントリにはコメントを書き込めないのです…後、http:と書くこともできません。