Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions src/pdf2remarkable.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}",
Expand All @@ -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}",
Expand All @@ -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()
Expand All @@ -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:
Expand All @@ -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
Expand Down