mirror of
https://gitlab.com/Nanolx/qwad.git
synced 2024-11-21 18:19:18 +01:00
add CLI downloader
This commit is contained in:
parent
636c441cdb
commit
7cf09f792c
@ -327,6 +327,18 @@ class Unpacking(Thread):
|
||||
self.qobject.emit(SIGNAL("Exception"),e)
|
||||
self.qobject.emit(SIGNAL("Done"))
|
||||
|
||||
class UnpackingCLI(Thread):
|
||||
def __init__(self, wadpath, dirpath):
|
||||
Thread.__init__(self)
|
||||
self.wadpath = wadpath
|
||||
self.dirpath = dirpath
|
||||
def run(self):
|
||||
try:
|
||||
WAD.loadFile(self.wadpath).dumpDir(self.dirpath)
|
||||
except Exception, e:
|
||||
print e
|
||||
print "Done"
|
||||
|
||||
class Packing(Unpacking):
|
||||
def __init__(self, dirpath, wadpath, QMW, deletedir = False):
|
||||
Unpacking.__init__(self, wadpath, dirpath, QMW)
|
||||
@ -350,6 +362,25 @@ class Packing(Unpacking):
|
||||
self.qobject.emit(SIGNAL("Exception"),e)
|
||||
self.qobject.emit(SIGNAL("Done"))
|
||||
|
||||
class PackingCLI(UnpackingCLI):
|
||||
def __init__(self, dirpath, wadpath, deletedir = False):
|
||||
UnpackingCLI.__init__(self, wadpath, dirpath)
|
||||
self.deletedir = deletedir
|
||||
def run(self):
|
||||
try:
|
||||
print self.dirpath
|
||||
print self.wadpath
|
||||
WAD.loadDir(self.dirpath).dumpFile(self.wadpath)
|
||||
if self.deletedir:
|
||||
print "Cleaning temporary files"
|
||||
rmtree(self.dirpath)
|
||||
except Exception, e:
|
||||
if self.deletedir:
|
||||
print "Cleaning temporary files"
|
||||
rmtree(self.dirpath)
|
||||
print e
|
||||
print "Done"
|
||||
|
||||
class nusDownloading(Unpacking):
|
||||
def __init__(self, titleid, version, outputdir, decrypt, QMW):
|
||||
Unpacking.__init__(self, None, outputdir, QMW)
|
||||
@ -376,6 +407,29 @@ class nusDownloading(Unpacking):
|
||||
self.qobject.emit(SIGNAL("Exception"),Errormsg)
|
||||
self.qobject.emit(SIGNAL("Done"))
|
||||
|
||||
class nusDownloadingCLI(UnpackingCLI):
|
||||
def __init__(self, titleid, version, outputdir, decrypt, pack):
|
||||
UnpackingCLI.__init__(self, None, outputdir)
|
||||
if version != None:
|
||||
self.version = int(version)
|
||||
else:
|
||||
self.version = None
|
||||
self.decrypt = decrypt
|
||||
self.titleid = titleid
|
||||
self.pack = pack
|
||||
self.outputdir = outputdir
|
||||
def run(self):
|
||||
try:
|
||||
if self.pack:
|
||||
self.dirpath = tempfile.gettempdir() + "/NUS_"+ str(time.time()).replace(".","")
|
||||
NUS(self.titleid, self.version).download(self.dirpath, decrypt = False)
|
||||
self.packing = PackingCLI(self.dirpath, str(self.outputdir), True)
|
||||
self.packing.start()
|
||||
else:
|
||||
NUS(self.titleid,self.version).download(self.dirpath, decrypt = self.decrypt)
|
||||
except Exception, e:
|
||||
print e
|
||||
|
||||
#Statusbar messages
|
||||
#FIXME: Why don't they get translated? It's frustrating
|
||||
DOWNLOADING = QT_TR_NOOP("Downloading files from NUS... This may take a while, please, be patient.")
|
||||
|
63
Qwad.pyw
63
Qwad.pyw
@ -1,25 +1,64 @@
|
||||
#!/usr/bin/env python
|
||||
#coding=utf-8
|
||||
import sys
|
||||
import optparse
|
||||
from optparse import OptionParser
|
||||
from optparse import Option, OptionValueError
|
||||
from PyQt4.QtGui import QApplication
|
||||
from PyQt4.QtCore import QTranslator, QString, QLocale
|
||||
from GUI.VenPri import MWQwad
|
||||
from GUI.VenPri import nusDownloadingCLI
|
||||
from TitleIDs import TitleDict
|
||||
|
||||
parser = optparse.OptionParser("qwad <option> [value]\
|
||||
\n\nQwad (c) 2012 Christopher Roy Bratusek\
|
||||
\nLicensed under the GNU GENERAL PUBLIC LICENSE v3")
|
||||
class MultipleOption(Option):
|
||||
ACTIONS = Option.ACTIONS + ("extend",)
|
||||
STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",)
|
||||
TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",)
|
||||
ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + ("extend",)
|
||||
|
||||
parser.add_option("-v", "--version", dest="version",
|
||||
action="store_true", default=False, help="print version and exit")
|
||||
def take_action(self, action, dest, opt, value, values, parser):
|
||||
if action == "extend":
|
||||
values.ensure_value(dest, []).append(value)
|
||||
else:
|
||||
Option.take_action(self, action, dest, opt, value, values, parser)
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
VERSION = '0.6'
|
||||
|
||||
if options.version:
|
||||
print "0.6"
|
||||
sys.exit(0)
|
||||
def main():
|
||||
description = """NUS-Downloader, WadManager for Linux"""
|
||||
parser = OptionParser(option_class=MultipleOption,
|
||||
usage='usage: qwad [OPTIONS] ARGUMENT',
|
||||
description=description)
|
||||
parser.add_option('-d', '--downloads',
|
||||
action="extend", type="string",
|
||||
dest='download',
|
||||
metavar='Arguments',
|
||||
help='IOS Version OutPut DeCrypt')
|
||||
parser.add_option("-v", "--version", dest="version",
|
||||
action="store_true", default=False, help="print version and exit")
|
||||
|
||||
if __name__ == "__main__":
|
||||
#if len(sys.argv) == 1:
|
||||
# parser.parse_args(['--help'])
|
||||
|
||||
options, args = parser.parse_args()
|
||||
|
||||
if options.version:
|
||||
print "%s" % VERSION
|
||||
sys.exit(0)
|
||||
|
||||
if options.download:
|
||||
if "IOS" in str(args[0]):
|
||||
xarg = TitleDict[str(args[0])]
|
||||
print "%s" % xarg
|
||||
print "%d" % int(str(xarg).lower(),16)
|
||||
nusdow = nusDownloadingCLI(int(str(xarg).lower(),16), args[1], args[2], args[3], args[4])
|
||||
else:
|
||||
print "%s" % args[0]
|
||||
print "%d" % int(str(args[0]).lower(),16)
|
||||
nusdow = nusDownloadingCLI(int(str(args[0]).lower(),16), args[1], args[2], args[3], args[4])
|
||||
nusdow.start()
|
||||
sys.exit(0)
|
||||
|
||||
os.chdir(os.getenv("HOME"))
|
||||
translator = QTranslator()
|
||||
translator.load(QString("i18n/Qwad_%1").arg(QLocale.system().name()))
|
||||
qttranslator = QTranslator()
|
||||
@ -33,3 +72,5 @@ if __name__ == "__main__":
|
||||
VentanaP.show()
|
||||
sys.exit(Vapp.exec_())
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user