diff --git a/dev-api.py b/dev-api.py index 8c557bc..1d0375d 100644 --- a/dev-api.py +++ b/dev-api.py @@ -100,7 +100,7 @@ def _score_url(url: str) -> int: hostname = (parsed.hostname or '').lower() path = parsed.path.lower() for domain in _JOB_DOMAINS: - if domain in hostname or domain in path: + if domain in hostname: return 2 for seg in _JOB_PATH_SEGMENTS: if f'/{seg}/' in path or path.startswith(f'/{seg}'): @@ -563,14 +563,16 @@ def add_to_digest_queue(body: DigestQueueBody): @app.post("/api/digest-queue/{digest_id}/extract-links") def extract_digest_links(digest_id: int): db = _get_db() - row = db.execute( - """SELECT jc.body - FROM digest_queue dq - JOIN job_contacts jc ON jc.id = dq.job_contact_id - WHERE dq.id = ?""", - (digest_id,), - ).fetchone() - db.close() + try: + row = db.execute( + """SELECT jc.body + FROM digest_queue dq + JOIN job_contacts jc ON jc.id = dq.job_contact_id + WHERE dq.id = ?""", + (digest_id,), + ).fetchone() + finally: + db.close() if not row: raise HTTPException(404, "Digest entry not found") return {"links": _extract_links(row["body"] or "")} diff --git a/tests/test_dev_api_digest.py b/tests/test_dev_api_digest.py index d749763..f5df62c 100644 --- a/tests/test_dev_api_digest.py +++ b/tests/test_dev_api_digest.py @@ -138,6 +138,10 @@ def test_digest_extract_links(client, tmp_db): assert len(lever_links) == 1 assert lever_links[0]["score"] == 2 + # Each link must have a hint key (may be empty string for links at start of body) + for link in links: + assert "hint" in link + def test_digest_extract_links_filters_trackers(client, tmp_db): entry_id = _add_digest_entry(tmp_db)