diff --git a/python/kontor/controllers/media.py b/python/kontor/controllers/media.py index e39c724..ecee44d 100644 --- a/python/kontor/controllers/media.py +++ b/python/kontor/controllers/media.py @@ -59,3 +59,21 @@ class Media(Controller): else: print("no url was given.") + + @ex( + help='check files if existing', + arguments=[ + (['-d', '--dir'], + {'help': 'directory to store videos', + 'action': 'store', + 'dest': 'media_dir'}) + ], + ) + def check(self): + data = { + 'media_dir': '/data/media', + } + if self.app.pargs.media_dir is not None: + data['media_dir'] = self.app.pargs.media_dir + kontor_db = KontorDB(self.app.engine, self.app.config, self.app.log) + kontor_db.check_files() diff --git a/python/kontor/database/__init__.py b/python/kontor/database/__init__.py index 0c524fa..031799b 100644 --- a/python/kontor/database/__init__.py +++ b/python/kontor/database/__init__.py @@ -322,8 +322,14 @@ class KontorDB: filename = self.download_url(link) if filename is None: link.file_name = filename + link.should_download = 1 + else: + download_file = Path(filename) + download_file.with_name(f"{link.id}{download_file.suffix}") + link.file_name = download_file.name link.should_download = 0 - session.commit() + link.cloud_link = download_file.absolute() + session.commit() def parse_output(self, lines_list): file_name = "" @@ -354,3 +360,9 @@ class KontorDB: return self.parse_output(lines_list) else: return None + + def check_files(self): + media_dir = Path(self.config.get('media', 'dir')) + if not media_dir.exists(): + return + self.log.info(f"check files in {media_dir}") diff --git a/python/kontor/gui/main_window.py b/python/kontor/gui/main_window.py index eaba732..a835b89 100644 --- a/python/kontor/gui/main_window.py +++ b/python/kontor/gui/main_window.py @@ -62,6 +62,8 @@ class MainWindow(QMainWindow): self.updateTitleAction.triggered.connect(self.update_title) self.downloadAction = QAction("&Download Videos", self) self.downloadAction.triggered.connect(self.download_file) + self.checkFileAction = QAction("&Check files", self) + self.checkFileAction.triggered.connect(self.check_files) self.exitAction = QAction("&Beenden", self) self.exitAction.setShortcut("Alt+F4") self.exitAction.triggered.connect(self.close) @@ -82,6 +84,7 @@ class MainWindow(QMainWindow): media_file_menu = QMenu("&MediaFile") media_file_menu.addAction(self.updateTitleAction) media_file_menu.addAction(self.downloadAction) + media_file_menu.addAction(self.checkFileAction) kontor_menu.addMenu(comic_menu) kontor_menu.addMenu(tysc_menu) kontor_menu.addMenu(media_file_menu) @@ -134,6 +137,11 @@ class MainWindow(QMainWindow): self.statusBar.showMessage("download videos for table MediaFile", 3000) self.kontor_db.download_file() + def check_files(self): + self.log.info("check files") + self.statusBar.showMessage("check files for table MediaFile", 3000) + self.kontor_db.check_files() + def refresh(self): self.data[self.tabs.currentIndex()].refresh()