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:
parent
53c60a22b5
commit
a698027199
2 changed files with 16 additions and 5 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue