Installer divided into several modules and added new MessageDialog module
This commit is contained in:
40
network.py
Normal file
40
network.py
Normal file
@ -0,0 +1,40 @@
|
||||
import socket
|
||||
import urllib.request
|
||||
import json
|
||||
|
||||
|
||||
class GiteaUpdate:
|
||||
@staticmethod
|
||||
def api_down(url, current_version=""):
|
||||
"""Get latest version from Gitea API"""
|
||||
try:
|
||||
with urllib.request.urlopen(url, timeout=10) as response:
|
||||
data = json.loads(response.read().decode())
|
||||
if data and len(data) > 0:
|
||||
latest_version = data[0].get("tag_name", "Unknown")
|
||||
return latest_version.lstrip("v") # Remove 'v' prefix if present
|
||||
return "Unknown"
|
||||
except Exception as e:
|
||||
print(f"API Error: {e}")
|
||||
return "Unknown"
|
||||
|
||||
|
||||
class NetworkChecker:
|
||||
@staticmethod
|
||||
def check_internet_connection(host="8.8.8.8", port=53, timeout=3):
|
||||
"""Check if internet connection is available"""
|
||||
try:
|
||||
socket.setdefaulttimeout(timeout)
|
||||
socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port))
|
||||
return True
|
||||
except socket.error:
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def check_repository_access(url="https://git.ilunix.de", timeout=5):
|
||||
"""Check if repository is accessible"""
|
||||
try:
|
||||
urllib.request.urlopen(url, timeout=timeout)
|
||||
return True
|
||||
except:
|
||||
return False
|
Reference in New Issue
Block a user