Add support for regexes for user agents

This commit is contained in:
2025-10-02 19:52:45 -04:00
parent 8a2d2c9453
commit a6aa9b180e
2 changed files with 8 additions and 2 deletions

View File

@@ -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)

View File

@@ -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):