mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
The slash in command is stripped in the backend, rather than in the client to make the client code cleaner. This would make client code cleaner in the slash commands which include parameters.
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from typing import Any, Dict
|
|
from django.utils.translation import ugettext as _
|
|
|
|
from zerver.models import UserProfile
|
|
from zerver.lib.actions import do_set_user_display_setting
|
|
from zerver.lib.exceptions import JsonableError
|
|
|
|
def process_zcommands(content: str, user_profile: UserProfile) -> Dict[str, Any]:
|
|
command = content.replace('/', '')
|
|
|
|
if command == 'ping':
|
|
ret = dict() # type: Dict[str, Any]
|
|
return ret
|
|
|
|
if command == 'night':
|
|
if user_profile.night_mode:
|
|
msg = 'You are still in night mode.'
|
|
else:
|
|
msg = 'Changed to night mode! To revert night mode, type `/day`.'
|
|
do_set_user_display_setting(user_profile, 'night_mode', True)
|
|
ret = dict(msg=msg)
|
|
return ret
|
|
|
|
if command == 'day':
|
|
if user_profile.night_mode:
|
|
msg = 'Changed to day mode! To revert day mode, type `/night`.'
|
|
do_set_user_display_setting(user_profile, 'night_mode', False)
|
|
else:
|
|
msg = 'You are still in day mode.'
|
|
ret = dict(msg=msg)
|
|
return ret
|
|
|
|
raise JsonableError(_('No such command: %s') % (command,))
|