How My Heart Sings

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)

…ともかく、ビール(スウォッチ社本社のあるエリア)標準時を求める部分は、もっとスマートなやりかたが絶対にあるはず。なお、コメントアウトしてある部分は、上手く動きませんでした。

Meta Infomation of this entry

You can add this Entry to your  はてなブックマーク and Delicious

Comments

Posted by やました at Tue Jul 8 00:20:00 2008
ふむ、#0とか表示されている…

明日直す。

Add Comment...

スパム対策のため、一ヶ月を経過したエントリにはコメントを書き込めないのです…後、http:と書くこともできません。

Name:

Comment:

Le violon intérieur....
Yasuo Yamashita
vaiorinnhiATTOnaDOTrimDOTorjye-pi-
Y.A.S.U.O Ytterbium Artificial Sabotage and Utility Organism Y.A.S.U.O Yelling Abomination from the Sunless Underground Oasis

Pyblosxom and plugins. For detail, see http://viole.sakura.ne.jp/blosxom/blosxom.cgi/plugin_info