diff --git a/news/__pycache__/pool.cpython-311.pyc b/news/__pycache__/pool.cpython-311.pyc index 7ff9aef..803a77a 100644 Binary files a/news/__pycache__/pool.cpython-311.pyc and b/news/__pycache__/pool.cpython-311.pyc differ 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: