xiaolv's picture
Duplicate from xiaolv/new-bings-news
91525e6
raw
history blame
974 Bytes
import json
import locale
import random
import sys
from typing import Union
from .constants import DELIMITER
from .locale import LocationHint
def append_identifier(msg: dict) -> str:
# Convert dict to json string
return json.dumps(msg, ensure_ascii=False) + DELIMITER
def get_ran_hex(length: int = 32) -> str:
return "".join(random.choice("0123456789abcdef") for _ in range(length))
def get_location_hint_from_locale(locale: str) -> Union[dict, None]:
locale = locale.lower()
if locale == "en-gb":
hint = LocationHint.UK.value
elif locale == "en-ie":
hint = LocationHint.EU.value
elif locale == "zh-cn":
hint = LocationHint.CHINA.value
else:
hint = LocationHint.USA.value
return hint.get("LocationHint")
def guess_locale() -> str:
if sys.platform.startswith("win"):
return "en-us"
loc, _ = locale.getlocale()
if not loc:
return "en-us"
return loc.replace("_", "-")