import requests
bearer_token = 'xxxxx'

def create_url(id):
    list_fields = "list.fields=created_at,follower_count"
    url = "https://api.twitter.com/2/lists/{}/members".format(id)
    return url, list_fields


def bearer_oauth(r):
    """
    Method required by bearer token authentication.
    """

    r.headers["Authorization"] = f"Bearer {bearer_token}"
    r.headers["User-Agent"] = "v2ListLookupPython"
    return r


def connect_to_endpoint(url, list_fields):
    response = requests.request("GET", url, auth=bearer_oauth)
    print(response.status_code)
    if response.status_code != 200:
        raise Exception(
            "Request returned an error: {} {}".format(
                response.status_code, response.text
            )
        )
    return response.json()


def main():
    list_ids = [
        "1698483049569132665",
        "1686667091594891264",
        "1686294729045196801",
        "1691068475110989953",
        "1698531713486664178",
        "1698480499784585706",
        "1698870371959849207",
        "1698480499784585706",
        "1702109517440549055",
        "1703601964309967044",
        "1914595632096198993",
        "1914647432857821409",
        "1914668581713011045",
        "1914876137026806061",
        "1914927321808822708",
        "1914946270147592326",
        "1914953390976852191",
        "1914959721876029749"
    ]
    user_ids = []
    for id in list_ids:
        url, list_fields = create_url(id)
        json_response = connect_to_endpoint(url, list_fields)
        data = json_response['data']
        for item in data:
            user_id = item['id']
            # user_ids.append(user_id)
            # print(item)
            username = item['username']
            user_ids.append(username)
        # print(json.dumps(json_response, indent=4, sort_keys=True))
    print(user_ids)
    user_ids = list(set(user_ids))
    print(user_ids)
    print(len(user_ids))

if __name__ == "__main__":
    main()