LoginSignup
3

More than 5 years have passed since last update.

Twitterでフォローとリストを同期するスクリプト(Python)

Last updated at Posted at 2018-08-17

CK/CS/TK/TSに認証情報を、LIST_NAMEにリスト名を入れて実行すると同期されます

import os
import tweepy


def list_split(n: int, list):
    return [list[i:i+n] for i in range(0, len(list), n)]


# 環境変数取得
ck = os.environ["CK"]
cs = os.environ["CS"]
tk = os.environ["TK"]
ts = os.environ["TS"]
list_name = os.environ["LIST_NAME"]

# 認証
auth = tweepy.OAuthHandler(ck, cs)
auth.set_access_token(tk, ts)
api = tweepy.API(auth)

# リストを検索
list_id = None
for x in api.lists_all():
    if x.name == list_name:
        list_id = x.id

# 存在しない場合は作る
if list_id == None:
    list_id = api.create_list(name=list_name, mode="private").id

# フォローユーザー一覧とリストユーザー一覧取得
friends = set(
    list(tweepy.Cursor(api.friends_ids, user_id=api.me().id).items()))
members = set([x.id for x in tweepy.Cursor(
    api.list_members, list_id=list_id).items()])

# リストに追加
for ids in list_split(100, list(friends-members)):
    api.add_list_members(list_id=list_id, user_id=ids)

# リストから削除
for ids in list_split(100, list(members-friends)):
    api.remove_list_members(list_id=list_id, user_id=ids)


Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3