internet checker decorator
This commit is contained in:
parent
1195433771
commit
5d16064f12
@ -1,7 +1,14 @@
|
||||
import socket
|
||||
import src.shared_vars as main_app
|
||||
from src.imports import *
|
||||
|
||||
# Start helper functions
|
||||
|
||||
#testing app offline
|
||||
def guard(*args, **kwargs):
|
||||
pass
|
||||
socket.socket = guard
|
||||
|
||||
def check_config(name, fallback=None):
|
||||
config = configparser.ConfigParser()
|
||||
config.read(CONFIG_FILE_PATH)
|
||||
@ -68,17 +75,19 @@ def create_update_script(current_exe, new_exe, updater_folder, program_name):
|
||||
|
||||
return script_path
|
||||
|
||||
def is_internet_available():
|
||||
try:
|
||||
requests.get("https://www.google.com", timeout=3)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
def if_internet_available(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
try:
|
||||
requests.get("https://www.google.com", timeout=3)
|
||||
return func(*args, **kwargs)
|
||||
except:
|
||||
show_message("Offline", "No internet connection. Please check your internet connection and try again.")
|
||||
return
|
||||
|
||||
return wrapper
|
||||
|
||||
@if_internet_available
|
||||
def check_for_updates_func(window, ignore_up_todate=False):
|
||||
if not is_internet_available():
|
||||
show_message("Error!", "Internet connection is not available. Please check your internet connection and try again.")
|
||||
return
|
||||
try:
|
||||
latest_version = get_latest_release_version()
|
||||
current_version = VERSION
|
||||
@ -154,6 +163,7 @@ def initialize_steam(master):
|
||||
show_message("Error!", "An error occurred please check your paths and try again.", icon="cancel")
|
||||
master.attributes('-alpha', 1.0)
|
||||
|
||||
@if_internet_available
|
||||
def valid_id(workshop_id):
|
||||
url = f"https://steamcommunity.com/sharedfiles/filedetails/?id={workshop_id}"
|
||||
response = requests.get(url)
|
||||
|
@ -218,10 +218,10 @@ class LibraryTab(ctk.CTkScrollableFrame):
|
||||
curr_folder_name = zone_path.parent.name
|
||||
|
||||
workshop_id = extract_json_data(json_path, "PublisherID") or "None"
|
||||
name = re.sub(r'\^\w+', '', extract_json_data(json_path, "Title"))
|
||||
name = re.sub(r'\^\w+', '', extract_json_data(json_path, "Title")) or "None"
|
||||
name = name[:45] + "..." if len(name) > 45 else name
|
||||
item_type = extract_json_data(json_path, "Type")
|
||||
folder_name = extract_json_data(json_path, "FolderName")
|
||||
item_type = extract_json_data(json_path, "Type") or "None"
|
||||
folder_name = extract_json_data(json_path, "FolderName") or "None"
|
||||
folder_size_bytes = get_folder_size(zone_path.parent)
|
||||
size = convert_bytes_to_readable(folder_size_bytes)
|
||||
total_size += folder_size_bytes
|
||||
@ -394,6 +394,7 @@ class LibraryTab(ctk.CTkScrollableFrame):
|
||||
self.no_items_label.forget()
|
||||
|
||||
# i know i know ,please make a pull request i cant be bother
|
||||
@if_internet_available
|
||||
def show_map_info(self, workshop, invalid_warn=False):
|
||||
for button_view in self.button_view_list:
|
||||
button_view.configure(state="disabled")
|
||||
@ -468,7 +469,7 @@ class LibraryTab(ctk.CTkScrollableFrame):
|
||||
self.toplevel_info_window(map_name, map_mod_type, map_size, image, image_size, date_created,
|
||||
date_updated, stars_image, stars_image_size, ratings_text, url, workshop_id, invalid_warn)
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
except Exception as e:
|
||||
show_message("Error", f"Failed to fetch map information.\nError: {e}", icon="cancel")
|
||||
for button_view in self.button_view_list:
|
||||
button_view.configure(state="normal")
|
||||
@ -597,10 +598,8 @@ class LibraryTab(ctk.CTkScrollableFrame):
|
||||
button_view.configure(state="normal")
|
||||
self.after(0, main_thread)
|
||||
|
||||
@if_internet_available
|
||||
def check_for_updates(self, on_launch=False):
|
||||
if not is_internet_available():
|
||||
show_message("Error!", "Internet connection is not available. Please check your internet connection and try again.")
|
||||
return
|
||||
self.after(1, self.update_button.configure(state="disabled"))
|
||||
self.update_tooltip.configure(message='Still loading please wait...')
|
||||
cevent = Event()
|
||||
|
@ -513,6 +513,7 @@ class BOIIIWD(ctk.CTk):
|
||||
link = "https://steamcommunity.com/app/311210/workshop/"
|
||||
webbrowser.open(link)
|
||||
|
||||
@if_internet_available
|
||||
def download_steamcmd(self):
|
||||
self.edit_steamcmd_path.delete(0, "end")
|
||||
self.edit_steamcmd_path.insert(0, application_path)
|
||||
@ -554,6 +555,7 @@ class BOIIIWD(ctk.CTk):
|
||||
show_message("Error", "Failed to extract SteamCMD. The downloaded file might be corrupted.", icon="cancel")
|
||||
os.remove(fr"{steamcmd_zip_path}")
|
||||
|
||||
@if_internet_available
|
||||
def show_map_info(self):
|
||||
def show_map_thread():
|
||||
workshop_id = self.edit_workshop_id.get().strip()
|
||||
@ -627,7 +629,7 @@ class BOIIIWD(ctk.CTk):
|
||||
image_size = image.size
|
||||
|
||||
self.toplevel_info_window(map_name, map_mod_type, map_size, image, image_size, date_created ,
|
||||
date_updated, stars_image, stars_image_size, ratings_text, url)
|
||||
date_updated, stars_image, stars_image_size, ratings_text, url)
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
show_message("Error", f"Failed to fetch map information.\nError: {e}", icon="cancel")
|
||||
@ -904,6 +906,7 @@ class BOIIIWD(ctk.CTk):
|
||||
return
|
||||
self.after(0, callback)
|
||||
|
||||
@if_internet_available
|
||||
def download_map(self, update=False):
|
||||
self.is_downloading = False
|
||||
self.fail_threshold = 0
|
||||
|
Loading…
Reference in New Issue
Block a user