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
@lru_cache
def fetch_bibliography(self) -> str:
r = self.s.get(self.baseURL + "bibtex/")
def fetch_bibliography(self, tag=None) -> str:
r = self.s.get(self.baseURL + "bibtex/", params={"tag": tag})
r.raise_for_status()
return r.text

View file

@ -51,6 +51,8 @@ def write_symlinks(api: PaperLibraryAPI, config: Config):
custom_title_dir = basedir / "by_custom_title"
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]:
shutil.rmtree(directory, ignore_errors=True)
directory.mkdir()
@ -77,6 +79,7 @@ def write_symlinks(api: PaperLibraryAPI, config: Config):
tag_dir = tags_dir / tag
tag_dir.mkdir(exist_ok=True, parents=True)
link_file(pdf_dir, tag_dir, paper, paper.title)
tags.add(tag)
if not paper.custom_title:
continue
@ -92,6 +95,9 @@ def write_symlinks(api: PaperLibraryAPI, config: Config):
for paper in papers:
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):
r = api.s.get(url)
@ -176,8 +182,13 @@ def update_notes(api: PaperLibraryAPI, config: Config):
api.update_note(paper.id, file_text)
def write_bibliography(api: PaperLibraryAPI, config: Config):
bib = api.fetch_bibliography()
target_file = config.basedir_path / "bibliography.bib"
def write_bibliography(api: PaperLibraryAPI, config: Config, tag: str = None):
tags_dir = config.basedir_path / "by_tags"
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:
f.write(bib)