diff --git a/ai_blocker/middleware.py b/ai_blocker/middleware.py index 2d5eb5a..7447a52 100644 --- a/ai_blocker/middleware.py +++ b/ai_blocker/middleware.py @@ -25,9 +25,8 @@ class AiBlockerMiddleware: async def __call__(self, request): ua = request.headers.get("User-Agent", "") - blocked_headers = self.backer.get_ua_list() - if ua in blocked_headers: + if ua in self.backer: return HttpResponse(status=403) response = self.get_response(request) diff --git a/ai_blocker/ualist_backers.py b/ai_blocker/ualist_backers.py index 46019c9..d257e3a 100644 --- a/ai_blocker/ualist_backers.py +++ b/ai_blocker/ualist_backers.py @@ -1,3 +1,5 @@ +import re + from abc import ABC, abstractmethod from django.conf import settings @@ -9,6 +11,11 @@ class UAList(ABC): def get_ua_list(self) -> list[str]: raise NotImplemented + def __contains__(self, item): + list = self.get_ua_list() + pattern = "|".join(list) + return re.search(pattern, item) is not None + class ConfigBackedUAList(UAList):