今年も玉音放送BOTあります

去年、終戦詔勅を放送するボットを作りました。


@gyokuon : 終戦の詔勅(玉音放送)を放送する twitter bot を作った - つまみ食う
玉音放送 (@gyokuon) | Twitter


今年も同じように、8月15日の正午から動かします。


本当はほったらかしでも動くはずだったんだけど、Twitterの認証方式が変わったので、もう一度書き直ししました。
去年は Perl で今年は Python
昨日書いた Twitter API をたたくやつ を使って単純にテキストファイルを一行ずつポストしていっています。


去年、作ったときにはあまり考えていなかったけど、Twitterはすごく「今」に強いメディアだと思ってて、そういうTwitterで2010年の「今」ではなく、過去の「今」を追体験するような感覚って結構面白いなぁと思います。他にもたくさん出来たらいいのになーと思っています。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import yaml
import time
import logging

import twitter


def read_yaml(*filelist):
    result = {}
    for name in filelist:
        filename = '%s.yaml' % name
        if os.path.exists(filename):
            result[name] = yaml.load(open(filename).read())
        else:
            raise IOError, '%s is not exists' % filename
    return result



def main(argc, argv):
    account = argv[1] if argc > 1 else 'gyokuon'
    logging.debug('account = %s' % account)
    
    conf   = read_yaml('oauth', account, 'text')
    oauth  = twitter.OAuth(conf['oauth'], conf[account])
    api    = twitter.TwitterAPI(oauth)
    
    for line in conf['text'].split(' '):
        line = line.strip()
        logging.debug(line)
        api.tweet(status=line)
        time.sleep(90)
    
    
if __name__ == '__main__':
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(levelname)s %(message)s',
                        filename='./log.txt',
                        filemode='w')
    main(len(sys.argv), sys.argv)


oauth.yaml

consumer_key:
consumer_secret:


gyokuon.yaml

token: 
token_secret: 


text.yaml

*只今より重大なる放送があります。全国聴取者の皆様御起立願います。天皇陛下におかれましては、全国民に対し、畏くも御自から大詔を宣らせ給う事になりました。これよりつつしみて玉音をお送り申します。
.....