From 9c49128eda1c74d005544c5259ef8d91fd996cf0 Mon Sep 17 00:00:00 2001 From: Aura Date: Mon, 4 Apr 2022 23:34:09 +0800 Subject: [PATCH] ban yellow nazi, more strict! --- yyetsweb/database.py | 2 +- yyetsweb/handler.py | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/yyetsweb/database.py b/yyetsweb/database.py index 80ef196..aa5df72 100644 --- a/yyetsweb/database.py +++ b/yyetsweb/database.py @@ -97,7 +97,7 @@ class AntiCrawler: count = 1 # ban rule: (count-10)*600 if count > 10: - ex = (count - 10) * 3600 + ex = (count - 10) * 600 else: ex = None con.r.set(ip, count, ex) diff --git a/yyetsweb/handler.py b/yyetsweb/handler.py index 0f8db07..d10d7c8 100644 --- a/yyetsweb/handler.py +++ b/yyetsweb/handler.py @@ -25,7 +25,7 @@ from http import HTTPStatus import filetype from tornado import escape, gen, web from tornado.concurrent import run_on_executor - +from Mongo import Mongo from database import AntiCrawler, CaptchaResource, Redis escape.json_encode = lambda value: json.dumps(value, ensure_ascii=False) @@ -52,6 +52,14 @@ class BaseHandler(web.RequestHandler): with contextlib.suppress(ValueError): self.json: dict = json.loads(self.request.body) self.instance = getattr(self.adapter_module, self.class_name)() + self.db = Mongo() + self.ban_yellow_nazi() + + def ban_yellow_nazi(self): + if self.db.is_user_blocked(self.get_current_user()): + self.set_status(HTTPStatus.FORBIDDEN, "You don't deserve it.") + real_ip = AntiCrawler(self).get_real_ip() + AntiCrawler(self).imprisonment(real_ip) def write_error(self, status_code, **kwargs): if status_code in [HTTPStatus.FORBIDDEN,