Skip to content

Commit

Permalink
Updated error handling to provide specific message for rate limit exc…
Browse files Browse the repository at this point in the history
…eeded condition (#657)
  • Loading branch information
monarxxjain committed Feb 26, 2024
1 parent b4c5276 commit 0354ff6
Showing 1 changed file with 36 additions and 20 deletions.
56 changes: 36 additions & 20 deletions auto_cpufreq/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,32 +174,48 @@ def check_for_update():
# Fetch the latest release information from GitHub API
latest_release_url = f"https://api.github.com/repos/AdnanHodzic/auto-cpufreq/releases/latest"
try:
latest_release = requests.get(latest_release_url).json()
response = requests.get(latest_release_url)
if response.status_code == 200:
latest_release = response.json()
else:
message = response.json().get("message")
print("Error fetching recent release!")
if message is not None and message.startswith("API rate limit exceeded"):
print("GitHub Rate limit exceeded. Please try again later within 1 hour or use different network/VPN.")
else:
print("Unexpected status code:", response.status_code)
return False
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout,
requests.exceptions.RequestException, requests.exceptions.HTTPError) as err:
print ("Error Connecting to server!")
print("Error Connecting to server!")
return False

latest_version = latest_release["tag_name"]
latest_version = latest_release.get("tag_name")

# Get the current version of auto-cpufreq
# Extract version number from the output string
output = check_output(['auto-cpufreq', '--version']).decode('utf-8')
try:
version_line = next((re.search(r'\d+\.\d+\.\d+', line).group() for line in output.split('\n') if line.startswith('auto-cpufreq version')), None)
except AttributeError:
print("Error Retrieving Current Version!")
exit(1)
installed_version = "v" + version_line
#Check whether the same is installed or not
# Compare the latest version with the installed version and perform update if necessary
if latest_version == installed_version:
print("auto-cpufreq is up to date")
return False
if latest_version is not None:
# Get the current version of auto-cpufreq
# Extract version number from the output string
output = check_output(['auto-cpufreq', '--version']).decode('utf-8')
try:
version_line = next((re.search(r'\d+\.\d+\.\d+', line).group() for line in output.split('\n') if line.startswith('auto-cpufreq version')), None)
except AttributeError:
print("Error Retrieving Current Version!")
exit(1)
installed_version = "v" + version_line
#Check whether the same is installed or not
# Compare the latest version with the installed version and perform update if necessary
if latest_version == installed_version:
print("auto-cpufreq is up to date")
return False
else:
print(f"Updates are available,\nCurrent version: {installed_version}\nLatest version: {latest_version}")
print("Note that your previous custom settings might be erased with the following update")
return True
else:
print(f"Updates are available,\nCurrent version: {installed_version}\nLatest version: {latest_version}")
print("Note that your previous custom settings might be erased with the following update")
return True
# Handle the case where "tag_name" key doesn't exist
print("Malformed Released data!\nReinstall manually or Open an issue on GitHub for help!")



def new_update(custom_dir):
os.chdir(custom_dir)
Expand Down

0 comments on commit 0354ff6

Please sign in to comment.