mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Instead of displaying the zcommand to switch to the other mode, the message displayed the zcommand that the user had just entered.
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.5 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]:
 | 
						|
    if not content.startswith('/'):
 | 
						|
        raise JsonableError(_('There should be a leading slash in the zcommand.'))
 | 
						|
    command = content[1:]
 | 
						|
 | 
						|
    if command == 'ping':
 | 
						|
        ret = dict()  # type: Dict[str, Any]
 | 
						|
        return ret
 | 
						|
 | 
						|
    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:
 | 
						|
            switch_command = day_commands[night_commands.index(command)]
 | 
						|
            msg = 'Changed to night mode! To revert night mode, type `/%s`.' % (switch_command,)
 | 
						|
            do_set_user_display_setting(user_profile, 'night_mode', True)
 | 
						|
        ret = dict(msg=msg)
 | 
						|
        return ret
 | 
						|
 | 
						|
    if command in day_commands:
 | 
						|
        if user_profile.night_mode:
 | 
						|
            switch_command = night_commands[day_commands.index(command)]
 | 
						|
            msg = 'Changed to day mode! To revert day mode, type `/%s`.' % (switch_command,)
 | 
						|
            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,))
 |