1
0
Fork 0
mirror of https://github.com/Findus23/PaperLibrary-cli.git synced 2024-09-20 17:03:46 +02:00

create per-tag bibfile

This commit is contained in:
Lukas Winkler 2023-08-08 11:04:42 +02:00
parent 53c60a22b5
commit a698027199
Signed by: lukas
GPG key ID: 54DE4D798D244853
2 changed files with 16 additions and 5 deletions

View file

@ -45,8 +45,8 @@ class PaperLibraryAPI:
return years return years
@lru_cache @lru_cache
def fetch_bibliography(self) -> str: def fetch_bibliography(self, tag=None) -> str:
r = self.s.get(self.baseURL + "bibtex/") r = self.s.get(self.baseURL + "bibtex/", params={"tag": tag})
r.raise_for_status() r.raise_for_status()
return r.text return r.text

View file

@ -51,6 +51,8 @@ def write_symlinks(api: PaperLibraryAPI, config: Config):
custom_title_dir = basedir / "by_custom_title" custom_title_dir = basedir / "by_custom_title"
citation_key_dir = basedir / "by_citation_key" citation_key_dir = basedir / "by_citation_key"
tags = set()
for directory in [author_dir, keyword_dir, year_dir, title_dir, tags_dir, custom_title_dir, citation_key_dir]: for directory in [author_dir, keyword_dir, year_dir, title_dir, tags_dir, custom_title_dir, citation_key_dir]:
shutil.rmtree(directory, ignore_errors=True) shutil.rmtree(directory, ignore_errors=True)
directory.mkdir() directory.mkdir()
@ -77,6 +79,7 @@ def write_symlinks(api: PaperLibraryAPI, config: Config):
tag_dir = tags_dir / tag tag_dir = tags_dir / tag
tag_dir.mkdir(exist_ok=True, parents=True) tag_dir.mkdir(exist_ok=True, parents=True)
link_file(pdf_dir, tag_dir, paper, paper.title) link_file(pdf_dir, tag_dir, paper, paper.title)
tags.add(tag)
if not paper.custom_title: if not paper.custom_title:
continue continue
@ -92,6 +95,9 @@ def write_symlinks(api: PaperLibraryAPI, config: Config):
for paper in papers: for paper in papers:
link_file(pdf_dir, year_subdir, paper) link_file(pdf_dir, year_subdir, paper)
for tag in tags:
write_bibliography(api, config, tag)
def download_file(api: PaperLibraryAPI, url: str, target_file: Path): def download_file(api: PaperLibraryAPI, url: str, target_file: Path):
r = api.s.get(url) r = api.s.get(url)
@ -176,8 +182,13 @@ def update_notes(api: PaperLibraryAPI, config: Config):
api.update_note(paper.id, file_text) api.update_note(paper.id, file_text)
def write_bibliography(api: PaperLibraryAPI, config: Config): def write_bibliography(api: PaperLibraryAPI, config: Config, tag: str = None):
bib = api.fetch_bibliography() tags_dir = config.basedir_path / "by_tags"
target_file = config.basedir_path / "bibliography.bib" if tag:
dir = tags_dir / tag
else:
dir = config.basedir_path
bib = api.fetch_bibliography(tag)
target_file = dir / "bibliography.bib"
with target_file.open("w") as f: with target_file.open("w") as f:
f.write(bib) f.write(bib)