1
0
mirror of https://gitlab.os-k.eu/neox/CNIRevelator.git synced 2023-08-25 14:03:10 +02:00

Finished work on Update System

This commit is contained in:
Adrien Bourmault 2019-07-11 11:16:41 +02:00 committed by GitHub
parent a101664f6e
commit cdbe83b789
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 79 additions and 16 deletions

View File

@ -28,30 +28,32 @@ import os
import subprocess
import threading
import traceback
import psutil
import launcher # launcher.py
import ihm # ihm.py
import logger # logger.py
import updater # updater.py
import globs # globs.py
import launcher # launcher.py
import updater # updater.py
import globs # globs.py
import pytesseract # pytesseract.py
## MAIN FUNCTION OF CNIREVELATOR
def main():
import logger # logger.py
logfile = logger.logMain
import CNI_pytesseract as pytesseract
try:
os.environ['PATH'] = CST_FOLDER + 'Tesseract-OCR4\\'
os.environ['TESSDATA_PREFIX'] = CST_FOLDER + 'Tesseract-OCR4\\tessdata'
os.environ['PATH'] = globs.CNIRFolder + '\\Tesseract-OCR4\\'
os.environ['TESSDATA_PREFIX'] = globs.CNIRFolder + '\\Tesseract-OCR4\\tessdata'
tesser_version = pytesseract.get_tesseract_version()
except Exception as e:
logger.error('main() : **** ERROR WITH TESSERACT MODULE ' + str(e) + ' ****')
logfile.printerr('ERROR WITH TESSERACT MODULE ' + str(e))
else:
text = 'Tesseract version ' + str(tesser_version) + ' Licensed Apache 2004 successfully initiated\n'
main_w.montext(text)
main_w.montext('\n\nEntrez la première ligne de MRZ svp \n')
if CST_CHANGELOG.isOn:
showinfo('Changelog : résumé de mise à jour', ('Version du logiciel : ' + CST_VER + ' ' + CST_TYPE + ' Revision ' + CST_REV + '\n\n' + CST_CHANGELOG.text), parent=main_w)
if globs.CNIRNewVersion:
showinfo('Changelog : résumé de mise à jour', ('Version du logiciel : CNIRevelator ' + globs.verstring_full + '\n\n' + globs.changelog), parent=main_w)
logger.info('main() : **** Launching App_main() ****')
main_w.mainloop()
logger.info('main() : **** Ending App_main() ****')
@ -78,6 +80,13 @@ if updater.UPDATE_IS_MADE:
break
sys.exit(0)
#main()
# Here we go !
try:
main()
except Exception:
sys.exit(1)
sys.exit(0)
# Quit totally without remain in memory
for process in psutil.process_iter():
if process.pid == os.getpid():
process.terminate()

View File

@ -36,10 +36,12 @@ CNIRFolder = os.getcwd()
CNIRLColor = "#006699"
CNIRName = "CNIRevelator {}".format(verstring)
CNIRCryptoKey = '82Xh!efX3#@P~2eG'
CNIRNewVersion = False
CNIRConfig = CNIRFolder + '\\config\\conf.ig'
CNIRErrLog = CNIRFolder + '\\logs\\error.log'
CNIRLauncherLog = CNIRFolder + '\\logs\\launcher.log'
CNIRMainLog = CNIRFolder + '\\logs\\main.log'
CNIRUrlConfig = CNIRFolder + '\\config\\urlconf.ig'
CNIRVerStock = CNIRFolder + '\\downloads\\versions.lst'
CNIREnv = os.getenv('APPDATA') + '/CNIRevelator/'

View File

@ -64,5 +64,33 @@ class NewLoggingSystem:
def close(self):
logging.shutdown()
class NewMainLoggingSystem:
def __init__(self):
# Create new logging handle
logger = logging.getLogger()
logger.setLevel(logging.INFO) # To make sure we can have a debug channel
# Create channels
formatter = logging.Formatter("\n[ %(module)s/%(funcName)s ] %(asctime)s :: %(levelname)s :: %(message)s")
error_handler = logging.FileHandler((globs.CNIRErrLog), mode='w', encoding='utf-8', delay=True)
info_handler = logging.FileHandler((globs.CNIRMainLog), mode='w', encoding='utf-8')
error_handler.setLevel(logging.ERROR)
error_handler.setFormatter(formatter)
logger.addHandler(error_handler)
info_handler.setLevel(logging.DEBUG)
info_handler.setFormatter(formatter)
logger.addHandler(info_handler)
self.logger = logger
self.printerr = logger.error
self.printdbg = logger.info
def close(self):
logging.shutdown()
## Global Handler
logCur = NewLoggingSystem()
logMain = NewMainLoggingSystem()

View File

@ -25,6 +25,10 @@
from PIL import Image, ImageFont, ImageDraw, ImageTk, ImageEnhance, ImageFilter
import math, warnings, string
from tkinter import *
from tkinter.messagebox import *
from tkinter import filedialog
from tkinter import ttk
import mrz # mrz.py
from image import CanvasImage # image.py

View File

@ -183,11 +183,30 @@ def batch():
# Move to the right place
shutil.copytree(UPATH + 'temp\\CNIRevelator', UPATH)
shutil.rmtree(UPATH + 'temp')
logfile.printdbg('Extracted :' + UPATH + '\\CNIRevelator.exe')
logfile.printdbg('Extracted :' + UPATH + '\\CNIRevelator.exe')
launcherWindow.printmsg('Success !')
# Verifying that Tesseract is installed
if not os.path.exists(globs.CNIRFolder + '\\Tesseract-OCR4\\'):
tesseracturl = finalurl.replace("CNIRevelator.zip", "tesseract_4.zip")
# WE ASSUME THAT THE MAIN FILE IS CNIRevelator.zip AND THAT THE TESSERACT PACKAGE IS tesseract_4.zip
logfile.printdbg('Preparing download of Tesseract OCR 4...')
getTesseract = downloader.newdownload(credentials, tesseracturl, UPATH + '\\TsrtPackage.zip').download()
# Unzip Tesseract
logfile.printdbg("Unzipping the package")
launcherWindow.printmsg('Installing the updates')
zip_ref = zipfile.ZipFile(UPATH + '\\TsrtPackage.zip', 'r')
zip_ref.extractall(UPATH)
zip_ref.close()
# Cleanup
try:
os.remove(UPATH + '\\TsrtPackage.zip')
except:
pass
# Cleanup
try:
os.remove(globs.CNIRFolder + '\\..\\CNIPackage.zip')
@ -208,6 +227,7 @@ def umain():
# Cleaner for the old version if detected
if len(sys.argv) > 1:
globs.CNIRNewVersion = True
launcherWindow.printmsg('Deleting old version !')
logfile.printdbg("Old install detected : {}".format(sys.argv[1]))
while os.path.exists(str(sys.argv[1])):