blog.hekt.org

Twitter Botを作ってみた

ホセ・ザ・ポエマー。全部で100行くらいの短いプログラムで、一時間おきにデータベースに登録した文の中からランダムに一つ選んでツイートするだけ。ちなみにこのアカウントは名前からもわかるように僕がいろいろ遊ぶためのものですから、いつまでポエムをつぶやき続けるかはわかりませんし、テキトーに拾い集めただけなので20パターンくらいしかありません。

サーバーのPythonが古いのでGAEでやったのですが、データストアの使いやすさに感動しました。つっても他のデータベース触ったことないのでアレですが、文章のみを登録しておくだけとはいえ、これくらい短い記述でOKというのはかなり簡単なほうだと思います。

from google.appengine.ext import db

class BotSentences(db.Model):
	content = db.StringProperty()

class ManageDb:
	def add_sentence(self, s):
		if isinstance(s, list) or isinstance(s, tuple):
		# 与えられたのがリストかタプルならループですべての値を書き込む
			for i in s:
				post_str = BotSentences(content=i)
				post_str.put()
		elif isinstance(s, (str, unicode)):
		# 文字列なら一つだけ
			post_str = BotSentences(content=s)
			post_str.put()


	def get_sentence(self):
		sentences = db.GqlQuery("SELECT * FROM BotSentences")
		sentence_list = [sentences.content for sentences in sentences]

		return sentence_list

たったこれだけ。8行目から12行目は最初に文章を一気に登録するときに使っただけなので、実際はもうちょっと短くできます。これが無料。ストレージ1ギガバイト。さすがGoogle。というわけで今後はGAE中心にPythonのお勉強をする予定です。いつかは有意義なウェブアプリを開発できるようになりたいもんですね。