(paper: Dict[str, Any])
| 956 | |
| 957 | |
| 958 | def _get_direct_pdf_url(paper: Dict[str, Any]) -> str: |
| 959 | candidates = [ |
| 960 | paper.get("pdf_url"), |
| 961 | paper.get("url"), |
| 962 | paper.get("paper_url"), |
| 963 | paper.get("doi_url"), |
| 964 | paper.get("openreview_url"), |
| 965 | (paper.get("metadata") or {}).get("pdf_url"), |
| 966 | (paper.get("metadata") or {}).get("url"), |
| 967 | (paper.get("metadata") or {}).get("link"), |
| 968 | (paper.get("metadata") or {}).get("paper_url"), |
| 969 | (paper.get("metadata") or {}).get("doi_url"), |
| 970 | (paper.get("metadata") or {}).get("openreview_url"), |
| 971 | ] |
| 972 | |
| 973 | for candidate in candidates: |
| 974 | text = _clean_text(candidate) |
| 975 | if _looks_like_pdf_url(text): |
| 976 | return text |
| 977 | |
| 978 | arxiv_id = _clean_text(paper.get("arxiv_id")) |
| 979 | if arxiv_id: |
| 980 | return f"https://arxiv.org/pdf/{arxiv_id}.pdf" |
| 981 | return "" |
| 982 | |
| 983 | |
| 984 | def _build_resource_items(paper: Dict[str, Any], response_language: str = "zh") -> List[Tuple[str, str]]: |
no test coverage detected