Updated error handling to provide specific message for rate limit exceeded condition (#657)
This commit is contained in:
parent
b4c5276feb
commit
0354ff6cc4
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue