Skip to content

braucci/remarkable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReadIT

Invia al tuo reMarkable, invece di scaricarli, i PDF che incontri navigando. Finiscono nella cartella ReadIT del tablet, pronti alla sincronizzazione successiva. Estensione per Chrome e Safari da un solo sorgente.

manifest browser licenza


Perché

Il flusso abituale di lettura su reMarkable è: scarico il PDF, apro l'app, trascino il file, aspetto la sincronizzazione. ReadIT lo riduce a un clic dalla pagina che stai leggendo. Il documento parte dal browser e arriva al cloud reMarkable senza passare da alcun server intermedio.

Come funziona

reMarkable non pubblica una API: quella usata dall'app desktop è nota solo per reverse engineering. ReadIT si appoggia a rmapi-js, che ne offre una implementazione JavaScript utilizzabile direttamente nel browser — nessun programma di supporto sul computer.

   pagina web
       │  clic (popup o tasto destro)
       ▼
processo di sfondo ──fetch(url, cookie inclusi)──►  server del PDF
       │                                               │
       │  ◄─────────────── bytes del PDF ──────────────┘
       │
       ├─ controllo firma "%PDF" (non il Content-Type)
       ├─ uploadPdf(nome, bytes)      → arriva nella root del cloud
       └─ move(hash, idCartella)      → finisce in ReadIT

L'upload è in due passi perché l'endpoint compatibile con lo schema 4 del cloud deposita sempre nella root; lo spostamento successivo usa un indice a controllo ottimistico della concorrenza, quindi viene ritentato se il tablet sta sincronizzando. Se anche l'ultimo tentativo fallisce, il file resta caricato nella root: nessuna perdita, solo un avviso.

Installazione — Chrome

  1. chrome://extensions → attiva Modalità sviluppatore
  2. Carica estensione non pacchettizzata → seleziona dist/chrome
  3. Fissa l'icona alla barra

Vale identico per Chromium, Brave, Edge, Vivaldi.

Installazione — Safari

Safari carica le stesse WebExtension ma incapsulate in un'app macOS. Serve macOS con Xcode (non è possibile da Linux o Windows).

xcrun safari-web-extension-converter dist/safari \
      --app-name "ReadIT" --bundle-identifier net.raucci.readit \
      --macos-only --no-prompt

Poi in Xcode ⌘R, e in Safari: Sviluppo → Consenti estensioni non firmate, Impostazioni → Estensioni per attivarla, e — passaggio non facoltativo — Modifica autorizzazioni → Consenti su ogni sito web. Chrome concede i permessi host all'installazione; Safari li tratta come autorizzazione per sito, e senza la fetch verso il server del PDF viene bloccata. Il dettaglio completo è in README-progetto.md.

Abbinamento

  1. Popup → Opzioni
  2. Apri https://my.remarkable.com/device/browser/connect e accedi
  3. Copia il codice di 8 caratteri (monouso, scade in pochi minuti), incollalo, Abbina

Da lì l'estensione possiede un device token permanente, inviato solo a *.remarkable.com.

Uso

  • Scheda con un PDF → clic sull'icona → prima riga
  • Pagina con link a PDF → clic sull'icona → sono elencati tutti
  • Tasto destro su un linkInvia questo PDF a ReadIT

I PDF dietro login (riviste, portali della scuola) funzionano perché la fetch porta con sé i cookie di sessione.

Sviluppo

npm install     # solo la prima volta
npm run build   # src/ + common/ → dist/chrome e dist/safari
npm test        # tre controlli in test/

dist/ è rigenerabile e quindi non versionato. Se pubblichi via interfaccia web di GitHub, esegui npm run build prima di caricare, così chi scarica trova le cartelle pronte.

Struttura

src/ processo di sfondo, accesso al cloud, shim del namespace
common/ interfaccia, identica sui due browser
manifest.base.json parte comune; build.mjs ne deriva i due manifest
test/ caricamento, gestione errori, pacchetto Safari

Documentazione estesa (architettura, differenze Chrome/Safari, risoluzione dei problemi): README-progetto.md.

Limiti

Le API non sono ufficiali: un cambio lato reMarkable si risolve con npm update rmapi-js && npm run build. Tetto per file 200 MB. Trattati i PDF; gli EPUB sarebbero banali da aggiungere (rmapi-js espone uploadEpub).

Licenza

MIT — B. Raucci · www.raucci.net

Non affiliato a reMarkable AS.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages