From 1a9c3bfcc581bb4051f949a6d412b28acabb2ea5 Mon Sep 17 00:00:00 2001 From: BarsTiger Date: Tue, 19 Oct 2021 12:55:10 +0300 Subject: [PATCH] Dev 1910211254: Created downloader --- MultiMate_Downloader.py | 110 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 MultiMate_Downloader.py diff --git a/MultiMate_Downloader.py b/MultiMate_Downloader.py new file mode 100644 index 0000000..d3ebbce --- /dev/null +++ b/MultiMate_Downloader.py @@ -0,0 +1,110 @@ +import sys, subprocess, os +import urllib.request +import zipfile +import time +try: + from PyQt5 import QtCore, QtGui, QtWidgets +except: + subprocess.check_call([sys.executable, "-m", "pip", "install", 'PyQt5']) + from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(170, 115) + MainWindow.setMinimumSize(QtCore.QSize(170, 115)) + MainWindow.setMaximumSize(QtCore.QSize(170, 115)) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.downloaderLabel = QtWidgets.QTextBrowser(self.centralwidget) + self.downloaderLabel.setGeometry(QtCore.QRect(0, 0, 170, 30)) + self.downloaderLabel.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) + self.downloaderLabel.setObjectName("downloaderLabel") + self.pyVerSownload = QtWidgets.QPushButton(self.centralwidget) + self.pyVerSownload.setGeometry(QtCore.QRect(0, 29, 170, 23)) + self.pyVerSownload.setObjectName("pyVerSownload") + self.pywVerSownload = QtWidgets.QPushButton(self.centralwidget) + self.pywVerSownload.setGeometry(QtCore.QRect(0, 50, 170, 23)) + self.pywVerSownload.setObjectName("pywVerSownload") + self.exeVerSownload = QtWidgets.QPushButton(self.centralwidget) + self.exeVerSownload.setGeometry(QtCore.QRect(0, 70, 170, 23)) + self.exeVerSownload.setObjectName("exeVerSownload") + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 170, 21)) + self.menubar.setObjectName("menubar") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "Downloader")) + self.downloaderLabel.setHtml(_translate("MainWindow", "\n" +"\n" +"

MultiMate Downloader

")) + self.pyVerSownload.setText(_translate("MainWindow", ".py version (console logs)")) + self.pywVerSownload.setText(_translate("MainWindow", ".pyw version")) + self.exeVerSownload.setText(_translate("MainWindow", ".exe version (no Python needed)")) + +app = QtWidgets.QApplication(sys.argv) +MainWindow = QtWidgets.QMainWindow() +ui = Ui_MainWindow() +ui.setupUi(MainWindow) +MainWindow.show() + +if not os.path.exists('resources'): + os.mkdir('resources') + +if not os.path.isfile("play.list"): + playlistwrite = open("play.list", 'w+') + playlistwrite.write("{}") + playlistwrite.close() + +def dlExe(): + urllib.request.urlretrieve("https://github.com/BarsTiger/MultiMatePlayer/raw/master/resources/resources.zip", 'resources/resources.zip') + with zipfile.ZipFile('resources/resources.zip', 'r') as archfile: + archfile.extractall("resources") + os.remove('resources/resources.zip') + + urllib.request.urlretrieve("https://github.com/BarsTiger/MultiMatePlayer/raw/master/MultiMate_Player.exe", "MultiMate_Player.exe") + subprocess.Popen('MultiMate_Player.exe') + + time.sleep(0.5) + exit() + +def dlPy(): + urllib.request.urlretrieve("https://github.com/BarsTiger/MultiMatePlayer/raw/master/resources/resources.zip", 'resources/resources.zip') + with zipfile.ZipFile('resources/resources.zip', 'r') as archfile: + archfile.extractall("resources") + os.remove('resources/resources.zip') + + urllib.request.urlretrieve("https://raw.githubusercontent.com/BarsTiger/MultiMatePlayer/master/MultiMate_Player.py", "MultiMate_Player.py") + subprocess.Popen(sys.executable + ' MultiMate_Player.py') + + time.sleep(0.5) + exit() + +def dlPyw(): + urllib.request.urlretrieve("https://github.com/BarsTiger/MultiMatePlayer/raw/master/resources/resources.zip", 'resources/resources.zip') + with zipfile.ZipFile('resources/resources.zip', 'r') as archfile: + archfile.extractall("resources") + os.remove('resources/resources.zip') + + urllib.request.urlretrieve("https://raw.githubusercontent.com/BarsTiger/MultiMatePlayer/master/MultiMate_Player.py", "MultiMate_Player.pyw") + subprocess.Popen(sys.executable + ' MultiMate_Player.pyw') + + time.sleep(0.5) + exit() + +ui.exeVerSownload.clicked.connect(dlExe) +ui.pyVerSownload.clicked.connect(dlPy) +ui.pywVerSownload.clicked.connect(dlPyw) + +sys.exit(app.exec_()) \ No newline at end of file