From d470dfac311a699009ca5861607f93a691f9d442 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 11 Jan 2024 09:41:51 +0100 Subject: [PATCH] download & install folder --- .gitignore | 3 ++- dwnld.sh | 34 --------------------------------- src/download_main.py | 45 ++++++++++++++++++++++++++------------------ src/gui_main.py | 8 +++++--- src/main.py | 8 ++++---- 5 files changed, 38 insertions(+), 60 deletions(-) delete mode 100755 dwnld.sh diff --git a/.gitignore b/.gitignore index 0ef28a8..7257194 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ data/config.json downloaded_files/ my_app_github/ my_app_gitlab/ -data-backup/ \ No newline at end of file +data-backup/ +.config.json diff --git a/dwnld.sh b/dwnld.sh deleted file mode 100755 index 979428e..0000000 --- a/dwnld.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -set -e - -display_usage() { - echo "Downloads all of a SourceForge project's files." - echo -e "\nUsage: ./sourceforge-file-download.sh [project name]\n" -} - -if [ $# -eq 0 ] -then - display_usage - exit 1 -fi - -project=$1 -echo "Downloading $project's files" - -# download all the pages on which direct download links are -# be nice, sleep a second -wget -w 1 -np -m -A download https://sourceforge.net/projects/$project/files/ - -# find the files (ignore "latest" link, that should be included as another URL already) -find sourceforge.net/ | sed "s#.*${project}/files/##" | grep download$ | grep -v "latest/download" | sed -e "s#^#https://master.dl.sourceforge.net/project/${project}/#" -e "s#/download#?viasf=1#" > urllist - -# download each of the extracted URLs, put into $projectname/ -while read url; do wget --content-disposition -x -nH --cut-dirs=1 "${url}"; done < urllist - -# remove ?viasf=1 suffix -find . -name '*?viasf=1' -print0 | xargs -0 rename --verbose "?viasf=1" "" - -# remove temporary files, unless you want to keep them for some reason -rm -ri sourceforge.net/ -rm -i urllist - diff --git a/src/download_main.py b/src/download_main.py index a476223..49d0ac1 100644 --- a/src/download_main.py +++ b/src/download_main.py @@ -6,20 +6,26 @@ import json_main import download_gitlab import download_github -data_location = "./data/" +download_foler = "." +install_folder = "." -# Ensure that the directory structure exists, once again -if not os.path.exists(data_location): - os.makedirs(data_location) +def sanity_check(): + # Ensure that the directory structure exists + if not os.path.exists(download_foler): + os.makedirs(download_foler) -# Check if config.json exists and create it with default values if not -if not os.path.isfile(data_location+"config.json"): - default_data = { - "first_run": "false", - "packages": [] - } - with open(data_location+"config.json", "w") as json_file: - json.dump(default_data, json_file, indent=4) + # Ensure that the directory structure exists, once again + if not os.path.exists(install_folder): + os.makedirs(install_folder) + + # Check if config.json exists and create it with default values if not + if not os.path.isfile(download_foler+"config.json"): + default_data = { + "first_run": "false", + "packages": [] + } + with open(download_foler+"config.json", "w") as json_file: + json.dump(default_data, json_file, indent=4) # Placeholder functions for SourceForge and Gitea def download_from_sourceforge(url, destination, progress_bar, version): @@ -31,13 +37,16 @@ def download_from_gitea(api_url, project_id, token, destination, progress_bar, v print("Gita not supported, yet") # Function to install all packages -def install_all_packages(progress_bar, progress_label): +def install_all_packages(progress_bar, progress_label,download_location,install_location): + download_foler=download_location + install_folder=install_location + sanity_check() try: - with open(data_location+"config.json", 'r') as file: + with open(download_foler+"config.json", 'r') as file: data = json.load(file) packages = data.get("packages", []) total_packages = len(packages) - + for index, package in enumerate(packages, start=1): app_name, app_data = package.popitem() source_info = app_data.get("source", {}) @@ -66,6 +75,6 @@ def install_all_packages(progress_bar, progress_label): print("Config file not found.") -# Check if the script is executed directly -if __name__ == "__main__": - install_all_packages() \ No newline at end of file +# # Check if the script is executed directly +# if __name__ == "__main__": +# install_all_packages() \ No newline at end of file diff --git a/src/gui_main.py b/src/gui_main.py index fd10b3b..04d42a0 100644 --- a/src/gui_main.py +++ b/src/gui_main.py @@ -6,6 +6,7 @@ import threading import download_main number_of_tabs = 4 +download_foler = "." class InstallerGUI: def __init__(self): @@ -46,7 +47,7 @@ class UpdaterGUI(Gtk.Box): def run_installation(self): # Pass the progress bar and label to the install_all_packages function - download_main.install_all_packages(self.progress_bar, self.progress_label) + download_main.install_all_packages(self.progress_bar, self.progress_label, download_foler,"./data/") # Glib.idle_add() ? @@ -201,8 +202,9 @@ class MainWindow(Gtk.ApplicationWindow): self.logo_and_title_box.get_children()[0].set_from_pixbuf(logo_pixbuf) # Make the MainWindow class callable as a function -def run_installer(): - app = Gtk.Application(application_id="org.example.customizableapp", +def run_installer(download_foler_tmp): + download_foler = download_foler_tmp + app = Gtk.Application(application_id="com.spitfire.launcher", flags=Gio.ApplicationFlags.FLAGS_NONE) app.connect("activate", lambda app: MainWindow(application=app)) app.run() diff --git a/src/main.py b/src/main.py index 0e8782a..71f13a0 100644 --- a/src/main.py +++ b/src/main.py @@ -16,7 +16,7 @@ def get_temp_folder(): temp_dir = tempfile.gettempdir() # Create a subdirectory inside the temporary directory - user_temp_folder = os.path.join(temp_dir, 'my_temp_folder') + user_temp_folder = os.path.join(temp_dir, 'SpitfireBrowserTmp') # Create the directory if it doesn't exist if not os.path.exists(user_temp_folder): @@ -83,7 +83,7 @@ def main(): # Skips entier program if is a different system than windows if sys.platform != 'win32': from gui_main import run_installer - run_installer() + run_installer(".") return # Replace this with the desired download path @@ -127,7 +127,7 @@ def main(): # Run your main application function from gui_main import run_installer - run_installer() + run_installer(download_path) # Schedule the start_download function to run after 100 milliseconds root.after(100, start_download) @@ -137,7 +137,7 @@ def main(): else: # Run installer directly if all files are present from gui_main import run_installer - run_installer() + run_installer(download_path) if __name__ == "__main__": main()