mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 03:53:50 +00:00 
			
		
		
		
	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>
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.conf import settings
 | |
| from django.http import HttpRequest, HttpResponse
 | |
| from django.utils.translation import ugettext as _
 | |
| 
 | |
| from zerver.decorator import human_users_only
 | |
| from zerver.lib.push_notifications import add_push_device_token, \
 | |
|     b64_to_hex, remove_push_device_token
 | |
| from zerver.lib.request import has_request_variables, REQ, JsonableError
 | |
| from zerver.lib.response import json_success
 | |
| from zerver.models import PushDeviceToken, UserProfile
 | |
| 
 | |
| def validate_token(token_str: str, kind: int) -> None:
 | |
|     if token_str == '' or len(token_str) > 4096:
 | |
|         raise JsonableError(_('Empty or invalid length token'))
 | |
|     if kind == PushDeviceToken.APNS:
 | |
|         # Validate that we can actually decode the token.
 | |
|         try:
 | |
|             b64_to_hex(token_str)
 | |
|         except Exception:
 | |
|             raise JsonableError(_('Invalid APNS token'))
 | |
| 
 | |
| @human_users_only
 | |
| @has_request_variables
 | |
| def add_apns_device_token(request: HttpRequest, user_profile: UserProfile,
 | |
|                           token: str=REQ(),
 | |
|                           appid: str=REQ(default=settings.ZULIP_IOS_APP_ID),
 | |
|                           ) -> HttpResponse:
 | |
|     validate_token(token, PushDeviceToken.APNS)
 | |
|     add_push_device_token(user_profile, token, PushDeviceToken.APNS, ios_app_id=appid)
 | |
|     return json_success()
 | |
| 
 | |
| @human_users_only
 | |
| @has_request_variables
 | |
| def add_android_reg_id(request: HttpRequest, user_profile: UserProfile,
 | |
|                        token: str=REQ()) -> HttpResponse:
 | |
|     validate_token(token, PushDeviceToken.GCM)
 | |
|     add_push_device_token(user_profile, token, PushDeviceToken.GCM)
 | |
|     return json_success()
 | |
| 
 | |
| @human_users_only
 | |
| @has_request_variables
 | |
| def remove_apns_device_token(request: HttpRequest, user_profile: UserProfile,
 | |
|                              token: str=REQ()) -> HttpResponse:
 | |
|     validate_token(token, PushDeviceToken.APNS)
 | |
|     remove_push_device_token(user_profile, token, PushDeviceToken.APNS)
 | |
|     return json_success()
 | |
| 
 | |
| @human_users_only
 | |
| @has_request_variables
 | |
| def remove_android_reg_id(request: HttpRequest, user_profile: UserProfile,
 | |
|                           token: str=REQ()) -> HttpResponse:
 | |
|     validate_token(token, PushDeviceToken.GCM)
 | |
|     remove_push_device_token(user_profile, token, PushDeviceToken.GCM)
 | |
|     return json_success()
 |