From e96b1e81998a4a8f09ca58e48f32e7384e2945f5 Mon Sep 17 00:00:00 2001 From: juvilius Date: Mon, 11 Jul 2022 08:10:43 +0200 Subject: [PATCH] separate picking from add_word --- dict_dl.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) 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" )