millelibri/README.md

2.9 KiB

Millelibri

Logo Millelibri

Un motore di ricerca libri basato su protocollo IPFS.

Una versione funzionante si trova qui.

Il progetto è partito come un fork di Book Searcher.

L'obiettivo è trasformarlo in una piattaforma partecipativa: gli utenti avranno la possibilità di richiedere l'aggiunta di libri, oltre a fare ricerche.

Nessun materiale protetto da copyright è ospitato su questo repo.

Nessun link a materiale protetto da copyright è ospitato su questo repo.

Il motore fa ricerche su degli indici, e fornisce dei risultati.

Non abbiamo nulla contro la pirateria, ma vogliamo evitare di trovarci in situazioni spiacevoli.

Non riusciamo a capire in quali occasioni la condivisione di link esterni a materiale protetto da copyright sia reato e in quali no. Quindi, per tutelarci, abbiamo disabilitato la generazione automatica di link IPFS alle risorse. Tuttavia è possibile riabilitarla modificando il codice sorgente (spiegato sotto).

Viene fornita solo un'informazione parziale. Sta all'utente mettere insieme i pezzi.

Installazione rapida

E' possibile buildare il progetto via Docker. Occorre avere prima installato e configurato sia Docker che il tool docker-compose.

Occorre clonare il repo e il file contenente gli indici dei libri:

git clone https://git.lamacchinadesiderante.org/lamacchinadesiderante/millelibri && cd millelibri
wget https://github.com/zlib-searcher/index/releases/download/0.8.0/index_0.8.0.zip && unzip index_0.8.0.zip
docker-compose up -d

Il progetto sarà attivo all'indirizzo localhost:7070.

Sviluppo frontend

Per modificare la parte frontend (React) del progetto, posizionarsi nella cartella frontend e lanciare i comandi:

npm install
npm run build
npm run dev

Per riabilitare i bottoni/link ai Gateway IPFS, aprire il file frontend/src/components/BooksDetailsCard.tsx e de-commentare le seguenti linee di codice:

(da riga 22)

  // const downloadLinkFromIPFS = (gateway: string, book: Book) => {
  //   return (
  //     `https://${gateway}/ipfs/${book.ipfs_cid}?filename=` +
  //     encodeURIComponent(`${book.title}_${book.author}.${book.extension}`)
  //   );
  // }

(da riga 91)

        {/* <SimpleGrid columns={{ sm: 2, md: 3, lg: 4, xl: 5 }} spacing={{ base: 2, md: 4 }}>
          {ipfsGateways.map((gateway) => (
            <Button
              as={ExternalLink}
              href={downloadLinkFromIPFS(gateway, row.original)}
              key={gateway}
              variant="outline"
            >
              {gateway}
            </Button>
          ))}

        </SimpleGrid> */}

Licenza

Book Searcher è rilasciato sotto licenza BSD-3-Clause. Millelibri eredita la licenza da Book Searcher.