Created
May 30, 2011 18:38
-
-
Save mizchi/999278 to your computer and use it in GitHub Desktop.
人科ウォッチ用
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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