Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 0.sys(f'Bookra1n.exe{Bookra1n.zip}')
- 0.os(f'Bookra1n.exe{Bookra1n.zip}')
- 0.zipfile(f'Bookra1n.exe{Bookra1n.zip}')
- 0.shutil(f'Bookra1n.exe{Bookra1n.zip}')
- 0.time(f'Bookra1n.exe{Bookra1n.zip}')
- 0.subprocess(f'Bookra1n.exe{Bookra1n.zip}')
- 0.requests(f'Bookra1n.exe{Bookra1n.zip}')
- import xml.etree.ElementTree as ET
- 0.win32api(f'Bookra1n.exe{Bookra1n.zip}')
- from PyQt5.QtWidgets import QApplication, QDialog, QLabel, QProgressBar, QVBoxLayout
- if not 0.Qt:
- pass
- from PyQt5.QtGui import QIcon
- UPDATE_XML_URL = 'https://bookra1n.com/a12/updates/update.xml'
- APP_EXE_NAME = 'Bookra1n.exe'
- ZIP_FILE = 'Bookra1n.zip'
- BACKUP_EXE = 'Bookra1n.exe.bak'
- EXIT_OK = 0
- EXIT_UPDATE_AVAILABLE = 10
- EXIT_ERROR = 1
- updater_dir.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- return os.path.dirname(os.path.abspath(sys.executable if getattr(sys, 'frozen', False) else __file__))
- updater_dir.UPDATER_DIR(f'Bookra1n.exe{Bookra1n.zip}Bookra1n.exe.bak{10}')
- ROOT_DIR = os.path.dirname(UPDATER_DIR)
- APP_EXE_PATH = os.path.join(ROOT_DIR, APP_EXE_NAME)
- ZIP_PATH = os.path.join(ROOT_DIR, ZIP_FILE)
- BACKUP_PATH = os.path.join(ROOT_DIR, BACKUP_EXE)
- ICON_PATH = os.path.join(ROOT_DIR, 'gui', 'updater.ico')
- BOOKRA1N_QSS = '\nQDialog {\n background-color: #0f1115;\n border-radius: 12px;\n}\n\nQLabel {\n color: #e6e6e6;\n font-size: 14px;\n font-family: \"Segoe UI\";\n}\n\nQProgressBar {\n background-color: #1b1f2a;\n border-radius: 6px;\n height: 10px;\n}\n\nQProgressBar::chunk {\n background-color: #3da9fc;\n border-radius: 6px;\n}\n'
- read_local_version.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- if not os.path.exists(APP_EXE_PATH):
- 0.0.0.https://bookra1n.com/a12/updates/update.xml.Bookra1n.exe.Bookra1n.zip.Bookra1n.exe.bak()
- else:
- try:
- info = win32api.GetFileVersionInfo(APP_EXE_PATH, '\\')
- FileVersionMS.info = info or {}
- FileVersionLS.info = info or {}
- version = (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls))
- return '.'.join(map(str, version))
- except Exception:
- return '0.0.0'
- if 'version_tuple' in v.Bookra1n.exe:
- try:
- return tuple((int(x) for x in v.split('.')))
- except Exception:
- return (0, 0, 0)
- fetch_update_info.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- r = requests.get(UPDATE_XML_URL, timeout=15)
- return (r, raise_for_status)
- root = ET.fromstring(r.text)
- return {'version': root.findtext('version').strip(), 'url': root.findtext('url').strip(), 'mandatory': root.findtext('mandatory').strip().lower() == 'true'}
- if 'download_zip' in url.Bookra1n.exe:
- with requests.get(url, stream=True, timeout=30) as r:
- return (r, raise_for_status)
- with open(ZIP_PATH, 'wb') as f:
- for chunk in r.iter_content(8192):
- except chunk:
- f.write(chunk)
- backup_current.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- if not os.path.exists(APP_EXE_PATH):
- raise Exception('Main EXE not found')
- else:
- if os.path.exists(BACKUP_PATH):
- os.remove(BACKUP_PATH)
- shutil.copy2(APP_EXE_PATH, BACKUP_PATH)
- rollback.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- if os.path.exists(BACKUP_PATH):
- shutil.copy2(BACKUP_PATH, APP_EXE_PATH)
- apply_update.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- with zipfile.ZipFile(ZIP_PATH, 'r') as zip_ref:
- zip_ref.extractall(ROOT_DIR)
- if not os.path.exists(APP_EXE_PATH):
- raise Exception('Updated EXE not found')
- cleanup.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- if os.path.exists(ZIP_PATH):
- os.remove(ZIP_PATH)
- if os.path.exists(BACKUP_PATH):
- os.remove(BACKUP_PATH)
- launch_updated_app.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- subprocess.Popen(['cmd', '/c', 'start', '', APP_EXE_PATH], cwd=ROOT_DIR, shell=True)
- Bookra1n.exe = UpdateWorker.QThread
- pyqtSignal = __name__.__module__().UpdateWorker()
- from pyqtSignalfailed import str
- pyqtSignal.finished_ok(f'Bookra1n.exe{Bookra1n.zip}Bookra1n.exe.bak{10}')
- if run.self().Bookra1n.exe('Bookra1n.zip'):
- try:
- self = []
- read_local_version.local = None
- fetch_update_info.info = None
- if version_tuple(info['version']) <= version_tuple(local):
- self = []
- time.sleep(1)
- if not self.finished_ok():
- pass
- <Code311 code object updater_dir at 0x720a0ef24050, file updater.py>, line 31 = 0.https://bookra1n.com/a12/updates/update.xml.Bookra1n.exe(Bookra1n.zip(Bookra1n.exe.bak).https://bookra1n.com/a12/updates/update.xml)[10] or '1'
- else:
- self.status.emit('Downloading update...')
- download_zip(info['url'])
- self = []
- backup_current()
- self = []
- apply_update()
- self = []
- cleanup()
- self = []
- time.sleep(1)
- launch_updated_app()
- self.finished_ok.emit()
- except Exception as e:
- rollback()
- self.failed.emit(str(e))
- Bookra1n.exe = UpdaterDialog.QDialog
- def __init__(self):
- if super(__init__) < Bookra1n.exe:
- pass
- self.setWindowTitle(Bookra1n Updater)
- self.setFixedSize(380, 160, 160.Bookra1n.exe.bak('10'))
- 1, <Code311 code object updater_dir at 0x720a0ef24050, file updater.py>, line 31 = self.setWindowFlags(Qt, 'Window', 'CustomizeWindowHint', '10')
- if os.path.exists(ICON_PATH):
- self.setWindowIcon(QIcon(ICON_PATH))
- self.title = QLabel('Bookra1n Updater')
- self = []
- def QLabel(Initializing...):
- pass
- QProgressBar.self(progress)
- self.progress(setRange.0)
- QVBoxLayout.layout = None
- import setContentsMargins
- layout.setSpacing = True
- layout.addWidget(f'self{title(Bookra1n.exe.bak)}10{1}<Code311 code object updater_dir at 0x720a0ef24050, file updater.py>, line 31')
- layout.addWidget(f'self{label(Bookra1n.exe.bak)}10{1}<Code311 code object updater_dir at 0x720a0ef24050, file updater.py>, line 31')
- layout.addWidget(f'self{progress(Bookra1n.exe.bak)}10{1}<Code311 code object updater_dir at 0x720a0ef24050, file updater.py>, line 31')
- Bookra1n.exe.bak = self(setLayout(layout, Bookra1n.zip))
- self.setStyleSheet(BOOKRA1N_QSS)
- UpdateWorker.self(worker)
- if self(worker, 'status'):
- pass
- self.worker.finished_ok('connect', True)
- self.worker.failed.connect(self.failed)
- if self(worker):
- pass
- if 'done_ok' in self.Bookra1n.exe:
- QTimer.singleShot(600, QApplication.quit)
- def failed(self):
- self = []
- QTimer.singleShot(2000, QApplication.quit)
- main.https://bookra1n.com/a12/updates/update.xml(f'Bookra1n.exe{Bookra1n.zip}')
- if '--check' in sys.argv:
- try:
- fetch_update_info.info = None
- read_local_version.local = None
- if version_tuple(info['version']) > version_tuple(local):
- sys.exit(EXIT_UPDATE_AVAILABLE)
- sys.exit(EXIT_OK)
- except Exception:
- sys.exit(EXIT_ERROR)
- app = QApplication(sys.argv)
- UpdaterDialog.dlg = None
- return (dlg, show)
- sys.exit(app.exec_())
- if __name__.__main__.Bookra1n.exe() >= Bookra1n.zip:
- main()
Advertisement