From b98134ea23dd5b860795629ff069844b73def37b Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Fri, 27 Nov 2020 09:21:52 -0500 Subject: [PATCH] [O] Better null safety --- src/commands.py | 11 +++-------- src/scheduler.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/commands.py b/src/commands.py index f690ef2..3393c13 100644 --- a/src/commands.py +++ b/src/commands.py @@ -198,12 +198,9 @@ def enable(update: Update, context: CallbackContext): if name not in database.userRequests[user]: return "*Error:* %s doesn't exist." % name - # Check if name is enabled - if scheduler.isStarted(user, name): - return "*Error:* %s is already enabled." % name - # Start task - scheduler.start(user, database.userRequests[user][name]) + if not scheduler.start(user, database.userRequests[user][name]): + return "*Error:* %s is already enabled." % name return "Started!" @@ -218,11 +215,9 @@ def disable(update: Update, context: CallbackContext): # Check if name is running name = context.args[0] - if not scheduler.isStarted(user, name): + if not scheduler.stop(user, name): return "*Error:* %s isn't enabled." % name - scheduler.stop(user, name) - return "Removed!" diff --git a/src/scheduler.py b/src/scheduler.py index 59bf6d1..08d4d0d 100644 --- a/src/scheduler.py +++ b/src/scheduler.py @@ -51,6 +51,10 @@ class Scheduler: def start(self, user: str, request): name = request['name'] + + if self.isStarted(user, name): + return False + if user not in self.tasks: self.tasks[user] = {} @@ -61,7 +65,12 @@ class Scheduler: request['enabled'] = True self.database.save() + return True + def stop(self, user: str, name: str): + if not self.isStarted(user, name): + return False + # Stop and remove task job = self.tasks[user][name] job.enabled = False @@ -70,6 +79,8 @@ class Scheduler: self.database.userRequests[user][name]['enabled'] = False self.database.save() + return True + def isStarted(self, user: str, name: str): return user in self.tasks and name in self.tasks[user]