diff --git a/src/pdf2remarkable.py b/src/pdf2remarkable.py index 90e4265..69e2044 100644 --- a/src/pdf2remarkable.py +++ b/src/pdf2remarkable.py @@ -78,13 +78,14 @@ def get_auth_token(self, dotfile_path: str) -> str: with open(dotfile_path, "r", encoding="utf-8") as f: return f.read() - def upload_pdf_to_remarkable(self, pdf: bytes, title: str) -> None: + def upload_pdf_to_remarkable(self, pdf: bytes, title: str, parent: str) -> None: """ Upload PDF bytes to reMarkable Cloud. Args: pdf (bytes): PDF file content title (str): Title of the PDF + parent (str): UUID of the parent folder, ignored if empty """ headers = { "authorization": f"Bearer {self.auth}", @@ -98,6 +99,8 @@ def upload_pdf_to_remarkable(self, pdf: bytes, title: str) -> None: response.raise_for_status() token = response.text metadata = {"file_name": title} + if parent != "": + metadata = {"file_name": title, "parent": parent} headers = { "authorization": f"Bearer {token}", @@ -113,12 +116,13 @@ def upload_pdf_to_remarkable(self, pdf: bytes, title: str) -> None: ) response.raise_for_status() - def pdf2remarkable(self, file_path: str) -> None: + def pdf2remarkable(self, file_path: str, parent: str = "") -> None: """ Upload PDF file to reMarkable Cloud. Args: file_path (str): Path to the PDF file + parent (str): UUID of the parent folder, empty by default """ with open(file_path, "rb") as file: pdf = file.read() @@ -127,8 +131,11 @@ def pdf2remarkable(self, file_path: str) -> None: title = reader.metadata.title if not title: title = sanitize_filename(os.path.splitext(os.path.basename(file_path))[0]) - self.upload_pdf_to_remarkable(pdf, title) - logger.info(f'"{title}" uploaded to reMarkable.') + self.upload_pdf_to_remarkable(pdf, title, parent) + if parent == "": + logger.info(f'"{title}" uploaded to reMarkable.') + else: + logger.info(f'"{title}" with parent UUID "{parent}" uploaded to reMarkable.') def main() -> int: @@ -142,11 +149,12 @@ def main() -> int: description="Upload PDFs to reMarkable from the CLI." ) parser.add_argument("input", help="PDF file path") + parser.add_argument("-p", "--parent", default="", help="The UUID of parent folder") args = parser.parse_args() try: pdf2remarkable = PDF2Remarkable() - pdf2remarkable.pdf2remarkable(args.input) + pdf2remarkable.pdf2remarkable(args.input, args.parent) except Exception as e: logger.error(e) return 1