mirror of
				https://github.com/Neocky/pluGET.git
				synced 2024-04-29 16:12:30 +00:00 
			
		
		
		
	Added better error handling to download function
This commit is contained in:
		| @@ -40,7 +40,7 @@ if __name__ == "__main__": | ||||
|         handle_input(args["mode"], args["object"], args["version"], arguments_from_console=True) | ||||
|     else: | ||||
|         # no arguments were used so start pluGET console | ||||
|         #clear_console() | ||||
|         clear_console() | ||||
|         print_logo() | ||||
|         check_for_pluGET_update() | ||||
|         handle_input() | ||||
|   | ||||
| @@ -101,11 +101,13 @@ def download_specific_plugin_version_spiget(plugin_id, download_path, version_id | ||||
|         rich_print_error("Sorry but specific version downloads aren't supported because of cloudflare protection. :(") | ||||
|         rich_print_error("Reverting to latest version.") | ||||
|  | ||||
|     #url = f"https://api.spiget.org/v2/resources/{plugin_id}/versions/latest/download" #throws 403 forbidden error...cloudflare :( | ||||
|     #throws 403 forbidden error...cloudflare :( | ||||
|     #url = f"https://api.spiget.org/v2/resources/{plugin_id}/versions/latest/download" | ||||
|  | ||||
|     url = f"https://api.spiget.org/v2/resources/{plugin_id}/download" | ||||
|  | ||||
|     # use rich Progress() to create progress bar | ||||
|     with Progress() as progress: | ||||
|     with Progress(transient=True) as progress: | ||||
|         header = {'user-agent': 'pluGET/1.0'} | ||||
|         r = requests.get(url, headers=header, stream=True) | ||||
|         try: | ||||
| @@ -175,6 +177,10 @@ def get_specific_plugin(plugin_id, plugin_version="latest") -> None: | ||||
|     plugin_version_name = get_version_name(plugin_id, plugin_version_id) | ||||
|     plugin_download_name = f"{plugin_name}-{plugin_version_name}.jar" | ||||
|     download_plugin_path = Path(f"{download_path}/{plugin_download_name}") | ||||
|     # if api requests weren't successfull stop function | ||||
|     if plugin_version_id == None or plugin_version_name == None: | ||||
|         rich_print_error("Error: Webrequest timed out") | ||||
|         return None | ||||
|     # set the plugin_version_id to None if a specific version wasn't given as parameter | ||||
|     if plugin_version == "latest" or plugin_version is None: | ||||
|         plugin_version_id = None | ||||
| @@ -193,6 +199,7 @@ def search_specific_plugin(plugin_name) -> None: | ||||
|     url= f"https://api.spiget.org/v2/search/resources/{plugin_name}?field=name&sort=-downloads" | ||||
|     plugin_search_results = api_do_request(url) | ||||
|     if plugin_search_results == None: | ||||
|         rich_print_error("Error: Webrequest wasn't successfull!") | ||||
|         return None | ||||
|  | ||||
|     print(f"Searching for {plugin_name}...") | ||||
|   | ||||
| @@ -155,6 +155,11 @@ def compare_plugin_version(plugin_latest_version, plugin_file_version) -> bool: | ||||
| def check_installed_plugins(input_selected_object="all", input_parameter=None) -> None: | ||||
|     """ | ||||
|     Gets installed plugins and checks it against the apis if there are updates for the plugins available | ||||
|  | ||||
|     :param input_selected_object: Which plugin should be checked | ||||
|     :param input_parameter: Optional parameters | ||||
|  | ||||
|     :returns: None | ||||
|     """ | ||||
|     config_values = config_value() | ||||
|     plugin.create_plugin_list() | ||||
| @@ -169,9 +174,9 @@ def check_installed_plugins(input_selected_object="all", input_parameter=None) - | ||||
|         case _: | ||||
|             plugin_folder_path = config_values.path_to_plugin_folder | ||||
|             plugin_list = os.listdir(plugin_folder_path) | ||||
|      | ||||
|  | ||||
|     # create simple progress bar from rich | ||||
|     for plugin_file in track(plugin_list, description="Checking...", transient=True, style="bright_yellow"): | ||||
|     for plugin_file in track(plugin_list, description="[cyan]Checking...", transient=True, style="bright_yellow"): | ||||
|         plugin_no_attributes = False | ||||
|         match config_values.connection: | ||||
|             case "sftp": | ||||
| @@ -220,8 +225,8 @@ def search_plugin_spigot(plugin_file, plugin_file_name, plugin_file_version) -> | ||||
|             plugin_file_version2 = re.sub(r'(\-\w*)', '', plugin_file_version) | ||||
|         if i == 2: | ||||
|             """ | ||||
|             pluginNameinYML = eggCrackingJar(plugin_file, 'name') | ||||
|             url = "https://api.spiget.org/v2/search/resources/" + pluginNameinYML + "?field=name&sort=-downloads" | ||||
|             plugin_name_in_yml = eggCrackingJar(plugin_file, 'name') | ||||
|             url = f"https://api.spiget.org/v2/search/resources/{plugin_name_in_yml}?field=name&sort=-downloads" | ||||
|             try: | ||||
|                 plugin_list = api_do_request(url) | ||||
|             except ValueError: | ||||
|   | ||||
| @@ -50,7 +50,11 @@ def api_do_request(url) -> list: | ||||
|         rich_print_error("Error: Couldn't create webrequest") | ||||
|         # return None to make functions quit | ||||
|         return None | ||||
|     api_json_data = response.json() | ||||
|     try: | ||||
|         api_json_data = response.json() | ||||
|     except: | ||||
|         rich_print_error("Error: Couldn't parse json of webrequest") | ||||
|         return None | ||||
|     return api_json_data | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jan-Luca Bogdan | BEL NET GmbH
					Jan-Luca Bogdan | BEL NET GmbH