diff --git a/Example.py b/Example.py new file mode 100644 index 0000000..78e59a5 --- /dev/null +++ b/Example.py @@ -0,0 +1,3 @@ +from GMCLCore import * +launcher=GMCLCore() +launcher.PrintAllLog() \ No newline at end of file diff --git a/core.py b/GMCLCore.py similarity index 88% rename from core.py rename to GMCLCore.py index 81da762..e33735b 100644 --- a/core.py +++ b/GMCLCore.py @@ -1,7 +1,6 @@ #------------------# import os,requests,json,time,sys,psutil,string,platform,glob,getpass,shutil,hashlib,random,subprocess,math,zipfile,threading #------------------# - class GMCLCore(object): '''The Main Class of the Launcher Core''' #-----------------------------------------------------------------------# @@ -17,7 +16,7 @@ class GMCLCore(object): self.__AuthWay="" self.__AutoLogOutput=False self.__AutoLogPrint=False - self.__MultiThreadDownload=False + self.__AriaDownload=False self.Log("info","Successful.","__init__") #-----------------------------------------------------------------------# #Log Functions @@ -84,48 +83,49 @@ class GMCLCore(object): self.Log("info","Successful.","DisableAutoLogPrint") #-----------------------------------------------------------------------# #Download Functions - def Download(self,DownloadFrom,DownloadTo,ThreadNum=20): + def Download(self,DownloadFrom,DownloadTo): '''The multi-thread download function''' ''':DownloadFrom The online url for the file''' ''':DownloadTo The local path for the file''' - ''':ThreadNum The number of the thread,the default value is 20''' if(DownloadFrom=="" or DownloadTo==""): self.Log("warn","Wrong online address or local address for download.","Download") else: StartTime=time.time() FileSize=int(requests.head(DownloadFrom,headers=self.__UserAgent).headers['Content-Length']) - if(self.__MultiThreadDownload==True): + if(self.__AriaDownload==True): if(platform.system()=="Windows"): - if(os.path.isfile("aria2c.exe")): - os.system("aria2c.exe -o "+DownloadTo+" "+DownloadFrom+" -U \""+self.__UserAgent['User-Agent']+"\"") + if(os.path.isfile(self.__LauncherName+"\\rely\\"+"aria2c.exe")): + os.system(self.__LauncherName+"\\rely\\"+"aria2c.exe -o "+DownloadTo+" "+DownloadFrom+" -U \""+self.__UserAgent['User-Agent']+"\"") else: - self.Log("warn","Missed Aria2C.","Download") - self.DownloadAria2CWin() - os.system("aria2c.exe -o "+DownloadTo+" "+DownloadFrom+" -U \""+self.__UserAgent['User-Agent']+"\"") + self.Log("warn","Missed Aria.","Download") + self.DownloadAriaWin() + os.system(self.__LauncherName+"\\rely\\"+"aria2c.exe -o "+DownloadTo+" "+DownloadFrom+" -U \""+self.__UserAgent['User-Agent']+"\"") else: - os.system("aria2c.exe -o "+DownloadTo+" "+DownloadFrom+" -U \""+self.__UserAgent['User-Agent']+"\"") + os.system(self.__LauncherName+"\\rely\\"+"aria2c.exe -o "+DownloadTo+" "+DownloadFrom+" -U \""+self.__UserAgent['User-Agent']+"\"") else: with open(DownloadTo,"wb") as FileObject: FileObject.write(requests.get(DownloadFrom).content) self.Log("info","Success.","Download") return (str(time.time()-StartTime),FileSize // (time.time()-StartTime)) - def DownloadAria2CWin(self): - '''The function which was used to download Aria2C environment for windows''' + def DownloadAriaWin(self): + '''The function which was used to download Aria environment for windows''' + if(os.path.isdir(self.__LauncherName+"\\rely")==False): + self.MakeDir(self.__LauncherName+"\\rely") if(os.path.isdir("C:\\Program Files (x86)")): - with open("aria2c.exe","wb") as FileObject: + with open(self.__LauncherName+"\\rely\\"+"aria2c.exe","wb") as FileObject: FileObject.write(requests.get("https://resource.ghink.net/aria2c/win64/aria2c.exe",headers=self.__UserAgent).content) else: - with open("aria2c.exe","wb") as FileObject: + with open(self.__LauncherName+"\\rely\\"+"aria2c.exe","wb") as FileObject: FileObject.write(requests.get("https://resource.ghink.net/aria2c/win32/aria2c.exe",headers=self.__UserAgent).content) - self.Log("info","Success.","DownloadAria2CWin") - def EnableMultiThreadDownload(self): - '''The function which was used to enable the function of multi-thread download''' - self.__MultiThreadDownload=True - self.Log("info","Successful.","EnableMultiThreadDownload") - def DisableMultiThreadDownload(self): - '''The function which was used to disable the function of multi-thread download''' - self.__MultiThreadDownload=False - self.Log("info","Successful.","DisbleMultiThreadDownload") + self.Log("info","Success.","DownloadAriaWin") + def EnableAriaDownload(self): + '''The function which was used to enable the function of Aria download''' + self.__AriaDownload=True + self.Log("info","Successful.","EnableAriaDownload") + def DisableAriaDownload(self): + '''The function which was used to disable the function of Aria download''' + self.__AriaDownload=False + self.Log("info","Successful.","DisbleAriaDownload") #-----------------------------------------------------------------------# #File and Dir Functions def MakeDir(self,Path): diff --git a/Test.py b/Test.py new file mode 100644 index 0000000..b9b7b33 --- /dev/null +++ b/Test.py @@ -0,0 +1,8 @@ +from GMCLCore import * +launcher=GMCLCore() + +launcher.EnableAriaDownload() +launcher.EnableAutoLogPrint() +launcher.Download("http://mirrors.163.com/kali-images/kali-weekly/kali-linux-2020-W47-installer-netinst-i386.iso","test.iso") + +launcher.PrintAllLog() \ No newline at end of file