日の出時刻をお知らせするTweetを吐き出すようにしてみました
日の出や日の入り時刻など日々刻々と変わる時間がやってきたらTweetするものを作ってみたので実装しました。
Pythonで日の出時刻など毎日時間が変わるものに対する残り時間を計算してみる。 – happyman web
まあ今まで、あれこれやってましたので、最後は合体すっれば完成と行きたかったところですが、少しつまづいたので記録しておく。
from my_module import haptweepyapi
from pprint import pprint
import time
from datetime import datetime
import ephem
#日の出と日の入りの場所を設定
nagoya = ephem.Observer()
nagoya.lat = '35.1855875'
nagoya.lon = '136.8990919'
#Pyephem で使用する時刻は、世界時で設定。
nagoya.date = datetime.utcnow()
#太陽の日の出日の入りを計算
sun = ephem.Sun()
sunrise = (ephem.localtime(nagoya.next_rising(sun)))
now = datetime.now()
t2 = (sunrise - now).seconds-5 #タイマーにするときは直前に起動するように数秒減らす。
print(t2)
time.sleep(t2)
# 時刻を取得
datetime_dat = datetime.now()
time_str = datetime_dat.strftime('%H:%M')
print(time_str)
# ★メッセージを指定
message = "おはようからおやすみまで目を開けたまま寝言を吐く人を温かく見守る窓際おじさんのはぴぞうが、名古屋の日の出時刻"+time_str+"をお知らせします。"
# 関数
def CreateTweet(message):
tweet = haptweepyapi.ClientInfo().create_tweet(text=message)
return tweet
# 関数実行・結果出力
pprint(CreateTweet(message))
こんなソースにしたらなんとか動きました。
つまずいたのは、タイマーの起動するタイミングで残り時間0秒で起動するようにすると起動しないので、少しだけ働く時間だけ差っ引いておく必要がある。
そうしないと仕事をしないでまた明日ということで、何の役にも立ちません。
できました。次は何しましょうね。