3.0 KiB
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.
Copyright e pirateria
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
Riabilitare la generazione dei link IPFS
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.