tools v5.1
alfcrypto added to DeDRM plugin
This commit is contained in:
@@ -36,6 +36,7 @@ __license__ = 'GPL v3'
|
||||
|
||||
import sys
|
||||
import os
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
import re
|
||||
import shutil
|
||||
import Tkinter
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
import sys
|
||||
sys.path.append('lib')
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
import subprocess
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
import subasyncio
|
||||
@@ -73,7 +74,6 @@ class MainDialog(Tkinter.Frame):
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -83,14 +83,19 @@ class MainDialog(Tkinter.Frame):
|
||||
# run as a subprocess via pipes and collect stdout
|
||||
def pidrdr(self, serial):
|
||||
# os.putenv('PYTHONUNBUFFERED', '1')
|
||||
cmdline = 'python ./lib/kindlepid.py "' + serial + '"'
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path.normpath(pengine)
|
||||
cmdline = pengine + ' ./lib/kindlepid.py "' + serial + '"'
|
||||
if sys.platform[0:3] == 'win':
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\kindlepid.py "' + serial + '"'
|
||||
else :
|
||||
cmdline = 'lib\kindlepid.py "' + serial + '"'
|
||||
# search_path = os.environ['PATH']
|
||||
# search_path = search_path.lower()
|
||||
# if search_path.find('python') >= 0:
|
||||
# cmdline = 'python lib\kindlepid.py "' + serial + '"'
|
||||
# else :
|
||||
# cmdline = 'lib\kindlepid.py "' + serial + '"'
|
||||
cmdline = pengine + ' lib\\kindlepid.py "' + serial + '"'
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
return p2
|
||||
@@ -116,7 +121,6 @@ class MainDialog(Tkinter.Frame):
|
||||
log += 'Serial = "' + serial + '"\n'
|
||||
log += '\n\n'
|
||||
log += 'Please Wait ...\n\n'
|
||||
log = log.encode('utf-8')
|
||||
self.stext.insert(Tkconstants.END,log)
|
||||
self.p2 = self.pidrdr(serial)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
import sys
|
||||
sys.path.append('lib')
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
import subprocess
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
import subasyncio
|
||||
@@ -89,7 +90,6 @@ class MainDialog(Tkinter.Frame):
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -98,15 +98,20 @@ class MainDialog(Tkinter.Frame):
|
||||
|
||||
# run as a subprocess via pipes and collect stdout
|
||||
def mobirdr(self, infile, outfile, pidnum):
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path.normpath(pengine)
|
||||
# os.putenv('PYTHONUNBUFFERED', '1')
|
||||
cmdline = 'python ./lib/mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
cmdline = pengine + ' ./lib/mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
if sys.platform[0:3] == 'win':
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
else :
|
||||
cmdline = 'lib\mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
# search_path = os.environ['PATH']
|
||||
# search_path = search_path.lower()
|
||||
# if search_path.find('python') >= 0:
|
||||
# cmdline = 'python lib\mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
# else :
|
||||
# cmdline = 'lib\mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
cmdline = pengine + ' lib\\mobidedrm.py "' + infile + '" "' + outfile + '" "' + pidnum + '"'
|
||||
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
@@ -173,7 +178,6 @@ class MainDialog(Tkinter.Frame):
|
||||
log += 'PID = "' + pidnum + '"\n'
|
||||
log += '\n\n'
|
||||
log += 'Please Wait ...\n\n'
|
||||
log = log.encode('utf-8')
|
||||
self.stext.insert(Tkconstants.END,log)
|
||||
self.p2 = self.mobirdr(mobipath, outpath, pidnum)
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
import sys
|
||||
sys.path.append('lib')
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
|
||||
import Tkinter
|
||||
import Tkconstants
|
||||
import tkFileDialog
|
||||
@@ -45,7 +47,7 @@ class MainDialog(Tkinter.Frame):
|
||||
self.outpath.insert(0, outname)
|
||||
button = Tkinter.Button(body, text="...", command=self.get_outpath)
|
||||
button.grid(row=1, column=2)
|
||||
|
||||
|
||||
Tkinter.Label(body, text='Optional Alternative Kindle.info file').grid(row=2, sticky=Tkconstants.E)
|
||||
self.altinfopath = Tkinter.Entry(body, width=50)
|
||||
self.altinfopath.grid(row=2, column=1, sticky=sticky)
|
||||
@@ -87,7 +89,7 @@ class MainDialog(Tkinter.Frame):
|
||||
# option being used, so need to reset it for the next time
|
||||
def processPipe(self):
|
||||
poll = self.p2.wait('nowait')
|
||||
if poll != None:
|
||||
if poll != None:
|
||||
text = self.p2.readerr()
|
||||
text += self.p2.read()
|
||||
msg = text + '\n\n' + 'Encryption successfully removed\n'
|
||||
@@ -102,14 +104,13 @@ class MainDialog(Tkinter.Frame):
|
||||
text = self.p2.readerr()
|
||||
text += self.p2.read()
|
||||
self.showCmdOutput(text)
|
||||
# make sure we get invoked again by event loop after interval
|
||||
# make sure we get invoked again by event loop after interval
|
||||
self.stext.after(self.interval,self.processPipe)
|
||||
return
|
||||
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
# msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -129,16 +130,14 @@ class MainDialog(Tkinter.Frame):
|
||||
infooption = ''
|
||||
if altinfopath and altinfopath != '':
|
||||
infooption = ' -k "' + altinfopath + '" '
|
||||
cmdline = 'python ./lib/' + tool + ' ' + pidoption + seroption + infooption + '"' + infile + '" "' + outfile + '"'
|
||||
print cmdline
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path.normpath(pengine)
|
||||
cmdline = pengine + ' ./lib/' + tool + ' ' + pidoption + seroption + infooption + '"' + infile + '" "' + outfile + '"'
|
||||
if sys.platform.startswith('win'):
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\\' + tool + ' ' + pidoption + seroption + infooption + '"' + infile + '" "' + outfile + '"'
|
||||
else :
|
||||
cmdline = 'lib\\' + tool + ' ' + pidoption + seroption + infooption + '"' + infile + '" "' + outfile + '"'
|
||||
|
||||
cmdline = pengine + ' lib\\' + tool + ' ' + pidoption + seroption + infooption + '"' + infile + '" "' + outfile + '"'
|
||||
print cmdline
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
return p2
|
||||
@@ -241,7 +240,7 @@ class MainDialog(Tkinter.Frame):
|
||||
self.p2 = self.mobirdr(mobipath, outpath, altinfopath, pidnums, sernums)
|
||||
|
||||
# python does not seem to allow you to create
|
||||
# your own eventloop which every other gui does - strange
|
||||
# your own eventloop which every other gui does - strange
|
||||
# so need to use the widget "after" command to force
|
||||
# event loop to run non-gui events every interval
|
||||
self.stext.after(self.interval,self.processPipe)
|
||||
@@ -256,7 +255,7 @@ def main(argv=None):
|
||||
MainDialog(root).pack(fill=Tkconstants.X, expand=1)
|
||||
root.mainloop()
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
||||
@@ -246,6 +246,7 @@ class PageParser(object):
|
||||
'region.y' : (1, 'scalar_number', 0, 0),
|
||||
'region.h' : (1, 'scalar_number', 0, 0),
|
||||
'region.w' : (1, 'scalar_number', 0, 0),
|
||||
'region.orientation' : (1, 'scalar_number', 0, 0),
|
||||
|
||||
'empty_text_region' : (1, 'snippets', 1, 0),
|
||||
|
||||
|
||||
@@ -361,16 +361,28 @@ def generateBook(bookDir, raw, fixedimage):
|
||||
file(xname, 'wb').write(metastr)
|
||||
|
||||
print 'Processing StyleSheet'
|
||||
|
||||
# get some scaling info from metadata to use while processing styles
|
||||
# and first page info
|
||||
|
||||
fontsize = '135'
|
||||
if 'fontSize' in meta_array:
|
||||
fontsize = meta_array['fontSize']
|
||||
|
||||
# also get the size of a normal text page
|
||||
# get the total number of pages unpacked as a safety check
|
||||
filenames = os.listdir(pageDir)
|
||||
numfiles = len(filenames)
|
||||
|
||||
spage = '1'
|
||||
if 'firstTextPage' in meta_array:
|
||||
spage = meta_array['firstTextPage']
|
||||
pnum = int(spage)
|
||||
if pnum >= numfiles or pnum < 0:
|
||||
# metadata is wrong so just select a page near the front
|
||||
# 10% of the book to get a normal text page
|
||||
pnum = int(0.10 * numfiles)
|
||||
# print "first normal text page is", spage
|
||||
|
||||
# get page height and width from first text page for use in stylesheet scaling
|
||||
pname = 'page%04d.dat' % (pnum + 1)
|
||||
|
||||
@@ -17,7 +17,7 @@ from __future__ import with_statement
|
||||
# and many many others
|
||||
|
||||
|
||||
__version__ = '4.0'
|
||||
__version__ = '4.2'
|
||||
|
||||
class Unbuffered:
|
||||
def __init__(self, stream):
|
||||
@@ -129,6 +129,8 @@ def decryptBook(infile, outdir, k4, kInfoFiles, serials, pids):
|
||||
if mobi:
|
||||
if mb.getPrintReplica():
|
||||
outfile = os.path.join(outdir, outfilename + '_nodrm' + '.azw4')
|
||||
elif mb.getMobiVersion() >= 8:
|
||||
outfile = os.path.join(outdir, outfilename + '_nodrm' + '.azw3')
|
||||
else:
|
||||
outfile = os.path.join(outdir, outfilename + '_nodrm' + '.mobi')
|
||||
mb.getMobiFile(outfile)
|
||||
|
||||
@@ -205,6 +205,13 @@ def getKindleInfoFiles(kInfoFiles):
|
||||
regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\")
|
||||
path = winreg.QueryValueEx(regkey, 'Local AppData')[0]
|
||||
|
||||
# some 64 bit machines do not have the proper registry key for some reason
|
||||
# or the pythonn interface to the 32 vs 64 bit registry is broken
|
||||
if 'LOCALAPPDATA' in os.environ.keys():
|
||||
path = os.environ['LOCALAPPDATA']
|
||||
|
||||
print "searching for kinfoFiles in ", path
|
||||
|
||||
# first look for older kindle-info files
|
||||
kinfopath = path +'\\Amazon\\Kindle For PC\\{AMAwzsaPaaZAzmZzZQzgZCAkZ3AjA_AY}\\kindle.info'
|
||||
if not os.path.isfile(kinfopath):
|
||||
|
||||
BIN
Other_Tools/KindleBooks/lib/libalfcrypto32.so
Normal file
BIN
Other_Tools/KindleBooks/lib/libalfcrypto32.so
Normal file
Binary file not shown.
BIN
Other_Tools/KindleBooks/lib/libalfcrypto64.so
Normal file
BIN
Other_Tools/KindleBooks/lib/libalfcrypto64.so
Normal file
Binary file not shown.
@@ -56,8 +56,9 @@
|
||||
# 0.32 - Added support for "Print Replica" Kindle ebooks
|
||||
# 0.33 - Performance improvements for large files (concatenation)
|
||||
# 0.34 - Performance improvements in decryption (libalfcrypto)
|
||||
# 0.35 - add interface to get mobi_version
|
||||
|
||||
__version__ = '0.34'
|
||||
__version__ = '0.35'
|
||||
|
||||
import sys
|
||||
|
||||
@@ -324,6 +325,9 @@ class MobiBook:
|
||||
def getMobiFile(self, outpath):
|
||||
file(outpath,'wb').write(self.mobi_data)
|
||||
|
||||
def getMobiVersion(self):
|
||||
return self.mobi_version
|
||||
|
||||
def getPrintReplica(self):
|
||||
return self.print_replica
|
||||
|
||||
@@ -371,7 +375,7 @@ class MobiBook:
|
||||
raise DrmException("Not yet initialised with PID. Must be opened with Mobipocket Reader first.")
|
||||
found_key, pid = self.parseDRM(self.sect[drm_ptr:drm_ptr+drm_size], drm_count, goodpids)
|
||||
if not found_key:
|
||||
raise DrmException("No key found. Most likely the correct PID has not been given.")
|
||||
raise DrmException("No key found. Please report this failure for help.")
|
||||
# kill the drm keys
|
||||
self.patchSection(0, "\0" * drm_size, drm_ptr)
|
||||
# kill the drm pointers
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
import sys
|
||||
sys.path.append('lib')
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
|
||||
import subprocess
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
import subasyncio
|
||||
@@ -87,7 +89,6 @@ class MainDialog(Tkinter.Frame):
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -97,14 +98,19 @@ class MainDialog(Tkinter.Frame):
|
||||
# run as a subprocess via pipes and collect stdout
|
||||
def zipfixrdr(self, infile, outfile):
|
||||
# os.putenv('PYTHONUNBUFFERED', '1')
|
||||
cmdline = 'python ./lib/zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path.normpath(pengine)
|
||||
cmdline = pengine + ' ./lib/zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
if sys.platform[0:3] == 'win':
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
else :
|
||||
cmdline = 'lib\zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
# search_path = os.environ['PATH']
|
||||
# search_path = search_path.lower()
|
||||
# if search_path.find('python') >= 0:
|
||||
# cmdline = 'python lib\zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
# else :
|
||||
# cmdline = 'lib\zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
cmdline = pengine + ' lib\\zipfix.py "' + infile + '" "' + outfile + '"'
|
||||
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
@@ -165,7 +171,6 @@ class MainDialog(Tkinter.Frame):
|
||||
log += 'Output File = "' + outpath + '"\n'
|
||||
log += '\n\n'
|
||||
log += 'Please Wait ...\n\n'
|
||||
log = log.encode('utf-8')
|
||||
self.stext.insert(Tkconstants.END,log)
|
||||
self.p2 = self.zipfixrdr(epubpath, outpath)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
import sys
|
||||
sys.path.append('lib')
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
import subprocess
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
import subasyncio
|
||||
@@ -84,7 +85,6 @@ class MainDialog(Tkinter.Frame):
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -94,14 +94,19 @@ class MainDialog(Tkinter.Frame):
|
||||
# run xpml2hxtml.py as a subprocess via pipes and collect stdout
|
||||
def pmlhtml(self, infile, outfile):
|
||||
# os.putenv('PYTHONUNBUFFERED', '1')
|
||||
cmdline = 'python ./lib/xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path.normpath(pengine)
|
||||
cmdline = pengine + ' ./lib/xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
if sys.platform[0:3] == 'win':
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\\xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
else :
|
||||
cmdline = 'lib\\xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
# search_path = os.environ['PATH']
|
||||
# search_path = search_path.lower()
|
||||
# if search_path.find('python') >= 0:
|
||||
# cmdline = 'python lib\\xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
# else :
|
||||
# cmdline = 'lib\\xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
cmdline = pengine + ' lib\\xpml2xhtml.py "' + infile + '" "' + outfile + '"'
|
||||
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
@@ -162,7 +167,6 @@ class MainDialog(Tkinter.Frame):
|
||||
log += 'HTML Output File = "' + outpath + '"\n'
|
||||
log += '\n\n'
|
||||
log += 'Please Wait ...\n\n'
|
||||
log = log.encode('utf-8')
|
||||
self.stext.insert(Tkconstants.END,log)
|
||||
self.p2 = self.pmlhtml(pmlpath, outpath)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import sys
|
||||
sys.path.append('lib')
|
||||
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
import subprocess
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
import Tkinter
|
||||
@@ -97,7 +98,6 @@ class MainDialog(Tkinter.Frame):
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -107,14 +107,19 @@ class MainDialog(Tkinter.Frame):
|
||||
# run erdr2pml.py as a subprocess via pipes and collect stdout
|
||||
def erdr(self, infile, outdir, name, ccnum):
|
||||
# os.putenv('PYTHONUNBUFFERED', '1')
|
||||
cmdline = 'python ./lib/erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path/normpath(pengine)
|
||||
cmdline = pengine + ' ./lib/erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
if sys.platform[0:3] == 'win':
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
else :
|
||||
cmdline = 'lib\erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
# search_path = os.environ['PATH']
|
||||
# search_path = search_path.lower()
|
||||
# if search_path.find('python') >= 0:
|
||||
# cmdline = 'python lib\erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
# else :
|
||||
# cmdline = 'lib\erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
cmdline = pengine + ' lib\\erdr2pml.py "' + infile + '" "' + outdir + '" "' + name + '" ' + ccnum
|
||||
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
@@ -185,7 +190,6 @@ class MainDialog(Tkinter.Frame):
|
||||
log += 'Last 8 of CC = "' + ccnum + '"\n'
|
||||
log += '\n\n'
|
||||
log += 'Please Wait ...\n'
|
||||
log = log.encode('utf-8')
|
||||
self.stext.insert(Tkconstants.END,log)
|
||||
self.p2 = self.erdr(pdbpath, outpath, name, ccnum)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import sys
|
||||
sys.path.append('lib')
|
||||
|
||||
import os, os.path, urllib
|
||||
os.environ['PYTHONIOENCODING'] = "utf-8"
|
||||
import subprocess
|
||||
from subprocess import Popen, PIPE, STDOUT
|
||||
import Tkinter
|
||||
@@ -88,7 +89,6 @@ class MainDialog(Tkinter.Frame):
|
||||
# post output from subprocess in scrolled text widget
|
||||
def showCmdOutput(self, msg):
|
||||
if msg and msg !='':
|
||||
msg = msg.encode('utf-8')
|
||||
if sys.platform.startswith('win'):
|
||||
msg = msg.replace('\r\n','\n')
|
||||
self.stext.insert(Tkconstants.END,msg)
|
||||
@@ -98,15 +98,19 @@ class MainDialog(Tkinter.Frame):
|
||||
# run erdr2pml.py as a subprocess via pipes and collect stdout
|
||||
def erdr(self, infile, name, ccnum):
|
||||
# os.putenv('PYTHONUNBUFFERED', '1')
|
||||
cmdline = 'python ./lib/erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
pengine = sys.executable
|
||||
if pengine is None or pengine == '':
|
||||
pengine = "python"
|
||||
pengine = os.path.normpath(pengine)
|
||||
cmdline = pengine + ' ./lib/erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
if sys.platform[0:3] == 'win':
|
||||
search_path = os.environ['PATH']
|
||||
search_path = search_path.lower()
|
||||
if search_path.find('python') >= 0:
|
||||
cmdline = 'python lib\erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
else :
|
||||
cmdline = 'lib\erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
|
||||
# search_path = os.environ['PATH']
|
||||
# search_path = search_path.lower()
|
||||
# if search_path.find('python') >= 0:
|
||||
# cmdline = 'python lib\erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
# else :
|
||||
# cmdline = 'lib\erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
cmdline = pengine + ' lib\\erdr2pml.py --make-pmlz "' + infile + '" "' + name + '" ' + ccnum
|
||||
cmdline = cmdline.encode(sys.getfilesystemencoding())
|
||||
p2 = Process(cmdline, shell=True, bufsize=1, stdin=None, stdout=PIPE, stderr=PIPE, close_fds=False)
|
||||
return p2
|
||||
@@ -156,7 +160,6 @@ class MainDialog(Tkinter.Frame):
|
||||
log += 'Last 8 of CC = "' + ccnum + '"\n'
|
||||
log += '\n\n'
|
||||
log += 'Please Wait ...\n'
|
||||
log = log.encode('utf-8')
|
||||
self.stext.insert(Tkconstants.END,log)
|
||||
self.p2 = self.erdr(pdbpath, name, ccnum)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user