fix some errors from glitchtip

This commit is contained in:
Benny
2023-04-26 19:44:28 +02:00
parent 88f3b35902
commit 1e0921d11a
6 changed files with 36 additions and 29 deletions

View File

@@ -8,7 +8,7 @@ pymongo==4.3.3
tornado==6.3.1 tornado==6.3.1
captcha==0.4 captcha==0.4
passlib==1.7.4 passlib==1.7.4
fakeredis==2.11.0 fakeredis==2.11.1
filetype==1.2.0 filetype==1.2.0
requests[socks] requests[socks]
tqdm==4.65.0 tqdm==4.65.0

View File

@@ -34,3 +34,23 @@ class OAuthRegister(Mongo):
"message": "第三方登录成功,即将跳转首页", "message": "第三方登录成功,即将跳转首页",
"username": username, "username": username,
} }
class GitHubOAuth2Login(OAuthRegister):
pass
class MSOAuth2Login:
pass
class GoogleOAuth2Login:
pass
class TwitterOAuth2Login:
pass
class FacebookAuth2Login:
pass

View File

@@ -27,9 +27,7 @@ class Like(Mongo):
def add_remove_fav(self, resource_id: int, username: str) -> dict: def add_remove_fav(self, resource_id: int, username: str) -> dict:
returned = {"status_code": 0, "message": ""} returned = {"status_code": 0, "message": ""}
like_list: list = ( like_list: list = self.db["users"].find_one({"username": username}).get("like", [])
self.db["users"].find_one({"username": username}).get("like", [])
)
if resource_id in like_list: if resource_id in like_list:
returned["status_code"] = HTTPStatus.OK returned["status_code"] = HTTPStatus.OK
returned["message"] = "已取消收藏" returned["message"] = "已取消收藏"
@@ -136,9 +134,7 @@ class User(Mongo, Redis):
valid_data[field] = data[field] valid_data[field] = data[field]
email_regex = r"@gmail\.com|@outlook\.com|@qq\.com|@163\.com" email_regex = r"@gmail\.com|@outlook\.com|@qq\.com|@163\.com"
if valid_data.get("email") and not re.findall( if valid_data.get("email") and not re.findall(email_regex, valid_data.get("email"), re.IGNORECASE):
email_regex, valid_data.get("email"), re.IGNORECASE
):
return { return {
"status_code": HTTPStatus.BAD_REQUEST, "status_code": HTTPStatus.BAD_REQUEST,
"status": False, "status": False,
@@ -159,10 +155,7 @@ class User(Mongo, Redis):
valid_data["email"] = {"verified": False, "address": user_email} valid_data["email"] = {"verified": False, "address": user_email}
# send email confirm # send email confirm
subject = "[人人影视下载分享站] 请验证你的邮箱" subject = "[人人影视下载分享站] 请验证你的邮箱"
text = ( text = f"请输入如下验证码完成你的邮箱认证。验证码有效期为24小时。<br>" f"如果您未有此请求,请忽略此邮件。<br><br>验证码: {verify_code}"
f"请输入如下验证码完成你的邮箱认证。验证码有效期为24小时。<br>"
f"如果您未有此请求,请忽略此邮件。<br><br>验证码: {verify_code}"
)
context = {"username": username, "text": text} context = {"username": username, "text": text}
send_mail(user_email, subject, context) send_mail(user_email, subject, context)
# 发送成功才设置缓存 # 发送成功才设置缓存
@@ -180,9 +173,7 @@ class User(Mongo, Redis):
class UserAvatar(User, Mongo): class UserAvatar(User, Mongo):
def add_avatar(self, username, avatar): def add_avatar(self, username, avatar):
self.db["users"].update_one( self.db["users"].update_one({"username": username}, {"$set": {"avatar": avatar}})
{"username": username}, {"$set": {"avatar": avatar}}
)
return {"status_code": HTTPStatus.CREATED, "message": "头像上传成功"} return {"status_code": HTTPStatus.CREATED, "message": "头像上传成功"}
@@ -215,9 +206,7 @@ class UserEmail(Mongo):
if correct_code == code: if correct_code == code:
r.expire(email, 0) r.expire(email, 0)
r.expire(f"timeout-{email}", 0) r.expire(f"timeout-{email}", 0)
self.db["users"].update_one( self.db["users"].update_one({"username": username}, {"$set": {"email.verified": True}})
{"username": username}, {"$set": {"email.verified": True}}
)
return { return {
"status": True, "status": True,
"status_code": HTTPStatus.CREATED, "status_code": HTTPStatus.CREATED,

View File

@@ -19,14 +19,14 @@ class CommentHandler(BaseHandler):
def hide_phone(data: list): def hide_phone(data: list):
for item in data: for item in data:
if item["username"].isdigit() and len(item["username"]) == 11: if item["username"].isdigit() and len(item["username"]) == 11:
item["username"] = re.sub( item["username"] = re.sub(r"(\d{3})\d{4}(\d{4})", r"\g<1>****\g<2>", item["username"])
r"(\d{3})\d{4}(\d{4})", r"\g<1>****\g<2>", item["username"]
)
return data return data
@run_on_executor() @run_on_executor()
def get_comment(self): def get_comment(self):
resource_id = int(self.get_argument("resource_id", "0")) query_id = self.get_argument("resource_id", "0")
resource_id = int(query_id) if query_id.isdigit() else 0
size = int(self.get_argument("size", "5")) size = int(self.get_argument("size", "5"))
page = int(self.get_argument("page", "1")) page = int(self.get_argument("page", "1"))
inner_size = int(self.get_argument("inner_size", "3")) inner_size = int(self.get_argument("inner_size", "3"))

View File

@@ -19,7 +19,9 @@ class DoubanHandler(BaseHandler):
def douban_data(self): def douban_data(self):
rid = self.get_query_argument("resource_id") rid = self.get_query_argument("resource_id")
data = self.instance.get_douban_data(int(rid)) data = self.instance.get_douban_data(int(rid))
data.pop("posterData") data.pop("posterData", None)
if not data:
self.set_status(HTTPStatus.NOT_FOUND)
return data return data
def get_image(self) -> bytes: def get_image(self) -> bytes:
@@ -52,14 +54,10 @@ class DoubanReportHandler(BaseHandler):
captcha_id = data["id"] captcha_id = data["id"]
content = data["content"] content = data["content"]
resource_id = data["resource_id"] resource_id = data["resource_id"]
returned = self.instance.report_error( returned = self.instance.report_error(user_captcha, captcha_id, content, resource_id)
user_captcha, captcha_id, content, resource_id
)
status_code = returned.get("status_code", HTTPStatus.CREATED) status_code = returned.get("status_code", HTTPStatus.CREATED)
self.set_status(status_code) self.set_status(status_code)
return self.instance.report_error( return self.instance.report_error(user_captcha, captcha_id, content, resource_id)
user_captcha, captcha_id, content, resource_id
)
@gen.coroutine @gen.coroutine
def post(self): def post(self):

View File

@@ -20,7 +20,7 @@ class MetricsHandler(BaseHandler):
@run_on_executor() @run_on_executor()
def set_metrics(self): def set_metrics(self):
payload = self.json payload = self.json
metrics_type = payload["type"] metrics_type = payload.get("type", self.get_query_argument("type", "unknown"))
self.instance.set_metrics(metrics_type) self.instance.set_metrics(metrics_type)
self.set_status(HTTPStatus.CREATED) self.set_status(HTTPStatus.CREATED)