prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  slash commands: Add /dark and /light commands.
  We have /night and /day, and people are starting to use them.  We should add the aliases /dark and /light.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `zerver/lib/zcommand.py`
  Content:
  ```
  1 from typing import Any, Dict
  2 from django.utils.translation import ugettext as _
  3 
  4 from zerver.models import UserProfile
  5 from zerver.lib.actions import do_set_user_display_setting
  6 from zerver.lib.exceptions import JsonableError
  7 
  8 def process_zcommands(content: str, user_profile: UserProfile) -> Dict[str, Any]:
  9     if not content.startswith('/'):
  10         raise JsonableError(_('There should be a leading slash in the zcommand.'))
  11     command = content[1:]
  12 
  13     if command == 'ping':
  14         ret = dict()  # type: Dict[str, Any]
  15         return ret
  16 
  17     if command == 'night':
  18         if user_profile.night_mode:
  19             msg = 'You are still in night mode.'
  20         else:
  21             msg = 'Changed to night mode! To revert night mode, type `/day`.'
  22             do_set_user_display_setting(user_profile, 'night_mode', True)
  23         ret = dict(msg=msg)
  24         return ret
  25 
  26     if command == 'day':
  27         if user_profile.night_mode:
  28             msg = 'Changed to day mode! To revert day mode, type `/night`.'
  29             do_set_user_display_setting(user_profile, 'night_mode', False)
  30         else:
  31             msg = 'You are still in day mode.'
  32         ret = dict(msg=msg)
  33         return ret
  34 
  35     raise JsonableError(_('No such command: %s') % (command,))
  36
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/zerver/lib/zcommand.py b/zerver/lib/zcommand.py
  --- a/zerver/lib/zcommand.py
  +++ b/zerver/lib/zcommand.py
  @@ -14,18 +14,21 @@
           ret = dict()  # type: Dict[str, Any]
           return ret
   
  -    if command == 'night':
  +    night_commands = ['night', 'dark']
  +    day_commands = ['day', 'light']
  +
  +    if command in night_commands:
           if user_profile.night_mode:
               msg = 'You are still in night mode.'
           else:
  -            msg = 'Changed to night mode! To revert night mode, type `/day`.'
  +            msg = 'Changed to night mode! To revert night mode, type `%s`.' % (content,)
               do_set_user_display_setting(user_profile, 'night_mode', True)
           ret = dict(msg=msg)
           return ret
   
  -    if command == 'day':
  +    if command in day_commands:
           if user_profile.night_mode:
  -            msg = 'Changed to day mode! To revert day mode, type `/night`.'
  +            msg = 'Changed to day mode! To revert day mode, type `%s`.' % (content,)
               do_set_user_display_setting(user_profile, 'night_mode', False)
           else:
               msg = 'You are still in day mode.'
  
verification_info: {"golden_diff": "diff --git a/zerver/lib/zcommand.py b/zerver/lib/zcommand.py\n--- a/zerver/lib/zcommand.py\n+++ b/zerver/lib/zcommand.py\n@@ -14,18 +14,21 @@\n         ret = dict()  # type: Dict[str, Any]\n         return ret\n \n-    if command == 'night':\n+    night_commands = ['night', 'dark']\n+    day_commands = ['day', 'light']\n+\n+    if command in night_commands:\n         if user_profile.night_mode:\n             msg = 'You are still in night mode.'\n         else:\n-            msg = 'Changed to night mode! To revert night mode, type `/day`.'\n+            msg = 'Changed to night mode! To revert night mode, type `%s`.' % (content,)\n             do_set_user_display_setting(user_profile, 'night_mode', True)\n         ret = dict(msg=msg)\n         return ret\n \n-    if command == 'day':\n+    if command in day_commands:\n         if user_profile.night_mode:\n-            msg = 'Changed to day mode! To revert day mode, type `/night`.'\n+            msg = 'Changed to day mode! To revert day mode, type `%s`.' % (content,)\n             do_set_user_display_setting(user_profile, 'night_mode', False)\n         else:\n             msg = 'You are still in day mode.'\n", "issue": "slash commands: Add /dark and /light commands.\nWe have /night and /day, and people are starting to use them.  We should add the aliases /dark and /light.\n", "before_files": [{"content": "from typing import Any, Dict\nfrom django.utils.translation import ugettext as _\n\nfrom zerver.models import UserProfile\nfrom zerver.lib.actions import do_set_user_display_setting\nfrom zerver.lib.exceptions import JsonableError\n\ndef process_zcommands(content: str, user_profile: UserProfile) -> Dict[str, Any]:\n    if not content.startswith('/'):\n        raise JsonableError(_('There should be a leading slash in the zcommand.'))\n    command = content[1:]\n\n    if command == 'ping':\n        ret = dict()  # type: Dict[str, Any]\n        return ret\n\n    if command == 'night':\n        if user_profile.night_mode:\n            msg = 'You are still in night mode.'\n        else:\n            msg = 'Changed to night mode! To revert night mode, type `/day`.'\n            do_set_user_display_setting(user_profile, 'night_mode', True)\n        ret = dict(msg=msg)\n        return ret\n\n    if command == 'day':\n        if user_profile.night_mode:\n            msg = 'Changed to day mode! To revert day mode, type `/night`.'\n            do_set_user_display_setting(user_profile, 'night_mode', False)\n        else:\n            msg = 'You are still in day mode.'\n        ret = dict(msg=msg)\n        return ret\n\n    raise JsonableError(_('No such command: %s') % (command,))\n", "path": "zerver/lib/zcommand.py"}], "after_files": [{"content": "from typing import Any, Dict\nfrom django.utils.translation import ugettext as _\n\nfrom zerver.models import UserProfile\nfrom zerver.lib.actions import do_set_user_display_setting\nfrom zerver.lib.exceptions import JsonableError\n\ndef process_zcommands(content: str, user_profile: UserProfile) -> Dict[str, Any]:\n    if not content.startswith('/'):\n        raise JsonableError(_('There should be a leading slash in the zcommand.'))\n    command = content[1:]\n\n    if command == 'ping':\n        ret = dict()  # type: Dict[str, Any]\n        return ret\n\n    night_commands = ['night', 'dark']\n    day_commands = ['day', 'light']\n\n    if command in night_commands:\n        if user_profile.night_mode:\n            msg = 'You are still in night mode.'\n        else:\n            msg = 'Changed to night mode! To revert night mode, type `%s`.' % (content,)\n            do_set_user_display_setting(user_profile, 'night_mode', True)\n        ret = dict(msg=msg)\n        return ret\n\n    if command in day_commands:\n        if user_profile.night_mode:\n            msg = 'Changed to day mode! To revert day mode, type `%s`.' % (content,)\n            do_set_user_display_setting(user_profile, 'night_mode', False)\n        else:\n            msg = 'You are still in day mode.'\n        ret = dict(msg=msg)\n        return ret\n\n    raise JsonableError(_('No such command: %s') % (command,))\n", "path": "zerver/lib/zcommand.py"}]}