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