Give every booking request its own scraper

This commit is contained in:
Jan Losinski 2019-01-07 14:58:48 +01:00
parent c6880cf856
commit 9f9c39b366
1 changed files with 7 additions and 6 deletions

View File

@ -18,23 +18,24 @@ class _WorkerRequest(typing.NamedTuple):
id: int
name: str
email: str
target: str
class RequestQueue(object):
def __init__(self):
self._targets = []
self._requests = {}
self._requests = []
def enqueue(self, req: model.Request):
if req.target not in self._requests:
self._requests[req.target] = []
self._targets.append(req.target)
self._requests[req.target].append(_WorkerRequest(req.id, req.data.name, req.data.email))
self._requests.append(
_WorkerRequest(req.id, req.data.name, req.data.email, req.target))
def iterate(self):
for target in self._targets:
yield target, self._requests[target]
for item in self._requests:
yield item.target, [item]
def is_empty(self):
return len(self._targets) == 0
@ -45,7 +46,7 @@ class RequestQueue(object):
@property
def request_cnt(self):
return sum(len(x) for x in self._requests.values())
return len(self._requests)
def _book(target: str, reqs: typing.List[_WorkerRequest], debug = False) -> typing.List[int]: