Alle prosjekter

Lokal nettapp · under arbeid

Estante virtual

En hylle med bøker og manga som kjører på datamaskinen din. Hvert bind er en rygg tegnet i CSS, i fargene fra sitt eget omslag; et klikk åpner et panel med omslag, detaljer, lesestatus, framdrift, karakter og notater.

Ingen konto, ingen sky, ingen database: alt ligger i lokale filer. Hyllen på denne siden bruker det samme bokformatet.

JavaScript · Node.js · Express · sharp · MangaDex API

github.com/wtuxen/estante_virtual

Hva den gjør

Rygger
Bakgrunns- og aksentfarge hentes fra omslaget. Høyden følger formatet (pocket, tankōbon, trade, innbundet, artbook) og bredden sidetallet. Manga viser bindnummeret nederst.
Serier
Ett bind per rygg, som i en ekte hylle, og bind i samme serie deler farge. I seriemodus blir hver serie en boks, med samlet framdrift og et rutenett av omslag.
Lesing
Status (ulest, leser, lest, avbrutt), leste sider, karakter fra 1 til 5 og notater som lagres av seg selv. Søk, statusfilter og sortering holder seriene samlet.
Import
Bøker kommer fra Markdown-filer med feltene fra Google Books; manga fra eksporten til MyAnimeList, med omslag og titler hentet fra MangaDex.

Hvordan dataene lagres

To filer, koblet med id. Katalogen (titler, forfattere, omslag, farger) lages av importen og kan bygges på nytt når som helst. Tilstanden (status, sider, karakterer, datoer og notater) skrives bare av appen, og er den som ikke kan gå tapt: den lagres atomisk, via en midlertidig fil og et navnebytte, og blir den noen gang ødelagt, nekter serveren å skrive over den. Ny import av katalogen sletter aldri et notat.

Valg

  • Ingen byggesteg: grensesnittet er ren HTML, CSS og JavaScript, servert av en liten Express-server som bare lytter på 127.0.0.1.
  • Endringer sendes til serveren én om gangen, i rekkefølge, med forsinkelse på notater og nytt forsøk ved feil. Et nytt forsøk sender aldri en gammel verdi over en nyere.
  • Lesehistorikken fra MyAnimeList fyller bare tomme felt, så den kan kjøres igjen uten å angre det som er endret i hyllen. Framdrift som bare er lagret i kapitler, blir til bind via kapittelkartet til MangaDex.
  • Importen respekterer grensen for forespørsler hos MangaDex, sender sin egen User-Agent og laster ned omslagene lokalt i stedet for å lenke direkte til dem.