mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 23:13:25 +00:00
python3: Add missing utf-8 encoding/decoding in various places.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
import codecs
|
||||||
import markdown
|
import markdown
|
||||||
import logging
|
import logging
|
||||||
import traceback
|
import traceback
|
||||||
@@ -242,9 +243,11 @@ class InlineHttpsProcessor(markdown.treeprocessors.Treeprocessor):
|
|||||||
if not url.startswith("http://"):
|
if not url.startswith("http://"):
|
||||||
# Don't rewrite images on our own site (e.g. emoji).
|
# Don't rewrite images on our own site (e.g. emoji).
|
||||||
continue
|
continue
|
||||||
digest = hmac.new(settings.CAMO_KEY, url, hashlib.sha1).hexdigest()
|
encoded_url = url.encode("utf-8")
|
||||||
encoded_url = url.encode("hex")
|
encoded_camo_key = settings.CAMO_KEY.encode("utf-8")
|
||||||
img.set("src", "%s%s/%s" % (settings.CAMO_URI, digest, encoded_url))
|
digest = hmac.new(encoded_camo_key, encoded_url, hashlib.sha1).hexdigest()
|
||||||
|
hex_encoded_url = codecs.encode(encoded_url, "hex")
|
||||||
|
img.set("src", "%s%s/%s" % (settings.CAMO_URI, digest, hex_encoded_url))
|
||||||
|
|
||||||
class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor):
|
class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor):
|
||||||
TWITTER_MAX_IMAGE_HEIGHT = 400
|
TWITTER_MAX_IMAGE_HEIGHT = 400
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ from six.moves import range
|
|||||||
|
|
||||||
def random_api_key():
|
def random_api_key():
|
||||||
choices = string.ascii_letters + string.digits
|
choices = string.ascii_letters + string.digits
|
||||||
altchars = ''.join([choices[ord(os.urandom(1)) % 62] for _ in range(2)])
|
altchars = ''.join([choices[ord(os.urandom(1)) % 62] for _ in range(2)]).encode("utf-8")
|
||||||
return base64.b64encode(os.urandom(24), altchars=altchars)
|
return base64.b64encode(os.urandom(24), altchars=altchars).decode("utf-8")
|
||||||
|
|
||||||
# create_user_profile is based on Django's User.objects.create_user,
|
# create_user_profile is based on Django's User.objects.create_user,
|
||||||
# except that we don't save to the database so it can used in
|
# except that we don't save to the database so it can used in
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ def initial_password(email):
|
|||||||
created by populate_db."""
|
created by populate_db."""
|
||||||
|
|
||||||
if settings.INITIAL_PASSWORD_SALT is not None:
|
if settings.INITIAL_PASSWORD_SALT is not None:
|
||||||
digest = hashlib.sha256(settings.INITIAL_PASSWORD_SALT + email).digest()
|
encoded_key = (settings.INITIAL_PASSWORD_SALT + email).encode("utf-8")
|
||||||
|
digest = hashlib.sha256(encoded_key).digest()
|
||||||
return base64.b64encode(digest)[:16]
|
return base64.b64encode(digest)[:16]
|
||||||
else:
|
else:
|
||||||
# None as a password for a user tells Django to set an unusable password
|
# None as a password for a user tells Django to set an unusable password
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ def write_log_line(log_data, path, method, remote_ip, email, client_name,
|
|||||||
# Remove non-ascii chars from path (there should be none, if there are it's
|
# Remove non-ascii chars from path (there should be none, if there are it's
|
||||||
# because someone manually entered a nonexistant path), as UTF-8 chars make
|
# because someone manually entered a nonexistant path), as UTF-8 chars make
|
||||||
# statsd sad when it sends the key name over the socket
|
# statsd sad when it sends the key name over the socket
|
||||||
statsd_path = statsd_path.encode('ascii', errors='ignore')
|
statsd_path = statsd_path.encode('ascii', errors='ignore').decode("ascii")
|
||||||
blacklisted_requests = ['do_confirm', 'send_confirm',
|
blacklisted_requests = ['do_confirm', 'send_confirm',
|
||||||
'eventslast_event_id', 'webreq.content', 'avatar', 'user_uploads',
|
'eventslast_event_id', 'webreq.content', 'avatar', 'user_uploads',
|
||||||
'password.reset', 'static', 'json.bots', 'json.users', 'json.streams',
|
'password.reset', 'static', 'json.bots', 'json.users', 'json.streams',
|
||||||
|
|||||||
@@ -664,10 +664,10 @@ def linebreak(string):
|
|||||||
return string.replace('\n\n', '<p/>').replace('\n', '<br/>')
|
return string.replace('\n\n', '<p/>').replace('\n', '<br/>')
|
||||||
|
|
||||||
def extract_message_dict(message_str):
|
def extract_message_dict(message_str):
|
||||||
return ujson.loads(zlib.decompress(message_str))
|
return ujson.loads(zlib.decompress(message_str).decode("utf-8"))
|
||||||
|
|
||||||
def stringify_message_dict(message_dict):
|
def stringify_message_dict(message_dict):
|
||||||
return zlib.compress(ujson.dumps(message_dict))
|
return zlib.compress(ujson.dumps(message_dict).encode("utf-8"))
|
||||||
|
|
||||||
def to_dict_cache_key_id(message_id, apply_markdown):
|
def to_dict_cache_key_id(message_id, apply_markdown):
|
||||||
return 'message_dict:%d:%d' % (message_id, apply_markdown)
|
return 'message_dict:%d:%d' % (message_id, apply_markdown)
|
||||||
|
|||||||
Reference in New Issue
Block a user