2012年に人類が滅亡するらしいので、カウントダウンするTwitter BOTをつくった
1日に1回だけ、2012年12月22日人類が滅亡するその日までの日数を教えてくれます。
GAEでいくつかのBOTを稼働させていて、
その仕組みの中で動いているので、実質5行くらいしか書いていません。
抜粋すぎるソース
import time import datetime from api.twitter import Twitter class Metsubow: def __init__(self): self.twit = Twitter('id', 'password') def update(self): tim = time.localtime(time.time()) d1 = datetime.date(tim.tm_year, tim.tm_mon, tim.tm_mday) d2 = datetime.date(2012, 12, 22) days = (d2 - d1).days msg = "人類が滅亡するまであと %s 日" % days self.twit.update(msg)
#/usr/bin/env python # -*- coding: utf-8 -*- import base64 import logging import urllib from django.utils import simplejson from google.appengine.api import urlfetch class Twitter: def __init__(self, username, password): base64string = base64.encodestring(u"%s:%s" % ( username, password))[:-1] self.auth_header = { "Authorization": u"Basic %s" % base64string, "Content-Type" : 'application/x-www-form-urlencoded', } def update(self, status = None, in_reply_to_status_id = None): data ={ 'status' : status, 'in_reply_to_status_id' : in_reply_to_status_id, } return self.post('http://twitter.com/statuses/update.json', data) def post(self, url, data = {}): for k,v in data.items(): if isinstance(v, unicode): data[k] = v.encode('utf-8') result = urlfetch.fetch( url = url, payload = urllib.urlencode(data), method = urlfetch.POST, headers = self.auth_header, ) logging.debug("post = %s (%d)" % (url, result.status_code)) if result.status_code == 200: return simplejson.loads(result.content) return []