main
Brett 2025-07-03 22:14:49 -04:00
parent ef258f05ad
commit 5db7b20e9f
2 changed files with 11 additions and 8 deletions

View File

@ -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: