diff --git a/papers/databroker.py b/papers/databroker.py index e5c5680..7ffa6ee 100644 --- a/papers/databroker.py +++ b/papers/databroker.py @@ -35,7 +35,7 @@ class DataBroker(object): def push(self, citekey, metadata, bibdata): self.filebroker.push(citekey, metadata, bibdata) - + def remove(self, citekey): self.filebroker.remove(citekey) @@ -65,11 +65,17 @@ class DataBroker(object): def real_docpath(self, docpath): return self.docbroker.real_docpath(docpath) - # notesbroker def in_notesdir(self, docpath): return self.notebroker.in_docsdir(docpath) + def copy_note(self, citekey, source_path, overwrite=False): + return self.notebroker.copy_doc(citekey, source_path, overwrite=overwrite) + + def remove_note(self, docpath, silent=True): + return self.notebroker.remove_doc(docpath, silent=silent) + + def real_notepath(self, docpath): return self.notebroker.real_docpath(docpath) \ No newline at end of file diff --git a/papers/datacache.py b/papers/datacache.py index ef6646d..636d8e5 100644 --- a/papers/datacache.py +++ b/papers/datacache.py @@ -79,6 +79,12 @@ class DataCache(object): def in_notesdir(self, docpath): return self.databroker.in_notesdir(docpath) + def copy_note(self, citekey, source_path, overwrite=False): + return self.databroker.copy_note(citekey, source_path, overwrite=overwrite) + + def remove_note(self, docpath, silent=True): + return self.databroker.remove_note(docpath, silent=silent) + def real_notepath(self, docpath): return self.databroker.real_notepath(docpath) diff --git a/papers/filebroker.py b/papers/filebroker.py index 1b257ce..c721950 100644 --- a/papers/filebroker.py +++ b/papers/filebroker.py @@ -126,6 +126,9 @@ class DocBroker(object): return False return parsed.scheme == self.scheme + # def doc_exists(self, citekey, ext='.txt'): + # return check_file(os.path.join(self.docdir, citekey + ext), fail=False) + def copy_doc(self, citekey, source_path, overwrite=False): """ Copy a document to the pubsdir/doc, and return the location diff --git a/papers/repo.py b/papers/repo.py index 7469d66..21b7a2c 100644 --- a/papers/repo.py +++ b/papers/repo.py @@ -114,6 +114,14 @@ class Repository(object): self.databroker.remove_doc(paper.docpath) paper.docpath = new_docpath + try: + old_notepath = 'notesdir://{}.txt'.format(old_citekey) + new_notepath = self.databroker.copy_note(new_citekey, old_notepath) + self.databroker.remove_notei(old_notepath) + except IOError: + import traceback + traceback.print_exc() + # push_paper to new_citekey paper.citekey = new_citekey self.push_paper(paper, event=False)