def get_updates(self): url = settings.get( SettingType.CHECK_UPDATE_URL, 'https://api.github.com/repos/juliendz/imagius/releases/latest') qurl = QtCore.QUrl(url) LOGGER.info("Checking for updates....") self._net_mgr.get(QtNetwork.QNetworkRequest(qurl))
def run(argv): init_app_data_dir() init_app_db() from imagius.log import LOGGER LOGGER.info( '======================================Imagius starting up=======================================') import imagius.settings settings.load_settings() from imagius.main_window import MainWindow app = QApplication(argv) app.setApplicationName(HUMAN_APP_NAME) w = MainWindow() # with open('styles/Aqua.qss', 'r') as stylesheet: # qss = stylesheet.read() # w.setStyleSheet(qss) w.setWindowTitle('Imagius') w.showMaximized() return app.exec_()
def watch_all(self): """ <TODO> """ self._img_integrity_ts = start_time = time.time() LOGGER.info('Watch all started.') self._meta_files_mgr.connect() self.scan_folders() elapsed = round(time.time() - start_time, 2) suffix = 'seconds' if elapsed > 60: elapsed /= 60 suffix = 'minutes' LOGGER.info('Watch all completed in %.2f %s.' % (elapsed, suffix)) self.watch_all_done.emit(elapsed, suffix) orphaned_scan_dirs = self._meta_files_mgr.get_orphaned_scan_dirs( self._img_integrity_ts) for dir in orphaned_scan_dirs: self.dir_empty_or_deleted.emit({'id': dir['id']}) self._meta_files_mgr.prune_scan_dir(dir['id']) self.watch_empty_or_deleted_done.emit() self._meta_files_mgr.disconnect()
def run(argv): init.init_app_data_dir() from imagius.log import LOGGER LOGGER.info( '======================================Imagius starting up=======================================') init.init_app_db() from imagius import settings settings.load_settings()
def _request_finished(self, reply): if reply.error() == QtNetwork.QNetworkReply.NoError: json_doc = QtCore.QJsonDocument.fromJson(reply.readAll()) json_obj = json_doc.object() latest_release = Version(json_obj['tag_name'].toString()) is_draft = json_obj['draft'].toBool() assets = json_obj['assets'].toArray() asset_url = '' if len(assets) > 0: asset = assets[0] asset_url = asset['browser_download_url'] if asset_url == '': LOGGER.error("Update Manager: Assets object was null or empty") self._setup_msgbox( "Error checking for Updates", 'No downloads available for this release. Redirect to website downloads page ?', "Release API 'Assets' object was null or empty") self._msgbox.exec() if self._msgbox.clickedButton() == self._msgox_btn_ok: QtGui.QDesktopServices.openUrl( QtCore.QUrl( "https://juliendz.github.io/imagius/#download")) return if latest_release > Version( settings.app_version) and is_draft is False: LOGGER.info("Update found. New version(%s) is available" % str(latest_release)) self._setup_msgbox( "Update info !", 'Update found. Latest version is (%s)' % str(latest_release), None, "Download", "Later") self._msgbox.exec() if self._msgbox.clickedButton() == self._msgox_btn_ok: QtGui.QDesktopServices.openUrl( QtCore.QUrl(asset_url.toString())) else: LOGGER.info("No updates found! Already on latest release.") msgbox = QtWidgets.QMessageBox() msgbox.setIcon(QtWidgets.QMessageBox.Information) msgbox.setWindowTitle('Update Info') msgbox.setText("No updates found! Already on latest release.") msgbox.exec() else: LOGGER.error( "Update Manager: Unable to retrieve updates from release api (Error: %s)" % error_code) self._setup_msgbox( "Error checking for Updates", 'Unable to load the release api. Redirect to website downloads page ?', 'Network Request Error Code: %s' % error_code) self._msgbox.exec() if self._msgbox.clickedButton() == self._msgox_btn_ok: QtGui.QDesktopServices.openUrl( QtCore.QUrl( "https://juliendz.github.io/imagius/#download"))
def add_folder(self): """ <TODO> """ folder_path = QFileDialog.getExistingDirectory(self) folder_name = os.path.basename((folder_path)) folder_id = self.folder_mgr.add_watched_folder( folder_path, folder_name) LOGGER.info('Added watched folder (fid:%s)' % folder_id) self.populate_folder_tree()
def delete_folder(self): selected = self.listView_FolderList.selectedIndexes() if len(selected) > 0: selected_index = selected[0] folder_id = selected_index.data(QtCore.Qt.UserRole + 1) self.folder_mgr.delete_watched_folder(folder_id) LOGGER.info('Deleted watched folder (fid:%s)' % folder_id) self.populate_folder_tree() else: QMessageBox.about(self, "No selection", "Please select an entry to delete")
def edit_folder(self): selected = self.listView_FolderList.selectedIndexes() if len(selected) > 0: selected_index = selected[0] folder_id = selected_index.data(QtCore.Qt.UserRole + 1) new_folder_path = QFileDialog.getExistingDirectory(self) new_folder_name = os.path.basename((new_folder_path)) self.folder_mgr.edit_watched_folder( folder_id, new_folder_path, new_folder_name) LOGGER.info('Edited watched folder (fid:%s)' % folder_id) self.populate_folder_tree() else: QMessageBox.about(self, "No selection", "Please select an entry to edit")
def upgrade_from_previous_versions(cur_version, meta_db_path): meta_db = dbmgr(meta_db_path) meta_db.connect() # Upgrade code to Version(0.8.1) if cur_version < Version('0.8.1'): LOGGER.info('Upgrading from Version:%s to Version:%s' % (cur_version, '0.8.1')) queries = [ 'CREATE TEMPORARY TABLE scan_img_backup(a,b,c,d,e,f,g,h);', """INSERT INTO scan_img_backup SELECT id, abspath, name, thumb, sdid, mtime, integrity_check, serial FROM scan_img; """, 'DROP TABLE scan_img;', """CREATE TABLE IF NOT EXISTS "scan_img" ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `abspath` TEXT NOT NULL UNIQUE, `name` TEXT NOT NULL, `thumb` BLOB NOT NULL, `sdid` INTEGER NOT NULL DEFAULT 0, `mtime` INTEGER, `integrity_check` INTEGER, `serial` INTEGER, FOREIGN KEY(`sdid`) REFERENCES `scan_dir`(`id`) ON DELETE CASCADE ) """, 'INSERT INTO scan_img SELECT a,b,c,d,e,f,g,h FROM scan_img_backup;', 'DROP TABLE scan_img_backup;', ] for query in queries: meta_db.run_query(query) meta_db.commit() cur_version = Version('0.8.1') meta_db.disconnect() return