
ここで言う「片思い」とは、
あなたがfollowしているのに
相手はfollowしていない人をさします。
そういう人をまとめてfollowからはずすPythonコード
をここに書きます。
python twitterを導入している環境なら動くはずです。
Ubuntu Linuxで動作確認済みです。
remove.py
# -*- coding:utf-8 -*-
import twitter
import urllib2
import json
username = 'yourID'
password = '**********'
def getFollowers(screen_name=username):
'''
follwerのidをリストで返す
'''
url = "http://twitter.com/followers/ids/%s.json" % screen_name
ids = urllib2.urlopen(url).read()
return json.loads(ids)
def getFollowing(screen_name=username):
'''
followingのidをリストで返す
'''
url = "http://twitter.com/friends/ids/%s.json" % screen_name
ids = urllib2.urlopen(url).read()
return json.loads(ids)
def removeNonFollower():
'''
こちらはfollowしているけれど
向こうはfollowしていない人の
followを解除する
'''
api = twitter.Api( username, password )
followerList = getFollowers()
followingList= getFollowing()
followerSet = set( followerList )
followingSet= set( followingList )
kataomoiSet = followingSet - followerSet #差集合
kataomoiList= list( kataomoiSet )
print 'follower num = ' + str(len(followerSet))
print 'following num = ' + str(len(followingSet))
print 'delete num = ' + str(len(kataomoiSet))
for ID in kataomoiList:
api.DestroyFriendship( ID )
def main():
removeNonFollower()
if __name__ == '__main__':
main()
上記のコードをremove.pyと名づけて保存します。
username, passwordは使用者のものに書き換えてください。
そして、ターミナルにて
python remove.py
と打てば「片思いfollowはずし」が完了します。
内部ではPythonのSetを使っています。
こちらがfollowしている人の集合をfollowingSetとし、
こちらをfollowしてくれる人の集合をfollowerSetとすると、
その「差集合」
kataomoiSet = followingSet - followerSet
が定義できます。
その集合のfollowをはずすようになっています。
動かしてみたところ、こちらをfollowしてくれている人の一部
のfollowまではずしてしまうようです。そこが許容できれば、
大体思ったとおりの動きをします。よろしければ参考にしてください。
※このコードを動かして被害が出たとしても責任はとりません
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
参考:setを使って、twitterの片思い、片思われ、両思いを取得する
英単語をつぶやくbot、eitantanのfollowing数が2000
に達したので、一度following数を下げるために
このコードを書きました。