Enhance arXiv integration: Add BibTeX generation, ID versioning, and withdrawn paper handling. Update search script to display version information alongside arXiv IDs.

This commit is contained in:
teknium1 2026-02-27 03:45:59 -08:00
parent ae8d25faca
commit 445d2646a9
2 changed files with 48 additions and 2 deletions

View file

@ -61,15 +61,17 @@ def search(query=None, author=None, category=None, ids=None, max_results=5, sort
for i, entry in enumerate(entries):
title = entry.find('a:title', NS).text.strip().replace('\n', ' ')
raw_id = entry.find('a:id', NS).text.strip()
arxiv_id = raw_id.split('/abs/')[-1].split('v')[0] if '/abs/' in raw_id else raw_id
full_id = raw_id.split('/abs/')[-1] if '/abs/' in raw_id else raw_id
arxiv_id = full_id.split('v')[0] # base ID for links
published = entry.find('a:published', NS).text[:10]
updated = entry.find('a:updated', NS).text[:10]
authors = ', '.join(a.find('a:name', NS).text for a in entry.findall('a:author', NS))
summary = entry.find('a:summary', NS).text.strip().replace('\n', ' ')
cats = ', '.join(c.get('term') for c in entry.findall('a:category', NS))
version = full_id[len(arxiv_id):] if full_id != arxiv_id else ""
print(f"{i+1}. {title}")
print(f" ID: {arxiv_id} | Published: {published} | Updated: {updated}")
print(f" ID: {arxiv_id}{version} | Published: {published} | Updated: {updated}")
print(f" Authors: {authors}")
print(f" Categories: {cats}")
print(f" Abstract: {summary[:300]}{'...' if len(summary) > 300 else ''}")