Skip to content

Instantly share code, notes, and snippets.

@mizchi
Created May 30, 2011 18:38
Show Gist options
  • Save mizchi/999278 to your computer and use it in GitHub Desktop.
Save mizchi/999278 to your computer and use it in GitHub Desktop.
人科ウォッチ用
#!/usr/local/bin/python
# encoding:utf-8
import tweepy
from time import sleep
import pickle
def psave(fname,obj): pickle.dump(obj,open(fname,"w"))
def pload(fname): return pickle.load(open(fname))
consumer_key = ""
consumer_secret = ""
access_key = ""
access_secret = ""
# create OAuth handler
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
# set access token to OAuth handler
auth.set_access_token(access_key, access_secret)
# create API
api = tweepy.API(auth_handler=auth)
source = [
("hypo_to_osakana","jinka"),
("mosuke5","waseda-jinka1"),
("mosuke5","waseda-jinka2"),
("healthyboy4","waseda-jinka"),
("utti58","g-nka")
]
jinka = 46425456
jinka2 = 46462226
def get_user_listed(scname,cur=-1):
data = api.get_user(scname)
[ls , rng] = data.lists_memberships(cursor=cur)
next_cur = rng[1]
if not next_cur:
return [ (i.user.screen_name,i.name) for i in ls ]
return [ (i.user.screen_name,i.name) for i in ls ] + get_user_listed(scname,cur=next_cur)
def get_member_listed_count(members,rng=(0,50)):
buf ={}
for m in members[rng[0]:rng[1]]:
lists = get_user_listed(m) # listedを取る処理
count = len(lists)
for l in lists:
if not l in buf:
buf[l] = 1.0/count
else:
buf[l] += 1.0/count
return buf
def add_members(members,rng=(0,100)):
for m in members[rng[0]:rng[1]]:
try:
api.add_list_member(slug=jinka2, id=m)
print m
except:
"you are blocked by",m
def get_all_members(user,group,cur=-1):
d = api.list_members(user,group,cur)
buf = [i.screen_name for i in d[0] ]
next_cur = d[1][1]
if not next_cur: return buf
return buf+get_all_members(user,group,cur=next_cur)
def update_members():
buf = []
for i in source:
print i
members = get_all_members(i[0],i[1])
for mb in members:
print mb
for m in members:
if not m in buf:
print m,"--- add "
buf.append(m)
psave("jinka.dump",buf)
def load_members():
return pload("jinka.dump")
if __name__ == '__main__':
update_members()
members = load_members()
data = get_member_listed_count(members)
psave("jinka_relate.dump",data)
print data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment