diff --git a/dict_dl.py b/dict_dl.py index a0a26e19..8d0a9129 100644 --- a/dict_dl.py +++ b/dict_dl.py @@ -207,6 +207,7 @@ class Queue: self.unusual = lambda prefix: not all([c in letters for c in prefix.lower()]) or len(prefix) < self.prefix_length def wait(self): + self.time_exponent = abs(self.time_exponent) a = self.time_base**self.time_exponent b = self.time_base ** (self.time_exponent * 3) time.sleep(randtime(a, b)) @@ -216,13 +217,23 @@ class Queue: with open(db_file, "r") as f: self.words |= set(json.load(f).keys()) - def add_word(self): + def pick_random(self): self.redo.load() self.queue -= self.words self.queue -= self.snafus self.queue |= self.redo - len_queue = len(self.queue) # actual queue - p = random.choice(list(self.queue)) + if len(self.queue) < 1: + p = random.choice(list(self.words)) + self.time_exponent += 1 + else: + p = random.choice(list(self.queue)) + self.time_exponent -= 20 + else: + return p + + def add_word(self, p=None): + if p == None: + p = self.pick_random() try: start_parsing = time.time() w = self.Parser(p) # fetch new word @@ -231,7 +242,7 @@ class Queue: print( f"{p} | " f"{len(self.words)} words collected, " - f"{len_queue} words waiting in queue" + f"{len(self.queue)} words waiting in queue" # f", {start_db_stuff-start_parsing:.06f}s" # f"/{time.time() - start_db_stuff:.06f}s" )