mirror of
https://gitlab.com/Nanolx/qwad.git
synced 2024-11-22 02:29: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("Exception"),e)
|
||||||
self.qobject.emit(SIGNAL("Done"))
|
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):
|
class Packing(Unpacking):
|
||||||
def __init__(self, dirpath, wadpath, QMW, deletedir = False):
|
def __init__(self, dirpath, wadpath, QMW, deletedir = False):
|
||||||
Unpacking.__init__(self, wadpath, dirpath, QMW)
|
Unpacking.__init__(self, wadpath, dirpath, QMW)
|
||||||
@ -350,6 +362,25 @@ class Packing(Unpacking):
|
|||||||
self.qobject.emit(SIGNAL("Exception"),e)
|
self.qobject.emit(SIGNAL("Exception"),e)
|
||||||
self.qobject.emit(SIGNAL("Done"))
|
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):
|
class nusDownloading(Unpacking):
|
||||||
def __init__(self, titleid, version, outputdir, decrypt, QMW):
|
def __init__(self, titleid, version, outputdir, decrypt, QMW):
|
||||||
Unpacking.__init__(self, None, outputdir, QMW)
|
Unpacking.__init__(self, None, outputdir, QMW)
|
||||||
@ -376,6 +407,29 @@ class nusDownloading(Unpacking):
|
|||||||
self.qobject.emit(SIGNAL("Exception"),Errormsg)
|
self.qobject.emit(SIGNAL("Exception"),Errormsg)
|
||||||
self.qobject.emit(SIGNAL("Done"))
|
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
|
#Statusbar messages
|
||||||
#FIXME: Why don't they get translated? It's frustrating
|
#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.")
|
DOWNLOADING = QT_TR_NOOP("Downloading files from NUS... This may take a while, please, be patient.")
|
||||||
|
59
Qwad.pyw
59
Qwad.pyw
@ -1,25 +1,64 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
#coding=utf-8
|
#coding=utf-8
|
||||||
import sys
|
import sys
|
||||||
import optparse
|
from optparse import OptionParser
|
||||||
|
from optparse import Option, OptionValueError
|
||||||
from PyQt4.QtGui import QApplication
|
from PyQt4.QtGui import QApplication
|
||||||
from PyQt4.QtCore import QTranslator, QString, QLocale
|
from PyQt4.QtCore import QTranslator, QString, QLocale
|
||||||
from GUI.VenPri import MWQwad
|
from GUI.VenPri import MWQwad
|
||||||
|
from GUI.VenPri import nusDownloadingCLI
|
||||||
|
from TitleIDs import TitleDict
|
||||||
|
|
||||||
parser = optparse.OptionParser("qwad <option> [value]\
|
class MultipleOption(Option):
|
||||||
\n\nQwad (c) 2012 Christopher Roy Bratusek\
|
ACTIONS = Option.ACTIONS + ("extend",)
|
||||||
\nLicensed under the GNU GENERAL PUBLIC LICENSE v3")
|
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",
|
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)
|
||||||
|
|
||||||
|
VERSION = '0.6'
|
||||||
|
|
||||||
|
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")
|
action="store_true", default=False, help="print version and exit")
|
||||||
|
|
||||||
(options, args) = parser.parse_args()
|
#if len(sys.argv) == 1:
|
||||||
|
# parser.parse_args(['--help'])
|
||||||
|
|
||||||
if options.version:
|
options, args = parser.parse_args()
|
||||||
print "0.6"
|
|
||||||
|
if options.version:
|
||||||
|
print "%s" % VERSION
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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 = QTranslator()
|
||||||
translator.load(QString("i18n/Qwad_%1").arg(QLocale.system().name()))
|
translator.load(QString("i18n/Qwad_%1").arg(QLocale.system().name()))
|
||||||
qttranslator = QTranslator()
|
qttranslator = QTranslator()
|
||||||
@ -33,3 +72,5 @@ if __name__ == "__main__":
|
|||||||
VentanaP.show()
|
VentanaP.show()
|
||||||
sys.exit(Vapp.exec_())
|
sys.exit(Vapp.exec_())
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user