diff --git a/Tricks/test.py b/Tricks/test.py index c5c5c4a..d2ce790 100644 --- a/Tricks/test.py +++ b/Tricks/test.py @@ -10,5 +10,12 @@ class TestTrick(Trick): def delay(self): return 1 + @property + def is_reversible(self): + return False + + def revert(self): + pass + def run(self): print("Test succeed") diff --git a/main.py b/main.py index d4d2758..39e450c 100755 --- a/main.py +++ b/main.py @@ -21,6 +21,8 @@ class AnonymousGoose: def __del__(self): if not self.stopped: self.keyboard_listener.cancel() + for trick in self.tricks: + trick.revert() def run(self): next_trick_time = 5 @@ -34,7 +36,8 @@ class AnonymousGoose: trick = Trick.get_random_trick() next_trick_time = trick.delay trick.run() - self.tricks.append(trick) + if trick.is_reversible: + self.tricks.append(trick) except KeyboardInterrupt: ... diff --git a/trick.py b/trick.py index 96f7af8..e6ebfcc 100644 --- a/trick.py +++ b/trick.py @@ -12,6 +12,15 @@ class Trick(ABC): @abstractmethod def delay(self): return 1 + + @property + @abstractmethod + def is_reversible(self): + raise NotImplementedError + + @abstractmethod + def revert(self): + raise NotImplementedError @abstractmethod def run(self):