From d7eb794c3e59e42aeafe9244fd3cceaa6c6a5544 Mon Sep 17 00:00:00 2001 From: morvanzhou Date: Fri, 13 Sep 2024 21:10:17 +0800 Subject: [PATCH] feat(app): - add email service - fix security problem --- src/retk/core/account/app_captcha.py | 6 +++--- src/retk/core/account/email.py | 6 +++--- src/retk/core/utils/cached_verification.py | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/retk/core/account/app_captcha.py b/src/retk/core/account/app_captcha.py index 0155eac..27c2659 100644 --- a/src/retk/core/account/app_captcha.py +++ b/src/retk/core/account/app_captcha.py @@ -1,8 +1,8 @@ -from collections import OrderedDict +from collections import OrderedDict as OD from datetime import datetime from io import BytesIO from random import choices -from typing import Tuple, Dict +from typing import Tuple, Dict, OrderedDict from captcha.audio import AudioCaptcha from captcha.image import ImageCaptcha @@ -19,7 +19,7 @@ alphabet_len = len(alphabet) code_idx_range = list(range(0, alphabet_len - 1)) -cache_captcha: OrderedDict[str, Tuple[datetime, str]] = OrderedDict() +cache_captcha: OrderedDict[str, Tuple[datetime, str]] = OD() def generate(length: int = 4, sound: bool = False) -> Tuple[str, Dict[str, BytesIO]]: diff --git a/src/retk/core/account/email.py b/src/retk/core/account/email.py index a0f543e..8cf27ca 100644 --- a/src/retk/core/account/email.py +++ b/src/retk/core/account/email.py @@ -1,6 +1,6 @@ -from collections import OrderedDict +from collections import OrderedDict as OD from datetime import datetime -from typing import List, Dict, Tuple +from typing import List, Dict, Tuple, OrderedDict from retk import const, config, regex, utils from retk.core import scheduler @@ -64,7 +64,7 @@ def _send(self, recipients: List[str], subject: str, template_id: int, values: D email_server = EmailServer() -cache_email: OrderedDict[str, Tuple[datetime, str]] = OrderedDict() +cache_email: OrderedDict[str, Tuple[datetime, str]] = OD() def encode_number(number: str, expired_min: int) -> str: diff --git a/src/retk/core/utils/cached_verification.py b/src/retk/core/utils/cached_verification.py index 0a4ed66..bc6f962 100644 --- a/src/retk/core/utils/cached_verification.py +++ b/src/retk/core/utils/cached_verification.py @@ -1,6 +1,5 @@ -from collections import OrderedDict from datetime import timedelta, datetime -from typing import Tuple +from typing import Tuple, OrderedDict from retk import const from retk.utils.auth import short_uuid