「走り出す」を「おしりだす」にかえて自動投稿する超くだらないbot作った

タイトルの通り.いきおいで作ってしまった.


pythonでコードたった20行くらい.

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

import twitter
import datetime
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
d = datetime.datetime.today()

CONSUMER_KEY="**********"
CONSUMER_SECRET="**********"
ACCESS_TOKEN="**********"
ACCESS_TOKEN_SECRET="**********"

api = twitter.Api(consumer_key=CONSUMER_KEY,
                      consumer_secret=CONSUMER_SECRET,
                      access_token_key=ACCESS_TOKEN,
                      access_token_secret=ACCESS_TOKEN_SECRET,
                      cache=None)

search_results = [tweet.text for tweet in api.GetSearch('走り出す'.decode('utf-8'))]
for tweet in search_results:
        while tweet[0] == '@':
            tweet = tweet[tweet.find(' ')+1:len(tweet)]
        if 0 < len(tweet) < 50 and '@' not in tweet and (d.hour <= 14 or d.hour == 23):
            api.PostUpdate(tweet.replace('走り出す', 'おしりだす').decode('utf-8'))
            break

python-twitterをAPI1.1対応&機能拡張した

python-twitterは,Twitter APIpythonラッパーとしてよく使われているが,APIの全てエンドポイントを網羅しておらず不完全なので,勝手にモジュールを追加してしまった.

GetListMemberships(user)

userが登録されているListの一覧を取得

In [1]: list_memberships = api.GetListMemberships('pika_shi')

In [2]: for list in list_memberships:
   ....:     print list.GetName()
   ....:
ACARIC_IT_2014
IT20130119
CODE BOUT
...
ku
kuis
ku

GetListMemebrs(user, list)

listに登録されているメンバー一覧を取得

In [3]: members = api.GetListMembers('pika_shi', list_memberships[0])

In [4]: for member in members:
   ....:     print member.screen_name
   ....:
unia529
kurix000
7auto
...
phyro
kazuhirokomoda
akiba_yuri

ExistsFriendship(A, B)

AがBをフォローしているか調べる

In [5]: api.ExistsFriendship('pika_shi', 'petitviolet')
'true'

以下にあげてあります!
pika-shi/python-twitter-extension · GitHub

ただ,普通に使う分にはもともとあるのだけで十分だと思う(クライアント作成など).

API1.1には対応していないのでまた修正しないといけない. (追記あり)

デフォルトのモジュールの使い方についてはこちら

(追記4/29) API1.1に対応させ,GitHubにコミットしておきました!

とりあえず@pika_shi_botを動かし続けるために必要な,GetFriendsTimelineとPostUpdateのみ動作確認済みですが,それ以外もだいたいうまく動くと思います.