mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +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,))
 |