anonstream/anonstream/utils/chat.py

33 行
828 B
Python
Raw 通常表示 履歴

2022-06-16 10:12:37 +09:00
# SPDX-FileCopyrightText: 2022 n9k <https://git.076.ne.jp/ninya9k>
2022-03-07 23:51:59 +09:00
# SPDX-License-Identifier: AGPL-3.0-or-later
import base64
import hashlib
import math
import re
import secrets
from functools import lru_cache
from quart import escape
class NonceReuse(Exception):
pass
def generate_nonce():
return secrets.token_urlsafe(16)
def get_message_for_websocket(user, message):
2022-02-18 10:32:34 +09:00
message_keys = ('seq', 'date', 'time_minutes', 'time_seconds', 'markup')
user_keys = ('token_hash',)
return {
**{key: message[key] for key in message_keys},
**{key: user[key] for key in user_keys},
}
def get_approx_linespan(text):
def height(line):
return math.ceil(len(line) / 48)
linespan = sum(map(height, text.splitlines()))
linespan = linespan if linespan > 0 else 1
return linespan