[O] Better null safety

This commit is contained in:
Hykilpikonna
2020-11-27 09:21:52 -05:00
parent 26c9d5d943
commit b98134ea23
2 changed files with 14 additions and 8 deletions
+3 -8
View File
@@ -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!"
+11
View File
@@ -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]