Python · октомври 17, 2023

Как да разбера кои са потребителите, които следвам в GitHub, но те не следват мен?

Вероятно ви следват потребители в гитхъб, които не познавате, но решавате да върнете следването. След известно време потребителите, които вие следвате са същия брой, а тези, които ви следват са намаляли. Ако си задавате въпроса кои са хората, които са се отказали да продължават да ви следват, то този код би ви помогнал.

import requests

user = input("Input user: ")

following_url = f"https://api.github.com/users/{user}/following"
followers_url = f"https://api.github.com/users/{user}/followers"

following_users = set()
followers_users = set()


def get_users(url, users_set):
    while url:
        response = requests.get(url)
        data = response.json()
        users_set.update(user['login'] for user in data)
        next_link = None
        if 'Link' in response.headers:
            links = response.headers['Link'].split(',')
            for link in links:
                parts = link.split(';')
                if len(parts) == 2 and 'rel="next"' in parts[1]:
                    url_in_brackets = parts[0].strip()[1:-1]
                    if url_in_brackets != url:
                        next_link = url_in_brackets
                        break
        url = next_link


get_users(following_url, following_users)

get_users(followers_url, followers_users)

not_followed_back = following_users - followers_users

print(f"{user} have {len(followers_users)} followers and following {len(following_users)} users.")

print(f"Users that {user} follows, but they do not follow him/her back are {len(not_followed_back)}:")
for user in not_followed_back:
    print(user)