From 5db7b20e9fdbe2af8618839f3a24b96bd2bac2fe Mon Sep 17 00:00:00 2001 From: Brett Laptop Date: Thu, 3 Jul 2025 22:14:49 -0400 Subject: [PATCH] async --- news/__pycache__/pool.cpython-311.pyc | Bin 20974 -> 21080 bytes news/pool.py | 19 +++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/news/__pycache__/pool.cpython-311.pyc b/news/__pycache__/pool.cpython-311.pyc index 7ff9aef28ed8acd4751ea4e1d62de9ecd3228f5b..803a77ab98ac13c03964063cf9b7020b9f934935 100644 GIT binary patch delta 1207 zcma)*ZAcVB7{_OJ_w3fY+sk{?yhF{~?5;b5h&!|_v!cK|x9Iw`L{iORZ)ENr^n!6w zYGtBFBh?25rS}Xfwzn@)5mfZ)P7ablun$ELgi)0AA$mqBvKMJ~=J%g@=9y<^XPnvVatWTH~`xfOy)3i?HVq zI|f2tXlemW1c`Ur1hdQ|FPH1E)x?IGdm=# z@QP_?6@M?kj+^z!fPvfCov`9!5TNl0;g8Rta|X4d0Xk@O&|*)4c!+D|w8|uh=;oSI zdcQnuh@l^&rQRai?`^?6b;vcTlDer|-4Nf~oY;|U)($Le{N=K*Lg>U!z+p5d*I;Owu^w#PU(IttZkM$rLp_;{i~!W+i7?eyImFRs$9Yb72p z(@W|LIed$TqXB%EZjDB9lwOa%@f>4kP*^l!GOx9j%rKAPD!tj@#MkK4hAM17rG(@o z%*uWQt&1VeaDkzQp@pHHZd9sqHSJb5`8WgQ{B#&agJT>`hfDva7;xSVwp^#;`d0iz Y?^y50wJQV+&VT2JN&BaN%uary@A-T*^#A|> delta 1119 zcma))O-vI(6vuaVw}oxHQ2Id^mO!O!X>AXDSfdRIfsz=cw1A0+4G9_tA%=)nObLRd;odFY!Mt!*TpIMRig#fRs!_ATyAbS;)v5j^ZfjfMrl0)5uyV z!Q2=tXF(^-!!{e1Lo>D8qK>T>n3eKk%vC{GUz)Wl0Zg^ssii>_ zU2%Cq3{AK~U|Id>8eqT(lD$st7*17U=z+Hxyi-%&!R*2)QEm{75DXApCm2Q7dOBgN?2}nuSx{jB=TrP)9&2Mi>mc-L4c6C5l!g z!Jzc^cU! z3%}KF^8QC%L_+8cFrn6vucV*2#t9x0%n{TO+$4yi#n4$Gp--W9i%x_8;lmKr?yv@E iUy#rx6loa*@6~jR8`KUlz>=o^&Yc5&_a9z`T;4C6MH diff --git a/news/pool.py b/news/pool.py index be38b29..59ce96e 100644 --- a/news/pool.py +++ b/news/pool.py @@ -139,7 +139,7 @@ class ArticleRepository: async def fetch_article(self, url: str) -> tuple[str, str]: async with self._lock: - result = await self.get_article(url) + result = self._get_article(url) if result: return result @@ -165,15 +165,18 @@ class ArticleRepository: async def get_article(self, url: str) -> tuple[str, str] | None: async with self._lock: - # Single writer at a time when using sqlite3 – avoids `database is locked` - row = self._row_for_url(url) + return self._get_article(url) - if row: # row = (id, url, title, raw, processed) - LOGGER.info(f"[ArticleRepository] Found cached article for {url}") - return row[2], row[4] # processed_html already present + def _get_article(self, url: str) -> tuple[str, str] | None: + # Single writer at a time when using sqlite3 – avoids `database is locked` + row = self._row_for_url(url) - LOGGER.info(f"[ArticleRepository] Article was not found for {url}") - return None + if row: # row = (id, url, title, raw, processed) + LOGGER.info(f"[ArticleRepository] Found cached article for {url}") + return row[2], row[4] # processed_html already present + + LOGGER.info(f"[ArticleRepository] Article was not found for {url}") + return None async def has_paragraphs(self, url) -> bool: async with self._lock: