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
|
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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue