metadati della serie iBooks

10

In iBooks il 10.10, i libri possono avere metadati di serie come mostrato nell'immagine.

Quali metadati devo aggiungere a un epub esterno (ad esempio, non dall'archivio di ibook) in modo che possa essere visualizzato come una serie?

    
posta Bilal Syed Hussain 20.10.2014 - 15:20
fonte

4 risposte

12

Ce l'ho fatta, ma è un po 'complicato.

Riepilogo:

Devi modificare il file Books.plist in ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Books per i libri che vuoi avere una serie, e devi anche aggiungere righe nel BKSeries - *. sqlite database su ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeriesDatabase per loro e la serie.

Ecco come l'ho fatto:

Il database ha 4 tabelle: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY e Z_METADATA . Ho solo cambiato i primi tre tavoli. La "serie" è trattata come un libro in queste tabelle.

  1. Aggiungi i libri e le serie nella tabella ZBKSERIESCHECK . La tabella ha 5 colonne.

    • Z_PKèlachiaveprimaria.Deveessereunnumerosequenziale.
    • Z_ENTeZ_OPThoappenacompletatoconun"1".
    • ZDATECHECKED è solo la data di creazione della riga. Nel mio caso è stato assegnato automaticamente.
    • ZADAMID è un codice univoco per il libro o la serie.

    Questa è la tabella con i dati che ho aggiunto.

    LozAdamIdchehousatoprovienedaCalibre,quindicredochetupossausarequalsiasinumero.Tienipresentechequestinumeridevonoesserediversidalleserie/librichehaiacquistato.

    LarigaconzAdamId"1" è la mia serie, gli altri sono i libri.

  2. Aggiungi le relazioni all'interno di libri e serie nella tabella ZBKSERIESITEM . Questa tabella ha 16 colonne.

    • Z_PK,Z_ENTeZ_OPTnonsonoglistessidefinitinellatabellaprecedente.Z_PKdeveesseresequenzialee,Z_ENTeZ_OPThoappenacompletatorispettivamentecon"2" e "1".
    • ZISCONTAINER definisce se zAdamId è una serie o meno. "1" è vero, "0" è falso.
    • ZPOSITION definisce il numero di un libro in una serie, iniziando con "0" per il primo libro.
    • ZADAMID è lo stesso definito nella tabella precedente per lo stesso articolo.
    • ZAUTHOR è l'autore della serie / libri.
    • ZGENRE è il genere della serie / libri.
    • ZSEQUENCEDISPLAYNAME definisce come un libro viene visualizzato come membro di una serie. Ad esempio, per il primo libro, è possibile definire "Libro 1" o "Volume 1" o "Vol.1". Questa stringa verrà anteposta al nome del libro. Questa colonna deve essere vuota per la serie.
    • ZSERIESADAMID è la serie zAdamId del libro. Per la serie, è uguale a ZADAMID .
    • ZSERIESTITLE è il nome della serie.
    • ZSORTTITLE e ZTITLE è il nome del libro o della serie.

  3. RegolalatabellaZ_PRIMARYKEY.

    Hotrovatochequestatabellahasoloduerighe.Unoperciascunadelletabelleprecedenti.

    Qui devi cambiare la colonna Z_MAX al valore MAX (*) di Z_PK in ciascuna delle tabelle precedenti. Ad esempio, nel mio DB, per la tabella ZBKSERIESCHECK ( BKSeriesCheck ) il MAX (*) della colonna Z_PK è "22".

  4. Salva le modifiche.

  5. Apri il file Books.plist . Cerca ciascuno dei libri della serie e aggiungi queste chiavi:

    • serieAdamId come numero con il valore di ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId come numero con il valore di ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber come Stringa con il valore di ZBKSERIESITEM ~ ZPOSITION + 1 . (Ricorda che nella tabella inizia con "0".)
    • seriesTitle come stringa con il valore di ZBKSERIESITEM ~ ZTITLE .

  6. Salvailfile.ChiudiiBook(senonlohaichiusodall'inizio).Eliminailprocessocom.apple.BKAgentService.AvviaiBooks.Dovrestipotervedereletueserie.

Note

Quelle colonne che non ho nominato, le ho lasciate vuote e non ha influito sul risultato finale.

Penso che sia difficile mettere in ordine tutti i tuoi libri e serie quando ne hai molti. Spero di vedere un giorno qualcosa che faccia tutto questo auto magicamente.

Questo è il mio primo post. Spero che tutti lo trovino utile.

    
risposta data 09.02.2015 - 22:01
fonte
1

Ho notato che, in iBooks, ho un libro ( Eredità ) che iBooks evidenzia come membro di una serie (nel mio caso chiamato "Eragon" invece di "The Farseer Trilogy"). Per indagare su questo, ho scaricato Ereditarietà e spogliato il DRM usando Requiem (su una vecchia macchina virtuale) in modo da potermi citare nel codice sorgente del libro.

Purtroppo, ho brutte notizie. Ho usato Sigil per cercare la parola "Eragon". La parola "Eragon" non appare da nessuna parte nei metadati all'interno dell'epub, indicando che ciò non è possibile; Evidentemente iBook mantiene le informazioni sulla serie separate dai file epub effettivi.

    
risposta data 22.10.2014 - 09:59
fonte
1

Ho una soluzione:

  1. Vai allo store di iBooks e scarica gli esempi per i libri con cui stai cercando di lavorare.

  2. Cambia l'estensione da .epub a .zip.

  3. Estrai il file zip ed elimina la cartella denominata "OPS" (OEBPS per i fumetti).

  4. Individua l'eBook che hai e cambia da .epub a .zip.

  5. Estrai e trova OPS.

  6. Spostare OPS nella cartella ebook di esempio.

  7. Seleziona tutti i file nell'esempio e crea un .zip.

  8. Cambia l'estensione in epub.

  9. Fai lo stesso per ogni libro della serie.

  10. Trascina e rilascia in itunes.

  11. Sincronizza e vai!

Fai attenzione mentre entri nell'iBook, però, se vedi l'ebook che hai modificato, avrà un pulsante che dice "aggiorna". NON fare clic su Aggiorna, o dovrai farlo di nuovo.

Molto più facile che dover modificare sqlite, e funziona sia su Mac che su Windows.

    
risposta data 27.03.2015 - 16:36
fonte
0

L'ho provato personalmente e ho scoperto che la playlist nella stessa cartella in cui sono archiviati gli epub contiene informazioni sulla serie di libri. Ci sono i metadati della serieTitle e serieSequenceNumber impostato. Ma sfortunatamente cambiandolo non riescono a fare in modo che Ibooks elenchi libri come serie. Anche impostare Metadata nell'e-book stesso dicendo che la serie Title e seriesSequenceNumber non funziona. Poi ho trovato una cartella in usr. Contenitori di libreria com.apple.IBooksX Data Documents BKSeriesDatabase, ma contiene un database SQL. Forse l'informazione è memorizzata lì.

    
risposta data 19.12.2014 - 08:58
fonte

Leggi altre domande sui tag