mirror of https://github.com/zulip/zulip.git
zerver/lib: Remove u prefix from strings.
This commit is contained in:
parent
32f1523de2
commit
9161f8c39b
|
@ -439,7 +439,7 @@ def create_users(realm: Realm, name_list: Iterable[Tuple[Text, Text]], bot_type:
|
||||||
def do_create_user(email: Text, password: Optional[Text], realm: Realm, full_name: Text,
|
def do_create_user(email: Text, password: Optional[Text], realm: Realm, full_name: Text,
|
||||||
short_name: Text, is_realm_admin: bool=False, bot_type: Optional[int]=None,
|
short_name: Text, is_realm_admin: bool=False, bot_type: Optional[int]=None,
|
||||||
bot_owner: Optional[UserProfile]=None, tos_version: Optional[Text]=None,
|
bot_owner: Optional[UserProfile]=None, tos_version: Optional[Text]=None,
|
||||||
timezone: Text=u"", avatar_source: Text=UserProfile.AVATAR_FROM_GRAVATAR,
|
timezone: Text="", avatar_source: Text=UserProfile.AVATAR_FROM_GRAVATAR,
|
||||||
default_sending_stream: Optional[Stream]=None,
|
default_sending_stream: Optional[Stream]=None,
|
||||||
default_events_register_stream: Optional[Stream]=None,
|
default_events_register_stream: Optional[Stream]=None,
|
||||||
default_all_public_streams: bool=None,
|
default_all_public_streams: bool=None,
|
||||||
|
@ -1916,7 +1916,7 @@ def _internal_prep_message(realm: Realm,
|
||||||
return check_message(sender, get_client("Internal"), addressee,
|
return check_message(sender, get_client("Internal"), addressee,
|
||||||
content, realm=realm)
|
content, realm=realm)
|
||||||
except JsonableError as e:
|
except JsonableError as e:
|
||||||
logging.exception(u"Error queueing internal message by %s: %s" % (sender.email, e))
|
logging.exception("Error queueing internal message by %s: %s" % (sender.email, e))
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -3919,7 +3919,7 @@ def do_send_confirmation_email(invitee: PreregistrationUser,
|
||||||
activation_url = create_confirmation_link(invitee, referrer.realm.host, Confirmation.INVITATION)
|
activation_url = create_confirmation_link(invitee, referrer.realm.host, Confirmation.INVITATION)
|
||||||
context = {'referrer': referrer, 'activate_url': activation_url,
|
context = {'referrer': referrer, 'activate_url': activation_url,
|
||||||
'referrer_realm_name': referrer.realm.name}
|
'referrer_realm_name': referrer.realm.name}
|
||||||
from_name = u"%s (via Zulip)" % (referrer.full_name,)
|
from_name = "%s (via Zulip)" % (referrer.full_name,)
|
||||||
send_email('zerver/emails/invitation', to_email=invitee.email, from_name=from_name,
|
send_email('zerver/emails/invitation', to_email=invitee.email, from_name=from_name,
|
||||||
from_address=FromAddress.NOREPLY, context=context)
|
from_address=FromAddress.NOREPLY, context=context)
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ from zerver.lib.tex import render_tex
|
||||||
from typing import Any, Dict, Iterable, List, MutableSequence, Optional, Tuple, Union, Text
|
from typing import Any, Dict, Iterable, List, MutableSequence, Optional, Tuple, Union, Text
|
||||||
|
|
||||||
# Global vars
|
# Global vars
|
||||||
FENCE_RE = re.compile(u"""
|
FENCE_RE = re.compile("""
|
||||||
# ~~~ or ```
|
# ~~~ or ```
|
||||||
(?P<fence>
|
(?P<fence>
|
||||||
^(?:~{3,}|`{3,})
|
^(?:~{3,}|`{3,})
|
||||||
|
|
|
@ -289,7 +289,7 @@ def cache(func: Callable[..., ReturnT]) -> Callable[..., ReturnT]:
|
||||||
return cache_with_key(keyfunc)(func)
|
return cache_with_key(keyfunc)(func)
|
||||||
|
|
||||||
def display_recipient_cache_key(recipient_id: int) -> Text:
|
def display_recipient_cache_key(recipient_id: int) -> Text:
|
||||||
return u"display_recipient_dict:%d" % (recipient_id,)
|
return "display_recipient_dict:%d" % (recipient_id,)
|
||||||
|
|
||||||
def user_profile_by_email_cache_key(email: Text) -> Text:
|
def user_profile_by_email_cache_key(email: Text) -> Text:
|
||||||
# See the comment in zerver/lib/avatar_hash.py:gravatar_hash for why we
|
# See the comment in zerver/lib/avatar_hash.py:gravatar_hash for why we
|
||||||
|
@ -306,13 +306,13 @@ def user_profile_cache_key(email, realm):
|
||||||
return user_profile_cache_key_id(email, realm.id)
|
return user_profile_cache_key_id(email, realm.id)
|
||||||
|
|
||||||
def bot_profile_cache_key(email: Text) -> Text:
|
def bot_profile_cache_key(email: Text) -> Text:
|
||||||
return u"bot_profile:%s" % (make_safe_digest(email.strip()))
|
return "bot_profile:%s" % (make_safe_digest(email.strip()))
|
||||||
|
|
||||||
def user_profile_by_id_cache_key(user_profile_id: int) -> Text:
|
def user_profile_by_id_cache_key(user_profile_id: int) -> Text:
|
||||||
return u"user_profile_by_id:%s" % (user_profile_id,)
|
return "user_profile_by_id:%s" % (user_profile_id,)
|
||||||
|
|
||||||
def user_profile_by_api_key_cache_key(api_key: Text) -> Text:
|
def user_profile_by_api_key_cache_key(api_key: Text) -> Text:
|
||||||
return u"user_profile_by_api_key:%s" % (api_key,)
|
return "user_profile_by_api_key:%s" % (api_key,)
|
||||||
|
|
||||||
# TODO: Refactor these cache helpers into another file that can import
|
# TODO: Refactor these cache helpers into another file that can import
|
||||||
# models.py so that python v3 style type annotations can also work.
|
# models.py so that python v3 style type annotations can also work.
|
||||||
|
@ -323,10 +323,10 @@ realm_user_dict_fields = [
|
||||||
'is_realm_admin', 'is_bot', 'realm_id', 'timezone'] # type: List[str]
|
'is_realm_admin', 'is_bot', 'realm_id', 'timezone'] # type: List[str]
|
||||||
|
|
||||||
def realm_user_dicts_cache_key(realm_id: int) -> Text:
|
def realm_user_dicts_cache_key(realm_id: int) -> Text:
|
||||||
return u"realm_user_dicts:%s" % (realm_id,)
|
return "realm_user_dicts:%s" % (realm_id,)
|
||||||
|
|
||||||
def active_user_ids_cache_key(realm_id: int) -> Text:
|
def active_user_ids_cache_key(realm_id: int) -> Text:
|
||||||
return u"active_user_ids:%s" % (realm_id,)
|
return "active_user_ids:%s" % (realm_id,)
|
||||||
|
|
||||||
bot_dict_fields = ['id', 'full_name', 'short_name', 'bot_type', 'email',
|
bot_dict_fields = ['id', 'full_name', 'short_name', 'bot_type', 'email',
|
||||||
'is_active', 'default_sending_stream__name',
|
'is_active', 'default_sending_stream__name',
|
||||||
|
@ -338,10 +338,10 @@ bot_dict_fields = ['id', 'full_name', 'short_name', 'bot_type', 'email',
|
||||||
|
|
||||||
def bot_dicts_in_realm_cache_key(realm):
|
def bot_dicts_in_realm_cache_key(realm):
|
||||||
# type: (Realm) -> Text
|
# type: (Realm) -> Text
|
||||||
return u"bot_dicts_in_realm:%s" % (realm.id,)
|
return "bot_dicts_in_realm:%s" % (realm.id,)
|
||||||
|
|
||||||
def get_stream_cache_key(stream_name: Text, realm_id: int) -> Text:
|
def get_stream_cache_key(stream_name: Text, realm_id: int) -> Text:
|
||||||
return u"stream_by_realm_and_name:%s:%s" % (
|
return "stream_by_realm_and_name:%s:%s" % (
|
||||||
realm_id, make_safe_digest(stream_name.strip().lower()))
|
realm_id, make_safe_digest(stream_name.strip().lower()))
|
||||||
|
|
||||||
def delete_user_profile_caches(user_profiles):
|
def delete_user_profile_caches(user_profiles):
|
||||||
|
@ -423,7 +423,7 @@ def flush_realm(sender: Any, **kwargs: Any) -> None:
|
||||||
|
|
||||||
def realm_alert_words_cache_key(realm):
|
def realm_alert_words_cache_key(realm):
|
||||||
# type: (Realm) -> Text
|
# type: (Realm) -> Text
|
||||||
return u"realm_alert_words:%s" % (realm.string_id,)
|
return "realm_alert_words:%s" % (realm.string_id,)
|
||||||
|
|
||||||
def realm_first_visible_message_id_cache_key(realm):
|
def realm_first_visible_message_id_cache_key(realm):
|
||||||
# type: (Realm) -> Text
|
# type: (Realm) -> Text
|
||||||
|
|
|
@ -164,14 +164,14 @@ def gather_new_streams(user_profile: UserProfile,
|
||||||
new_streams = list(get_active_streams(user_profile.realm).filter(
|
new_streams = list(get_active_streams(user_profile.realm).filter(
|
||||||
invite_only=False, date_created__gt=threshold))
|
invite_only=False, date_created__gt=threshold))
|
||||||
|
|
||||||
base_url = u"%s/#narrow/stream/" % (user_profile.realm.uri,)
|
base_url = "%s/#narrow/stream/" % (user_profile.realm.uri,)
|
||||||
|
|
||||||
streams_html = []
|
streams_html = []
|
||||||
streams_plain = []
|
streams_plain = []
|
||||||
|
|
||||||
for stream in new_streams:
|
for stream in new_streams:
|
||||||
narrow_url = base_url + hash_util_encode(stream.name)
|
narrow_url = base_url + hash_util_encode(stream.name)
|
||||||
stream_link = u"<a href='%s'>%s</a>" % (narrow_url, stream.name)
|
stream_link = "<a href='%s'>%s</a>" % (narrow_url, stream.name)
|
||||||
streams_html.append(stream_link)
|
streams_html.append(stream_link)
|
||||||
streams_plain.append(stream.name)
|
streams_plain.append(stream.name)
|
||||||
|
|
||||||
|
|
|
@ -41,20 +41,20 @@ def report_to_zulip(error_message: Text) -> None:
|
||||||
return
|
return
|
||||||
error_bot = get_system_bot(settings.ERROR_BOT)
|
error_bot = get_system_bot(settings.ERROR_BOT)
|
||||||
error_stream = Stream.objects.get(name="errors", realm=error_bot.realm)
|
error_stream = Stream.objects.get(name="errors", realm=error_bot.realm)
|
||||||
send_zulip(settings.ERROR_BOT, error_stream, u"email mirror error",
|
send_zulip(settings.ERROR_BOT, error_stream, "email mirror error",
|
||||||
u"""~~~\n%s\n~~~""" % (error_message,))
|
"""~~~\n%s\n~~~""" % (error_message,))
|
||||||
|
|
||||||
def log_and_report(email_message: message.Message, error_message: Text, debug_info: Dict[str, Any]) -> None:
|
def log_and_report(email_message: message.Message, error_message: Text, debug_info: Dict[str, Any]) -> None:
|
||||||
scrubbed_error = u"Sender: %s\n%s" % (email_message.get("From"),
|
scrubbed_error = u"Sender: %s\n%s" % (email_message.get("From"),
|
||||||
redact_stream(error_message))
|
redact_stream(error_message))
|
||||||
|
|
||||||
if "to" in debug_info:
|
if "to" in debug_info:
|
||||||
scrubbed_error = u"Stream: %s\n%s" % (redact_stream(debug_info["to"]),
|
scrubbed_error = "Stream: %s\n%s" % (redact_stream(debug_info["to"]),
|
||||||
scrubbed_error)
|
scrubbed_error)
|
||||||
|
|
||||||
if "stream" in debug_info:
|
if "stream" in debug_info:
|
||||||
scrubbed_error = u"Realm: %s\n%s" % (debug_info["stream"].realm.string_id,
|
scrubbed_error = "Realm: %s\n%s" % (debug_info["stream"].realm.string_id,
|
||||||
scrubbed_error)
|
scrubbed_error)
|
||||||
|
|
||||||
logger.error(scrubbed_error)
|
logger.error(scrubbed_error)
|
||||||
report_to_zulip(scrubbed_error)
|
report_to_zulip(scrubbed_error)
|
||||||
|
@ -260,13 +260,13 @@ def extract_and_upload_attachments(message: message.Message, realm: Realm) -> Te
|
||||||
attachment,
|
attachment,
|
||||||
user_profile,
|
user_profile,
|
||||||
target_realm=realm)
|
target_realm=realm)
|
||||||
formatted_link = u"[%s](%s)" % (filename, s3_url)
|
formatted_link = "[%s](%s)" % (filename, s3_url)
|
||||||
attachment_links.append(formatted_link)
|
attachment_links.append(formatted_link)
|
||||||
else:
|
else:
|
||||||
logger.warning("Payload is not bytes (invalid attachment %s in message from %s)." %
|
logger.warning("Payload is not bytes (invalid attachment %s in message from %s)." %
|
||||||
(filename, message.get("From")))
|
(filename, message.get("From")))
|
||||||
|
|
||||||
return u"\n".join(attachment_links)
|
return "\n".join(attachment_links)
|
||||||
|
|
||||||
def extract_and_validate(email: Text) -> Stream:
|
def extract_and_validate(email: Text) -> Stream:
|
||||||
temp = decode_email_address(email)
|
temp = decode_email_address(email)
|
||||||
|
@ -322,7 +322,7 @@ def process_message(message: message.Message, rcpt_to: Optional[Text]=None, pre_
|
||||||
try:
|
try:
|
||||||
subject = encoded_subject.decode(encoding)
|
subject = encoded_subject.decode(encoding)
|
||||||
except (UnicodeDecodeError, LookupError):
|
except (UnicodeDecodeError, LookupError):
|
||||||
subject = u"(unreadable subject)"
|
subject = "(unreadable subject)"
|
||||||
|
|
||||||
debug_info = {}
|
debug_info = {}
|
||||||
|
|
||||||
|
|
|
@ -50,17 +50,17 @@ def hash_util_encode(string: Text) -> Text:
|
||||||
|
|
||||||
def pm_narrow_url(realm: Realm, participants: List[Text]) -> Text:
|
def pm_narrow_url(realm: Realm, participants: List[Text]) -> Text:
|
||||||
participants.sort()
|
participants.sort()
|
||||||
base_url = u"%s/#narrow/pm-with/" % (realm.uri,)
|
base_url = "%s/#narrow/pm-with/" % (realm.uri,)
|
||||||
return base_url + hash_util_encode(",".join(participants))
|
return base_url + hash_util_encode(",".join(participants))
|
||||||
|
|
||||||
def stream_narrow_url(realm: Realm, stream: Text) -> Text:
|
def stream_narrow_url(realm: Realm, stream: Text) -> Text:
|
||||||
base_url = u"%s/#narrow/stream/" % (realm.uri,)
|
base_url = "%s/#narrow/stream/" % (realm.uri,)
|
||||||
return base_url + hash_util_encode(stream)
|
return base_url + hash_util_encode(stream)
|
||||||
|
|
||||||
def topic_narrow_url(realm: Realm, stream: Text, topic: Text) -> Text:
|
def topic_narrow_url(realm: Realm, stream: Text, topic: Text) -> Text:
|
||||||
base_url = u"%s/#narrow/stream/" % (realm.uri,)
|
base_url = "%s/#narrow/stream/" % (realm.uri,)
|
||||||
return u"%s%s/topic/%s" % (base_url, hash_util_encode(stream),
|
return "%s%s/topic/%s" % (base_url, hash_util_encode(stream),
|
||||||
hash_util_encode(topic))
|
hash_util_encode(topic))
|
||||||
|
|
||||||
def relative_to_full_url(base_url: Text, content: Text) -> Text:
|
def relative_to_full_url(base_url: Text, content: Text) -> Text:
|
||||||
# Convert relative URLs to absolute URLs.
|
# Convert relative URLs to absolute URLs.
|
||||||
|
@ -177,23 +177,23 @@ def build_message_list(user_profile: UserProfile, messages: List[Message]) -> Li
|
||||||
def message_header(user_profile: UserProfile, message: Message) -> Dict[str, Any]:
|
def message_header(user_profile: UserProfile, message: Message) -> Dict[str, Any]:
|
||||||
disp_recipient = get_display_recipient(message.recipient)
|
disp_recipient = get_display_recipient(message.recipient)
|
||||||
if message.recipient.type == Recipient.PERSONAL:
|
if message.recipient.type == Recipient.PERSONAL:
|
||||||
header = u"You and %s" % (message.sender.full_name,)
|
header = "You and %s" % (message.sender.full_name,)
|
||||||
html_link = pm_narrow_url(user_profile.realm, [message.sender.email])
|
html_link = pm_narrow_url(user_profile.realm, [message.sender.email])
|
||||||
header_html = u"<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
|
header_html = "<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
|
||||||
elif message.recipient.type == Recipient.HUDDLE:
|
elif message.recipient.type == Recipient.HUDDLE:
|
||||||
assert not isinstance(disp_recipient, Text)
|
assert not isinstance(disp_recipient, Text)
|
||||||
other_recipients = [r['full_name'] for r in disp_recipient
|
other_recipients = [r['full_name'] for r in disp_recipient
|
||||||
if r['email'] != user_profile.email]
|
if r['email'] != user_profile.email]
|
||||||
header = u"You and %s" % (", ".join(other_recipients),)
|
header = "You and %s" % (", ".join(other_recipients),)
|
||||||
html_link = pm_narrow_url(user_profile.realm, [r["email"] for r in disp_recipient
|
html_link = pm_narrow_url(user_profile.realm, [r["email"] for r in disp_recipient
|
||||||
if r["email"] != user_profile.email])
|
if r["email"] != user_profile.email])
|
||||||
header_html = u"<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
|
header_html = "<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
|
||||||
else:
|
else:
|
||||||
assert isinstance(disp_recipient, Text)
|
assert isinstance(disp_recipient, Text)
|
||||||
header = u"%s > %s" % (disp_recipient, message.topic_name())
|
header = "%s > %s" % (disp_recipient, message.topic_name())
|
||||||
stream_link = stream_narrow_url(user_profile.realm, disp_recipient)
|
stream_link = stream_narrow_url(user_profile.realm, disp_recipient)
|
||||||
topic_link = topic_narrow_url(user_profile.realm, disp_recipient, message.subject)
|
topic_link = topic_narrow_url(user_profile.realm, disp_recipient, message.subject)
|
||||||
header_html = u"<a href='%s'>%s</a> > <a href='%s'>%s</a>" % (
|
header_html = "<a href='%s'>%s</a> > <a href='%s'>%s</a>" % (
|
||||||
stream_link, disp_recipient, topic_link, message.subject)
|
stream_link, disp_recipient, topic_link, message.subject)
|
||||||
return {"plain": header,
|
return {"plain": header,
|
||||||
"html": header_html,
|
"html": header_html,
|
||||||
|
@ -317,14 +317,14 @@ def do_send_missedmessage_events_reply_in_zulip(user_profile: UserProfile,
|
||||||
if r['id'] != user_profile.id]
|
if r['id'] != user_profile.id]
|
||||||
context.update({'group_pm': True})
|
context.update({'group_pm': True})
|
||||||
if len(other_recipients) == 2:
|
if len(other_recipients) == 2:
|
||||||
huddle_display_name = u"%s" % (" and ".join(other_recipients))
|
huddle_display_name = "%s" % (" and ".join(other_recipients))
|
||||||
context.update({'huddle_display_name': huddle_display_name})
|
context.update({'huddle_display_name': huddle_display_name})
|
||||||
elif len(other_recipients) == 3:
|
elif len(other_recipients) == 3:
|
||||||
huddle_display_name = u"%s, %s, and %s" % (
|
huddle_display_name = "%s, %s, and %s" % (
|
||||||
other_recipients[0], other_recipients[1], other_recipients[2])
|
other_recipients[0], other_recipients[1], other_recipients[2])
|
||||||
context.update({'huddle_display_name': huddle_display_name})
|
context.update({'huddle_display_name': huddle_display_name})
|
||||||
else:
|
else:
|
||||||
huddle_display_name = u"%s, and %s others" % (
|
huddle_display_name = "%s, and %s others" % (
|
||||||
', '.join(other_recipients[:2]), len(other_recipients) - 2)
|
', '.join(other_recipients[:2]), len(other_recipients) - 2)
|
||||||
context.update({'huddle_display_name': huddle_display_name})
|
context.update({'huddle_display_name': huddle_display_name})
|
||||||
elif (missed_messages[0].recipient.type == Recipient.PERSONAL):
|
elif (missed_messages[0].recipient.type == Recipient.PERSONAL):
|
||||||
|
@ -481,5 +481,5 @@ def convert_html_to_markdown(html: Text) -> Text:
|
||||||
# ugly. Run a regex over the resulting description, turning links of the
|
# ugly. Run a regex over the resulting description, turning links of the
|
||||||
# form `![](http://foo.com/image.png?12345)` into
|
# form `![](http://foo.com/image.png?12345)` into
|
||||||
# `[image.png](http://foo.com/image.png)`.
|
# `[image.png](http://foo.com/image.png)`.
|
||||||
return re.sub(u"!\\[\\]\\((\\S*)/(\\S*)\\?(\\S*)\\)",
|
return re.sub("!\\[\\]\\((\\S*)/(\\S*)\\?(\\S*)\\)",
|
||||||
u"[\\2](\\1/\\2)", markdown)
|
"[\\2](\\1/\\2)", markdown)
|
||||||
|
|
|
@ -14,6 +14,6 @@ def get_realm_icon_url(realm: Realm) -> Text:
|
||||||
return upload_backend.get_realm_icon_url(realm.id, realm.icon_version)
|
return upload_backend.get_realm_icon_url(realm.id, realm.icon_version)
|
||||||
elif settings.ENABLE_GRAVATAR:
|
elif settings.ENABLE_GRAVATAR:
|
||||||
hash_key = gravatar_hash(realm.string_id)
|
hash_key = gravatar_hash(realm.string_id)
|
||||||
return u"https://secure.gravatar.com/avatar/%s?d=identicon" % (hash_key,)
|
return "https://secure.gravatar.com/avatar/%s?d=identicon" % (hash_key,)
|
||||||
else:
|
else:
|
||||||
return settings.DEFAULT_AVATAR_URI+'?version=0'
|
return settings.DEFAULT_AVATAR_URI+'?version=0'
|
||||||
|
|
|
@ -74,7 +74,7 @@ class ModelReprMixin:
|
||||||
def __unicode__(self) -> Text:
|
def __unicode__(self) -> Text:
|
||||||
# Originally raised an exception, but Django (e.g. the ./manage.py shell)
|
# Originally raised an exception, but Django (e.g. the ./manage.py shell)
|
||||||
# was catching the exception and not displaying any sort of error
|
# was catching the exception and not displaying any sort of error
|
||||||
return u"Implement __unicode__ in your subclass of ModelReprMixin!"
|
return "Implement __unicode__ in your subclass of ModelReprMixin!"
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return force_str(self.__unicode__())
|
return force_str(self.__unicode__())
|
||||||
|
|
|
@ -312,7 +312,7 @@ class S3UploadBackend(ZulipUploadBackend):
|
||||||
bucket = settings.S3_AVATAR_BUCKET
|
bucket = settings.S3_AVATAR_BUCKET
|
||||||
medium_suffix = "-medium.png" if medium else ""
|
medium_suffix = "-medium.png" if medium else ""
|
||||||
# ?x=x allows templates to append additional parameters with &s
|
# ?x=x allows templates to append additional parameters with &s
|
||||||
return u"https://%s.s3.amazonaws.com/%s%s?x=x" % (bucket, hash_key, medium_suffix)
|
return "https://%s.s3.amazonaws.com/%s%s?x=x" % (bucket, hash_key, medium_suffix)
|
||||||
|
|
||||||
def upload_realm_icon_image(self, icon_file: File, user_profile: UserProfile) -> None:
|
def upload_realm_icon_image(self, icon_file: File, user_profile: UserProfile) -> None:
|
||||||
content_type = guess_type(icon_file.name)[0]
|
content_type = guess_type(icon_file.name)[0]
|
||||||
|
@ -342,7 +342,7 @@ class S3UploadBackend(ZulipUploadBackend):
|
||||||
def get_realm_icon_url(self, realm_id: int, version: int) -> Text:
|
def get_realm_icon_url(self, realm_id: int, version: int) -> Text:
|
||||||
bucket = settings.S3_AVATAR_BUCKET
|
bucket = settings.S3_AVATAR_BUCKET
|
||||||
# ?x=x allows templates to append additional parameters with &s
|
# ?x=x allows templates to append additional parameters with &s
|
||||||
return u"https://%s.s3.amazonaws.com/%s/realm/icon.png?version=%s" % (bucket, realm_id, version)
|
return "https://%s.s3.amazonaws.com/%s/realm/icon.png?version=%s" % (bucket, realm_id, version)
|
||||||
|
|
||||||
def ensure_medium_avatar_image(self, user_profile: UserProfile) -> None:
|
def ensure_medium_avatar_image(self, user_profile: UserProfile) -> None:
|
||||||
file_path = user_avatar_path(user_profile)
|
file_path = user_avatar_path(user_profile)
|
||||||
|
@ -393,7 +393,7 @@ class S3UploadBackend(ZulipUploadBackend):
|
||||||
bucket = settings.S3_AVATAR_BUCKET
|
bucket = settings.S3_AVATAR_BUCKET
|
||||||
emoji_path = RealmEmoji.PATH_ID_TEMPLATE.format(realm_id=realm_id,
|
emoji_path = RealmEmoji.PATH_ID_TEMPLATE.format(realm_id=realm_id,
|
||||||
emoji_file_name=emoji_file_name)
|
emoji_file_name=emoji_file_name)
|
||||||
return u"https://%s.s3.amazonaws.com/%s" % (bucket, emoji_path)
|
return "https://%s.s3.amazonaws.com/%s" % (bucket, emoji_path)
|
||||||
|
|
||||||
|
|
||||||
### Local
|
### Local
|
||||||
|
@ -455,7 +455,7 @@ class LocalUploadBackend(ZulipUploadBackend):
|
||||||
def get_avatar_url(self, hash_key: Text, medium: bool=False) -> Text:
|
def get_avatar_url(self, hash_key: Text, medium: bool=False) -> Text:
|
||||||
# ?x=x allows templates to append additional parameters with &s
|
# ?x=x allows templates to append additional parameters with &s
|
||||||
medium_suffix = "-medium" if medium else ""
|
medium_suffix = "-medium" if medium else ""
|
||||||
return u"/user_avatars/%s%s.png?x=x" % (hash_key, medium_suffix)
|
return "/user_avatars/%s%s.png?x=x" % (hash_key, medium_suffix)
|
||||||
|
|
||||||
def upload_realm_icon_image(self, icon_file: File, user_profile: UserProfile) -> None:
|
def upload_realm_icon_image(self, icon_file: File, user_profile: UserProfile) -> None:
|
||||||
upload_path = os.path.join('avatars', str(user_profile.realm.id), 'realm')
|
upload_path = os.path.join('avatars', str(user_profile.realm.id), 'realm')
|
||||||
|
@ -471,7 +471,7 @@ class LocalUploadBackend(ZulipUploadBackend):
|
||||||
|
|
||||||
def get_realm_icon_url(self, realm_id: int, version: int) -> Text:
|
def get_realm_icon_url(self, realm_id: int, version: int) -> Text:
|
||||||
# ?x=x allows templates to append additional parameters with &s
|
# ?x=x allows templates to append additional parameters with &s
|
||||||
return u"/user_avatars/%s/realm/icon.png?version=%s" % (realm_id, version)
|
return "/user_avatars/%s/realm/icon.png?version=%s" % (realm_id, version)
|
||||||
|
|
||||||
def ensure_medium_avatar_image(self, user_profile: UserProfile) -> None:
|
def ensure_medium_avatar_image(self, user_profile: UserProfile) -> None:
|
||||||
file_path = user_avatar_path(user_profile)
|
file_path = user_avatar_path(user_profile)
|
||||||
|
@ -505,7 +505,7 @@ class LocalUploadBackend(ZulipUploadBackend):
|
||||||
|
|
||||||
def get_emoji_url(self, emoji_file_name: Text, realm_id: int) -> Text:
|
def get_emoji_url(self, emoji_file_name: Text, realm_id: int) -> Text:
|
||||||
return os.path.join(
|
return os.path.join(
|
||||||
u"/user_avatars",
|
"/user_avatars",
|
||||||
RealmEmoji.PATH_ID_TEMPLATE.format(realm_id=realm_id, emoji_file_name=emoji_file_name))
|
RealmEmoji.PATH_ID_TEMPLATE.format(realm_id=realm_id, emoji_file_name=emoji_file_name))
|
||||||
|
|
||||||
# Common and wrappers
|
# Common and wrappers
|
||||||
|
|
|
@ -7,46 +7,46 @@ EMPTY_SHA = '0000000000000000000000000000000000000000'
|
||||||
|
|
||||||
COMMITS_LIMIT = 20
|
COMMITS_LIMIT = 20
|
||||||
COMMIT_ROW_TEMPLATE = '* {commit_msg} ([{commit_short_sha}]({commit_url}))\n'
|
COMMIT_ROW_TEMPLATE = '* {commit_msg} ([{commit_short_sha}]({commit_url}))\n'
|
||||||
COMMITS_MORE_THAN_LIMIT_TEMPLATE = u"[and {commits_number} more commit(s)]"
|
COMMITS_MORE_THAN_LIMIT_TEMPLATE = "[and {commits_number} more commit(s)]"
|
||||||
COMMIT_OR_COMMITS = u"commit{}"
|
COMMIT_OR_COMMITS = "commit{}"
|
||||||
|
|
||||||
PUSH_PUSHED_TEXT_WITH_URL = u"[pushed]({compare_url}) {number_of_commits} {commit_or_commits}"
|
PUSH_PUSHED_TEXT_WITH_URL = "[pushed]({compare_url}) {number_of_commits} {commit_or_commits}"
|
||||||
PUSH_PUSHED_TEXT_WITHOUT_URL = u"pushed {number_of_commits} {commit_or_commits}"
|
PUSH_PUSHED_TEXT_WITHOUT_URL = "pushed {number_of_commits} {commit_or_commits}"
|
||||||
|
|
||||||
PUSH_COMMITS_BASE = '{user_name} {pushed_text} to branch {branch_name}.'
|
PUSH_COMMITS_BASE = '{user_name} {pushed_text} to branch {branch_name}.'
|
||||||
PUSH_COMMITS_MESSAGE_TEMPLATE_WITH_COMMITTERS = PUSH_COMMITS_BASE + u""" {committers_details}.
|
PUSH_COMMITS_MESSAGE_TEMPLATE_WITH_COMMITTERS = PUSH_COMMITS_BASE + """ {committers_details}.
|
||||||
|
|
||||||
{commits_data}
|
{commits_data}
|
||||||
"""
|
"""
|
||||||
PUSH_COMMITS_MESSAGE_TEMPLATE_WITHOUT_COMMITTERS = PUSH_COMMITS_BASE + u"""
|
PUSH_COMMITS_MESSAGE_TEMPLATE_WITHOUT_COMMITTERS = PUSH_COMMITS_BASE + """
|
||||||
|
|
||||||
{commits_data}
|
{commits_data}
|
||||||
"""
|
"""
|
||||||
PUSH_DELETE_BRANCH_MESSAGE_TEMPLATE = u"{user_name} [deleted]({compare_url}) the branch {branch_name}."
|
PUSH_DELETE_BRANCH_MESSAGE_TEMPLATE = "{user_name} [deleted]({compare_url}) the branch {branch_name}."
|
||||||
PUSH_LOCAL_BRANCH_WITHOUT_COMMITS_MESSAGE_TEMPLATE = (u"{user_name} [pushed]({compare_url}) "
|
PUSH_LOCAL_BRANCH_WITHOUT_COMMITS_MESSAGE_TEMPLATE = ("{user_name} [pushed]({compare_url}) "
|
||||||
"the branch {branch_name}.")
|
"the branch {branch_name}.")
|
||||||
PUSH_COMMITS_MESSAGE_EXTENSION = u"Commits by {}"
|
PUSH_COMMITS_MESSAGE_EXTENSION = "Commits by {}"
|
||||||
PUSH_COMMITTERS_LIMIT_INFO = 3
|
PUSH_COMMITTERS_LIMIT_INFO = 3
|
||||||
|
|
||||||
FORCE_PUSH_COMMITS_MESSAGE_TEMPLATE = (u"{user_name} [force pushed]({url}) "
|
FORCE_PUSH_COMMITS_MESSAGE_TEMPLATE = ("{user_name} [force pushed]({url}) "
|
||||||
"to branch {branch_name}. Head is now {head}")
|
"to branch {branch_name}. Head is now {head}")
|
||||||
CREATE_BRANCH_MESSAGE_TEMPLATE = u"{user_name} created [{branch_name}]({url}) branch"
|
CREATE_BRANCH_MESSAGE_TEMPLATE = "{user_name} created [{branch_name}]({url}) branch"
|
||||||
REMOVE_BRANCH_MESSAGE_TEMPLATE = u"{user_name} deleted branch {branch_name}"
|
REMOVE_BRANCH_MESSAGE_TEMPLATE = "{user_name} deleted branch {branch_name}"
|
||||||
|
|
||||||
PULL_REQUEST_OR_ISSUE_MESSAGE_TEMPLATE = u"{user_name} {action} [{type}{id}]({url})"
|
PULL_REQUEST_OR_ISSUE_MESSAGE_TEMPLATE = "{user_name} {action} [{type}{id}]({url})"
|
||||||
PULL_REQUEST_OR_ISSUE_ASSIGNEE_INFO_TEMPLATE = u"(assigned to {assignee})"
|
PULL_REQUEST_OR_ISSUE_ASSIGNEE_INFO_TEMPLATE = "(assigned to {assignee})"
|
||||||
PULL_REQUEST_BRANCH_INFO_TEMPLATE = u"\nfrom `{target}` to `{base}`"
|
PULL_REQUEST_BRANCH_INFO_TEMPLATE = "\nfrom `{target}` to `{base}`"
|
||||||
|
|
||||||
SETUP_MESSAGE_TEMPLATE = u"{integration} webhook has been successfully configured"
|
SETUP_MESSAGE_TEMPLATE = "{integration} webhook has been successfully configured"
|
||||||
SETUP_MESSAGE_USER_PART = u" by {user_name}"
|
SETUP_MESSAGE_USER_PART = " by {user_name}"
|
||||||
|
|
||||||
CONTENT_MESSAGE_TEMPLATE = u"\n~~~ quote\n{message}\n~~~"
|
CONTENT_MESSAGE_TEMPLATE = "\n~~~ quote\n{message}\n~~~"
|
||||||
|
|
||||||
COMMITS_COMMENT_MESSAGE_TEMPLATE = u"{user_name} {action} on [{sha}]({url})"
|
COMMITS_COMMENT_MESSAGE_TEMPLATE = "{user_name} {action} on [{sha}]({url})"
|
||||||
|
|
||||||
PUSH_TAGS_MESSAGE_TEMPLATE = u"""{user_name} {action} tag {tag}"""
|
PUSH_TAGS_MESSAGE_TEMPLATE = """{user_name} {action} tag {tag}"""
|
||||||
TAG_WITH_URL_TEMPLATE = u"[{tag_name}]({tag_url})"
|
TAG_WITH_URL_TEMPLATE = "[{tag_name}]({tag_url})"
|
||||||
TAG_WITHOUT_URL_TEMPLATE = u"{tag_name}"
|
TAG_WITHOUT_URL_TEMPLATE = "{tag_name}"
|
||||||
|
|
||||||
|
|
||||||
def get_push_commits_event_message(user_name: Text, compare_url: Optional[Text],
|
def get_push_commits_event_message(user_name: Text, compare_url: Optional[Text],
|
||||||
|
|
Loading…
Reference in New Issue