Spaces:
Running
Running
Fix: Add mock fallback for DOAJ API 403 Forbidden error
Browse files- app/services/doaj_service.py +15 -1
app/services/doaj_service.py
CHANGED
|
@@ -68,8 +68,22 @@ class DOAJService:
|
|
| 68 |
return results
|
| 69 |
except Exception as e:
|
| 70 |
logger.error(f"DOAJ search error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
return []
|
| 72 |
-
|
| 73 |
def download_paper(self, paper_url: str, paper_id: str) -> str:
|
| 74 |
"""
|
| 75 |
Downloads a paper from a direct URL.
|
|
|
|
| 68 |
return results
|
| 69 |
except Exception as e:
|
| 70 |
logger.error(f"DOAJ search error: {e}")
|
| 71 |
+
if "403" in str(e) or "401" in str(e):
|
| 72 |
+
logger.warning("DOAJ API returned 403 Forbidden. Using mock data for hackathon demo.")
|
| 73 |
+
return [
|
| 74 |
+
{
|
| 75 |
+
"id": f"doaj_mock_{uuid.uuid4().hex[:8]}",
|
| 76 |
+
"title": f"Open Access Analysis on {query}",
|
| 77 |
+
"authors": ["Dr. Open Access", "A. Researcher"],
|
| 78 |
+
"summary": f"This is a mocked DOAJ article discussing {query}. The DOAJ API is currently blocking requests with 403 Forbidden, so this mock data is provided for the hackathon demonstration.",
|
| 79 |
+
"url": "https://doaj.org",
|
| 80 |
+
"has_pdf": False,
|
| 81 |
+
"categories": ["Science", "Open Access"],
|
| 82 |
+
"publication_date": "2024",
|
| 83 |
+
"source": "DOAJ"
|
| 84 |
+
}
|
| 85 |
+
]
|
| 86 |
return []
|
|
|
|
| 87 |
def download_paper(self, paper_url: str, paper_id: str) -> str:
|
| 88 |
"""
|
| 89 |
Downloads a paper from a direct URL.
|