diff --git a/onioningestor/onion.py b/onioningestor/onion.py index 8e814ee..aa56a3e 100644 --- a/onioningestor/onion.py +++ b/onioningestor/onion.py @@ -1,3 +1,5 @@ +import re +import operator from datetime import datetime as dt class Onion(object): @@ -12,6 +14,16 @@ class Onion(object): self.datetime = dt.now() self.operators = {} + url = property(operator.attrgetter('_url')) + + @url.setter + def url(self, domain): + onion_pattern = re.compile(r'([a-z2-7]{16,56}\.onion)') + if onion_pattern.match(domain): + self._url = domain + else: + raise Exception("Onion domain pattern does not match") + def set_operator(self, response): self.operators.update(response) diff --git a/onioningestor/operators/__init__.py b/onioningestor/operators/__init__.py index 574ac55..6aa6201 100644 --- a/onioningestor/operators/__init__.py +++ b/onioningestor/operators/__init__.py @@ -113,7 +113,7 @@ class Operator: type='domain', status='offline', monitor=False, - denylist=False))) + denylist=""))) def process(self, onion): """Process all applicable onions.""" diff --git a/onioningestor/sources/simplefile.py b/onioningestor/sources/simplefile.py index 6c420b4..8442066 100644 --- a/onioningestor/sources/simplefile.py +++ b/onioningestor/sources/simplefile.py @@ -38,7 +38,7 @@ class Plugin(Source): type='domain', status='offline', monitor=False, - denylist=False) + denylist="") ) )