2011年7月8日金曜日

PythonでTwitterのフォローしてない人だけを全てフォロー解除してやる(´。◕ω◕。)

どんな処理をしているかというと簡単で

http://api.twitter.com/1/friends/ids.json?&screen_name=screen_nameで取得できるフォロー中のリストから

http://api.twitter.com/1/followers/ids.json?&screen_name=screen_nameで取得でいるフォローされているリストのuser_idを削除して

残りのゆーざー==”自分をフォローしてないゆーざー”

となるわけなので

それらをoauthtwitterで継承して作ったメソッドdestroy_users_from_queryで削除してます。

 

oauthtwitterについてはここをみて下さい。

http://code.google.com/p/oauth-python-twitter2/

 

 

#!/usr/bin/env python
# encoding: utf-8

import urllib2
import simplejson
import oauthtwitter


#format ここにTwitterの登録情報いれる
consumer_key = ""
consumer_secret = ""
oauth_token        = ""
oauth_token_secret = ""
screen_name = ""

class Twitter(oauthtwitter.OAuthApi):
    """oauthtwitter.OAuthApiに下記のメソッドをついかする〜"""
    def DestoryUser(self, user_id, options = {}):
        options['user_id'] = user_id
        self.ApiCall("friendships/destroy", "POST", options)

    
def destroy_users_from_query():
    twitter = Twitter(consumer_key, consumer_secret, oauth_token, oauth_token_secret)
    json1 = urllib2.urlopen("http://api.twitter.com/1/friends/ids.json?&screen_name=" + screen_name)
    json2 = urllib2.urlopen("http://api.twitter.com/1/followers/ids.json?&screen_name=" + screen_name)

    following_list = simplejson.load(json1)
    followed_list = simplejson.load(json2)
    for i in followed_list:
        if i in following_list:
            following_list.remove(i)
            pass
    num = 0
    print "prgress in deleting..."
    for i in following_list:
        try:
            twitter.DestoryUser(i)
            num +=1
        except Exception, e:
            print e
    return "Unfollowed:"+str(num)+" users"

def main():
    print "まじでやる?(´・ω・`)\n"+"put y"
    query = raw_input()
    
    if query == "y":
        print destroy_users_from_query()
    else:
        exit()


if __name__ == '__main__':
    main()

0 件のコメント:

コメントを投稿