53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
import sys
 | 
						|
import requests
 | 
						|
import importlib.util
 | 
						|
import zipfile
 | 
						|
import shutil
 | 
						|
import json
 | 
						|
from datetime import datetime
 | 
						|
import configparser
 | 
						|
from PyQt5 import QtWidgets, QtGui
 | 
						|
from PyQt5.QtWidgets import (
 | 
						|
    QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
 | 
						|
    QLabel, QLineEdit, QPushButton, QCheckBox, QComboBox, QDialog,
 | 
						|
    QMessageBox, QFileDialog
 | 
						|
)
 | 
						|
from PyQt5.QtGui import QFont
 | 
						|
from PyQt5.QtCore import Qt
 | 
						|
 | 
						|
# Define repository details
 | 
						|
file_url = 'https://git.rolfsvaag.no/frarol96/ERSCMU/raw/branch/main/ERSCMU.py'
 | 
						|
cache_dir = os.path.join(os.getenv('APPDATA'), 'ERSC Mod Updater')
 | 
						|
cache_file = os.path.join(cache_dir, 'ERSCMU.py')
 | 
						|
 | 
						|
# Ensure cache directory exists
 | 
						|
if not os.path.exists(cache_dir):
 | 
						|
    os.makedirs(cache_dir)
 | 
						|
 | 
						|
# Function to fetch the latest file
 | 
						|
def fetch_latest_file(url, cache_path):
 | 
						|
    try:
 | 
						|
        print("Fetching latest version of the script...")
 | 
						|
        response = requests.get(url)
 | 
						|
        response.raise_for_status()
 | 
						|
        with open(cache_path, 'wb') as f:
 | 
						|
            f.write(response.content)
 | 
						|
        print("Latest version fetched and cached.")
 | 
						|
    except requests.RequestException as e:
 | 
						|
        print(f"Failed to fetch the latest version. Using cached version if available.\nError: {e}")
 | 
						|
 | 
						|
# Fetch the latest version of the file or use the cached version
 | 
						|
fetch_latest_file(file_url, cache_file)
 | 
						|
 | 
						|
# Ensure the cached file exists
 | 
						|
if not os.path.exists(cache_file):
 | 
						|
    print("No cached version available. Exiting.")
 | 
						|
    sys.exit(1)
 | 
						|
 | 
						|
# Prepare the global context with necessary imports
 | 
						|
global_context = globals().copy()
 | 
						|
 | 
						|
# Import and run the cached script
 | 
						|
with open(cache_file, 'r') as file:
 | 
						|
    exec(file.read(), global_context) |