21 lines
743 B
Python
21 lines
743 B
Python
from backend.services.common.constants import UserRegion
|
|
from backend.services.profile.models import BasicProfileDoc
|
|
|
|
|
|
class RegionHandler:
|
|
def __init__(self):
|
|
self._zh_cn_patterns = [".cn", "cn.", "host"]
|
|
|
|
def detect_from_host(self, host: str) -> UserRegion:
|
|
# Now we set user preferred region based on host
|
|
for parttern in self._zh_cn_patterns:
|
|
if parttern in host.lower():
|
|
return UserRegion.ZH_CN
|
|
return UserRegion.OTHER
|
|
|
|
async def get_user_region(self, user_id: str) -> UserRegion:
|
|
user_profile = await BasicProfileDoc.find_one(
|
|
BasicProfileDoc.user_id == user_id
|
|
)
|
|
return user_profile.region if user_profile else UserRegion.OTHER
|