ERSCMU/dynamic_launcher.py
2024-07-15 22:03:06 +00:00

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)