2011年11月27日日曜日

twitterBOTの作成③

タイムゾーンを東京(GMT+09:00)に直す。

datetime.datetime.now()はタイムゾーンを引数にとれるみたい。でも引数がちょっと面倒。

以下を参考にさせていただきました。

Pythonでタイムゾーンを扱うメモ « taichino.com
http://taichino.com/programming/1876

タイムゾーンが設定できたところでdatetime.datetime(2012,1,21) - datetime.datetime.now(JST())をすると今度はnaiveがどーたらこーたら。

今度は以下を参考にdatetime.datetime(2012,1,21)の引数にtzinfo=JST()を加える。

あるエンジニアの不定期勉強記録
http://abalone.ununu.org/archives/705



できました。この画像からはよくわかりませんが…。

現在のsotsuprobot.py

[sourcecode language="python"]
# -*- coding: utf-8 -*-
import twitter
import datetime

api = twitter.Api(
cache = None,
consumer_key = '****',
consumer_secret = '****',
access_token_key = '****',
access_token_secret = '****')

# タイムゾーンの設定
class JST(datetime.tzinfo):
def utcoffset(self, dt):
return datetime.timedelta(hours=9)
def dst(self, dt):
return datetime.timedelta(0)
def tzname(self, dt):
return 'JST'

# 残り時間の算出
teisyutsubi = datetime.datetime(2012,1,21,23,59,tzinfo=JST())
ima = datetime.datetime.now(JST())
nokorijikan = teisyutsubi - ima

# tweet
text = u"現在時刻"+ str(ima) + u" 卒プロ成果登録締め切りまで あと" + str(nokorijikan.days) + u"日 #sfc_sotsupro"

api.PostUpdate(status=text)
[/sourcecode]

cron.yaml

[sourcecode language="text"]
cron:
- description: tweet
url: /sotsuprobot
schedule: every 3 hours
timezone: Asia/Tokyo
[/sourcecode]

[twitter-follow screen_name='sotsupro2012' show_count='no']

0 件のコメント:

コメントを投稿