Files
zulip/zerver/lib/zcommand.py
Anders Kaseorg 69730a78cc python: Use trailing commas consistently.
Automatically generated by the following script, based on the output
of lint with flake8-comma:

import re
import sys

last_filename = None
last_row = None
lines = []

for msg in sys.stdin:
    m = re.match(
        r"\x1b\[35mflake8    \|\x1b\[0m \x1b\[1;31m(.+):(\d+):(\d+): (\w+)", msg
    )
    if m:
        filename, row_str, col_str, err = m.groups()
        row, col = int(row_str), int(col_str)

        if filename == last_filename:
            assert last_row != row
        else:
            if last_filename is not None:
                with open(last_filename, "w") as f:
                    f.writelines(lines)

            with open(filename) as f:
                lines = f.readlines()
            last_filename = filename
        last_row = row

        line = lines[row - 1]
        if err in ["C812", "C815"]:
            lines[row - 1] = line[: col - 1] + "," + line[col - 1 :]
        elif err in ["C819"]:
            assert line[col - 2] == ","
            lines[row - 1] = line[: col - 2] + line[col - 1 :].lstrip(" ")

if last_filename is not None:
    with open(last_filename, "w") as f:
        f.writelines(lines)

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-06-11 16:04:12 -07:00

56 lines
2.7 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]:
def change_mode_setting(command: str, switch_command: str,
setting: str, setting_value: bool) -> str:
msg = 'Changed to {command} mode! To revert ' \
'{command} mode, type `/{switch_command}`.'.format(
command=command,
switch_command=switch_command,
)
do_set_user_display_setting(user_profile=user_profile,
setting_name=setting,
setting_value=setting_value)
return msg
if not content.startswith('/'):
raise JsonableError(_('There should be a leading slash in the zcommand.'))
command = content[1:]
if command == 'ping':
return dict()
elif command == 'night':
if user_profile.night_mode:
return dict(msg='You are still in night mode.')
return dict(msg=change_mode_setting(command=command,
switch_command='day',
setting='night_mode',
setting_value=True))
elif command == 'day':
if not user_profile.night_mode:
return dict(msg='You are still in day mode.')
return dict(msg=change_mode_setting(command=command,
switch_command='night',
setting='night_mode',
setting_value=False))
elif command == 'fluid-width':
if user_profile.fluid_layout_width:
return dict(msg='You are still in fluid width mode.')
return dict(msg=change_mode_setting(command=command,
switch_command='fixed-width',
setting='fluid_layout_width',
setting_value=True))
elif command == 'fixed-width':
if not user_profile.fluid_layout_width:
return dict(msg='You are still in fixed width mode.')
return dict(msg=change_mode_setting(command=command,
switch_command='fluid-width',
setting='fluid_layout_width',
setting_value=False))
raise JsonableError(_('No such command: %s') % (command,))