From 1923e0215076e40d567e2b583a733cdfd5ef17c8 Mon Sep 17 00:00:00 2001 From: Heyue Li <115755838+YHISH-yhish@users.noreply.github.com> Date: Tue, 21 Apr 2026 00:40:43 +0800 Subject: [PATCH 1/6] Update protocol.py --- src/zotero_arxiv_daily/protocol.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/zotero_arxiv_daily/protocol.py b/src/zotero_arxiv_daily/protocol.py index 143c03d37..91959e398 100644 --- a/src/zotero_arxiv_daily/protocol.py +++ b/src/zotero_arxiv_daily/protocol.py @@ -20,6 +20,7 @@ class Paper: tldr: Optional[str] = None affiliations: Optional[list[str]] = None score: Optional[float] = None + published_date: Optional[str] = None def _generate_tldr_with_llm(self, openai_client:OpenAI,llm_params:dict) -> str: lang = llm_params.get('language', 'English') @@ -108,4 +109,4 @@ class CorpusPaper: title: str abstract: str added_date: datetime - paths: list[str] \ No newline at end of file + paths: list[str] From 6a10289ee44226927f6990fc5e8f30a23e9a9cf5 Mon Sep 17 00:00:00 2001 From: Heyue Li <115755838+YHISH-yhish@users.noreply.github.com> Date: Tue, 21 Apr 2026 00:48:19 +0800 Subject: [PATCH 2/6] Update arxiv_retriever.py --- src/zotero_arxiv_daily/retriever/arxiv_retriever.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zotero_arxiv_daily/retriever/arxiv_retriever.py b/src/zotero_arxiv_daily/retriever/arxiv_retriever.py index b56d6f933..9ca9f0420 100644 --- a/src/zotero_arxiv_daily/retriever/arxiv_retriever.py +++ b/src/zotero_arxiv_daily/retriever/arxiv_retriever.py @@ -159,6 +159,7 @@ def convert_to_paper(self, raw_paper: ArxivResult) -> Paper: url=raw_paper.entry_id, pdf_url=pdf_url, full_text=full_text, + published_date=published_date, ) From 4eebaa735dc0a88eed975d50710af0ad08a1f5f1 Mon Sep 17 00:00:00 2001 From: Heyue Li <115755838+YHISH-yhish@users.noreply.github.com> Date: Tue, 21 Apr 2026 00:48:43 +0800 Subject: [PATCH 3/6] Update biorxiv_retriever.py --- src/zotero_arxiv_daily/retriever/biorxiv_retriever.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py b/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py index 719158887..9bcac2862 100644 --- a/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py +++ b/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py @@ -57,5 +57,6 @@ def convert_to_paper(self, raw_paper:dict[str, Any]) -> Paper | None: abstract=abstract, url=pdf_url, pdf_url=pdf_url, - full_text=full_text - ) \ No newline at end of file + full_text=full_text, + published_date=published_date, + ) From d2a46a0fe2e78eb08ee1531a25a9e80f95cd80b3 Mon Sep 17 00:00:00 2001 From: Heyue Li <115755838+YHISH-yhish@users.noreply.github.com> Date: Tue, 21 Apr 2026 00:56:45 +0800 Subject: [PATCH 4/6] Update construct_email.py --- src/zotero_arxiv_daily/construct_email.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/zotero_arxiv_daily/construct_email.py b/src/zotero_arxiv_daily/construct_email.py index 193f8ba71..60d3b604c 100644 --- a/src/zotero_arxiv_daily/construct_email.py +++ b/src/zotero_arxiv_daily/construct_email.py @@ -52,7 +52,7 @@ def get_empty_html(): """ return block_template -def get_block_html(title:str, authors:str, rate:str, tldr:str, pdf_url:str, affiliations:str=None): +def get_block_html(title:str, authors:str, rate:str, tldr:str, pdf_url:str, affiliations:str=None,published_date: str = None): block_template = """ @@ -67,6 +67,11 @@ def get_block_html(title:str, authors:str, rate:str, tldr:str, pdf_url:str, affi {affiliations} + + +
+ Date: {published_date} +
Relevance: {rate} @@ -85,7 +90,7 @@ def get_block_html(title:str, authors:str, rate:str, tldr:str, pdf_url:str, affi
""" - return block_template.format(title=title, authors=authors,rate=rate, tldr=tldr, pdf_url=pdf_url, affiliations=affiliations) + return block_template.format(title=title, authors=authors,rate=rate, tldr=tldr, pdf_url=pdf_url, affiliations=affiliations,published_date=published_date or "Unknown") def get_stars(score:float): full_star = '' @@ -125,7 +130,8 @@ def render_email(papers:list[Paper]) -> str: affiliations += ', ...' else: affiliations = 'Unknown Affiliation' - parts.append(get_block_html(p.title, authors, rate, p.tldr, p.pdf_url, affiliations)) + published_date = p.published_date or "Unknown" + parts.append(get_block_html(p.title, authors, rate, p.tldr, p.pdf_url, affiliations,published_date,)) content = '
' + '

'.join(parts) + '
' return framework.replace('__CONTENT__', content) From b7ce300d2c4e8f1ab84646e7099070e4e93b6494 Mon Sep 17 00:00:00 2001 From: Heyue Li <115755838+YHISH-yhish@users.noreply.github.com> Date: Tue, 21 Apr 2026 00:57:56 +0800 Subject: [PATCH 5/6] Update arxiv_retriever.py --- src/zotero_arxiv_daily/retriever/arxiv_retriever.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zotero_arxiv_daily/retriever/arxiv_retriever.py b/src/zotero_arxiv_daily/retriever/arxiv_retriever.py index 9ca9f0420..63679999f 100644 --- a/src/zotero_arxiv_daily/retriever/arxiv_retriever.py +++ b/src/zotero_arxiv_daily/retriever/arxiv_retriever.py @@ -146,6 +146,7 @@ def convert_to_paper(self, raw_paper: ArxivResult) -> Paper: authors = [a.name for a in raw_paper.authors] abstract = raw_paper.summary pdf_url = raw_paper.pdf_url + published_date = raw_paper.published.strftime("%Y-%m-%d") if raw_paper.published else None full_text = extract_text_from_tar(raw_paper) if full_text is None: full_text = extract_text_from_html(raw_paper) From 5beb37a9beb49ecdc1a88a2afab3393c5eed1415 Mon Sep 17 00:00:00 2001 From: Heyue Li <115755838+YHISH-yhish@users.noreply.github.com> Date: Tue, 21 Apr 2026 00:59:02 +0800 Subject: [PATCH 6/6] Update biorxiv_retriever.py --- src/zotero_arxiv_daily/retriever/biorxiv_retriever.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py b/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py index 9bcac2862..31deaa078 100644 --- a/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py +++ b/src/zotero_arxiv_daily/retriever/biorxiv_retriever.py @@ -50,6 +50,7 @@ def convert_to_paper(self, raw_paper:dict[str, Any]) -> Paper | None: abstract = raw_paper['abstract'] pdf_url = f"https://www.{self.server}.org/content/{raw_paper['doi']}v{raw_paper['version']}.full.pdf" full_text = None # biorxiv forbids scraping its pdf + published_date = raw_paper.get("date") return Paper( source=self.name, title=title,