Add support for regexes for user agents
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user