File size: 1,770 Bytes
f080be6
 
1d33c47
f5a5ce7
e5bd197
1d33c47
6638f01
 
2920981
 
 
 
6638f01
2920981
 
 
 
6638f01
f080be6
 
 
ea69880
e5bd197
57f43d4
e5bd197
ca9dcd2
57f43d4
6638f01
ea0d926
 
e5bd197
 
 
 
6638f01
f080be6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f5a5ce7
 
f080be6
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import requests
import gradio as gr
import os
import json
import tweepy

bearer_token=os.environ["BEARER_KEY"]

consumer_key = os.environ["CONSUMER_KEY"]
consumer_secret = os.environ["CONSUMER_SECRET"]
access_token = os.environ["ACCESS_TOKEN"]
access_token_secret = os.environ["ACCESS_TOKEN_SECRET"]

client = tweepy.Client(
    consumer_key=consumer_key, consumer_secret=consumer_secret,
    access_token=access_token, access_token_secret=access_token_secret
)


def get_twitter_user_followers(user_id):
    twitter_api_url = f"https://api.twitter.com/2/users/{user_id}"

    user_ids = [2244994945, 6253282]
    print(user_ids)
    response = client.get_users(ids=user_ids, user_fields=["profile_image_url"])
    
    print(response)
    print(response.status_code)
    print(response.text)
    print(response.json())

    for user in response.data:
        print(user.username, user.profile_image_url)

    if response.status_code == 200:
        data = response.json()
        if "data" in data:
            return data["data"]["public_metrics"]["following_count"]
        else:
            raise Exception("Unable to retrieve user data")
    else:
        raise Exception("Failed to fetch user data")

def get_followers_counts(user_ids):
    followers_counts = {}
    for user_id in user_ids:
        try:
            followers_count = get_twitter_user_followers(user_id)
            followers_counts[user_id] = followers_count
        except Exception as e:
            followers_counts[user_id] = str(e)
    return followers_counts

def predict(user_ids_json):
    user_ids = json.loads(user_ids_json)
    followers_counts = get_followers_counts(user_ids)
    return followers_counts

iface = gr.Interface(fn=predict, inputs="text", outputs="text")
iface.launch()