Update workflows/publish_pypi.yml
[manga-dl.git] / manga_py / base_classes / callbacks.py
bloba1483c192dc93747a0a326ee705a4dc07620f421
1 from typing import Callable
4 class Callbacks:
5 def _set_default_if_not_callable(self, attr_name: str, callback: Callable, default: Callable):
6 cb = callback if callable(callback) else default
7 setattr(self, attr_name, cb)
9 def set_quest_callback(self, callback: Callable): # Required call from initiator (CLI, GUI)
10 self._set_default_if_not_callable('quest', callback, self.quest)
12 def set_chapter_progress_callback(self, callback: Callable): # Required call from initiator (CLI, GUI)
13 self._set_default_if_not_callable('chapter_progress', callback, self.progress)
15 def set_global_progress_callback(self, callback: Callable): # Required call from initiator (CLI, GUI)
16 self._set_default_if_not_callable('global_progress', callback, self.progress)
18 def set_log_callback(self, callback: Callable): # Required call from initiator (CLI, GUI)
19 self._set_default_if_not_callable('log', callback, self.progress)
21 def set_quest_password_callback(self, callback: Callable): # Required call from iterator (CLI, GUI)
22 self._set_default_if_not_callable('quest_password', callback, self.progress)
24 def quest(self, *args, **kwargs):
25 pass
27 def quest_password(self, *args, **kwargs):
28 pass
30 def progress(self, *args, **kwargs):
31 pass
33 def log(self, *args, **kwargs):
34 pass
36 def book_meta(self) -> dict:
37 return {}