This commit is contained in:
daniel
2020-10-20 08:43:26 +02:00
2 changed files with 57 additions and 8 deletions

View File

@@ -1,16 +1,65 @@
Tool to sync files between your zotero library and the remarkable using webdav
## Transfer files from a Zotero collection to a folder on a reMarkable.
This uses the Zotero and reMarkable API to keep your reMarkable updated with a folder from Zotero. In short, it fetches a collection from zotero, uses CalDAV to download all corresponding .pdf and .epub files and finally uploads them to the reMarkable cloud. Finally, the zotero collection is cleared to prevent uploading the same file multiple times (so dont use it on your main library but create a separate fodler!)
**Caution**: Right now, all login credentials are stored in clear text in your home
#### Installation & Usage ####
Install via pip:
``` python
> pip install git+https://github.com/danijoo/sync_zotero_remarkable
```
On first run, you will be asked to provide login information to zotero, your associated caldav api and remarkable:
```bash
> sync_zotero_rm
zot_api_key: *******
zot_user_id: *******
zot_collection: unread_files
webdav_url: *******
webdav_user: *******
webdav_password: *******
rm_folder: Read me!
```
**Caution**: All login credentials are stored in clear text in your home
folder (`~/.zotero_remarkable.yaml`). So you probably do not want to use this
on publicly accessible devices.
And then:
```bash
Fetching collection from Zotero... Done.
Fetching item list... Done.
Items to sync: 1
#### Processing files ####
Kunzmann et al_2020_Substitution matrix based color schemes for sequence alignment visualization.pdf download, unzip, upload, done.
Removing uploaded items from zotero collection...Done.
Sync complete.
# let's see if it worked.
> rmapi
ReMarkable Cloud API Shell
[/]>cd Read\ me!/
[/Read me!]>ls
[f] Kunzmann et al_2020_Substitution matrix based color schemes for sequence alignment visualization
```
#### TODO
- Remarkable authorization / connection (right now, rmapi is required to set things up)
- Handle all the corner cases
- Handle some the corner cases
- Option to not clear the folder
#### LICENSE
![do whatever you want](https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/WTFPL_badge.svg/220px-WTFPL_badge.svg.png)
Do whatever you want.
Do whatever you want.
Inspired by ![Michael Mior's Zotero reMarkable sync (PHP)](https://github.com/michaelmior/zotero-remarkable)

View File

@@ -19,7 +19,7 @@ def get_rmapy_client():
print("Enter one-time code (from https://my.remarkable.com/connect/desktop):")
key = input()
rmapy.register_device(key.strip())
rmapy.renew_token()
rmapy.renew_token()
return rmapy
if __name__ == "__main__":
@@ -77,7 +77,7 @@ if __name__ == "__main__":
if len(folder) > 0:
folder = folder[0]
else: # folder does not exist yet
print(f"Creating folder {remarkable_folder} on RM.")
print(f"Creating folder {cfg['rm_folder']} on RM.")
folder = Folder(cfg['rm_folder'])
rmapy.create_folder(folder)
@@ -119,4 +119,4 @@ if __name__ == "__main__":
continue
zot.deletefrom_collection(zot_collection_key, item)
print("Done.")
print("Sync complete.")
print("Sync complete.")