Skip to content

Instantly share code, notes, and snippets.

@mehmetabak
Created July 1, 2024 19:28
Show Gist options
  • Select an option

  • Save mehmetabak/ca25cd817d0198f6d379adcf6e165805 to your computer and use it in GitHub Desktop.

Select an option

Save mehmetabak/ca25cd817d0198f6d379adcf6e165805 to your computer and use it in GitHub Desktop.
This Python script basically helps you identify GitHub users you follow who do not follow you back.
import requests
import re
def validate_username(username):
if re.match(r'^[a-zA-Z0-9-]{1,39}$', username):
return True
else:
return False
def get_following(GITHUB_USERNAME):
url = f'https://api.github.com/users/{username}/following'
response = requests.get(url, GITHUB_USERNAME)
if response.status_code == 200:
return [user['login'] for user in response.json()]
else:
response.raise_for_status()
def get_followers(GITHUB_USERNAME):
url = f'https://api.github.com/users/{username}/followers'
response = requests.get(url, GITHUB_USERNAME)
if response.status_code == 200:
return [user['login'] for user in response.json()]
else:
response.raise_for_status()
def find_non_followers(username):
following = get_following(username)
followers = get_followers(username)
non_followers = [user for user in following if user not in followers]
if non_followers:
print("Users you follow who don't follow you back:")
for user in non_followers:
print(f" User Name: {user} \n Profile URL: https://github.com/{user}")
else:
print("Everyone you follow follows you back!")
if __name__ == "__main__":
username = input("Enter your GitHub username: ")
while not validate_username(username):
print("Invalid GitHub username. Please enter a valid username.")
username = input("Enter your GitHub username: ")
else:
find_non_followers(username)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment