siêu dữ liệu loạt iBooks


13

Trong iBooks ngày 10.10, sách có thể có siêu dữ liệu sê-ri như trong hình.

Tôi cần thêm siêu dữ liệu nào vào một epub bên ngoài (tức là không phải từ cửa hàng ibook) để nó có thể được hiển thị dưới dạng một chuỗi?

chuỗi siêu dữ liệu


Bạn đã từng có thể chỉnh sửa nhiều thông tin này khi sách là một phần của iTunes. Tiêu đề Sê-ri là một lĩnh vực có thể chỉnh sửa được đưa vào để hỗ trợ các chương trình truyền hình. Bạn vẫn có thể thấy nó khi chỉnh sửa siêu dữ liệu chương trình TV trong iTunes trong tab Video (tên trường khác với sách). Ngay bây giờ với khả năng hạn chế của iBooks (đặc biệt là thiếu chỉnh sửa siêu dữ liệu), có vẻ như thông tin này được gắn với siêu dữ liệu từ cửa hàng iBooks. Có lẽ nó vẫn còn trong iite SQLite DB, vì vậy nếu ai đó biết cách chọc vào đó, tôi rất muốn nghe về nó.
Nick

Câu trả lời:


16

Tôi đã làm nó, nhưng nó khá khó khăn một chút.

Tóm lược:

Bạn phải thay đổi tệp Books.plist trong ~ / Library / Container / com.apple.BKAgentService / Data / Documents / iBooks / Books cho những cuốn sách bạn muốn có trong một bộ và bạn cũng phải thêm các hàng trong BKSeries - *. Cơ sở dữ liệu sqlite trên ~ / Library / Container / com.apple.iBooksX / Data / Documents / BKSeriesDatabase cho họ và loạt.

Đây là cách tôi đã làm:

Cơ sở dữ liệu có 4 bảng: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEYZ_METADATA . Tôi chỉ thay đổi ba bảng đầu tiên. "Loạt" được coi như một cuốn sách trong các bảng này.

  1. Thêm sách và sê-ri trong bảng ZBKSERIESCHECK . Bảng có 5 cột.

    Bảng có 5 cột

    • Z_PK là khóa chính. Nó phải là một số liên tiếp.
    • Z_ENTZ_OPT Tôi vừa hoàn thành với "1".
    • ZDATECHECKED chỉ là ngày hàng được tạo. Trong trường hợp của tôi, nó đã được gán tự động.
    • ZADAMID là một mã duy nhất cho cuốn sách hoặc bộ.

    Đây là bảng với dữ liệu tôi đã thêm.

    ID của sách và sê-ri

    Số zAdamId tôi đã sử dụng là từ Calibre, vì vậy tôi cho rằng bạn có thể sử dụng bất kỳ số nào. Hãy nhớ rằng những con số đó phải khác với bộ / sách bạn đã mua.

    Hàng có zAdamId "1" là sê-ri của tôi, những cuốn khác là sách.

  2. Thêm các mối quan hệ trong sách và sê-ri trong bảng ZBKSERIESITEM . Bảng này có 16 cột.

    Bảng ZBKSERIESITEM

    • Z_PK , Z_ENTZ_OPT không giống nhau được xác định trong bảng trước. Z_PK phải được tuần tự và, Z_ENTZ_OPT tôi vừa hoàn thành với "2" và "1" tương ứng.
    • ZISCONTAINER định nghĩa nếu zAdamId là một chuỗi hay không. "1" là đúng, "0" là sai.
    • ZPOSITION xác định số lượng sách trong một sê-ri , bắt đầu bằng "0" cho cuốn sách đầu tiên.
    • ZADAMID được định nghĩa tương tự trong bảng trước cho cùng một mục.
    • ZAUTHOR là tác giả của bộ / sách.
    • ZGENRE là thể loại của bộ / sách.
    • ZSEQUENCEDISPLAYNAME xác định cách hiển thị một cuốn sách với tư cách là thành viên của một bộ. Ví dụ: đối với cuốn sách đầu tiên, bạn có thể định nghĩa "Cuốn sách 1" hoặc "Tập 1" hoặc "Tập 1". Chuỗi này sẽ được thêm vào tên của cuốn sách. Cột này phải trống cho loạt.
    • ZSERIESADAMID là bộ zAdamId của cuốn sách. Đối với loạt bài, điều này giống như ZADAMID .
    • ZSERIESTITLE là tên của bộ truyện.
    • ZSORTTITLEZTITLE là tên của cuốn sách hoặc bộ.

    Bảng nội dung ZBKSERIESITEM

  3. Điều chỉnh bảng Z_PRIMARYKEY .

    Tôi thấy rằng bảng này chỉ có hai hàng. Một cho mỗi bảng trước đó.

    Bảng Z_PRIMARYKEY

    Tại đây, bạn phải thay đổi cột Z_MAX thành giá trị MAX (*) của Z_PK trong mỗi bảng trước đó. Chẳng hạn, trong DB của tôi, đối với bảng ZBKSERIESCHECK ( BKSeriesCheck ), MAX (*) của cột Z_PK là "22".

  4. Lưu các thay đổi.

  5. Mở tệp Books.plist . Tìm kiếm từng cuốn sách của bộ và thêm các phím này:

    • sê-riAdamIdSố với giá trị của ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemIdSố với giá trị của ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber dưới dạng Chuỗi với giá trị của ZBKSERIESITEM ~ ZPOSITION + 1 . (Hãy nhớ rằng trong bảng, nó bắt đầu bằng "0".)
    • sê-ri dưới dạng Chuỗi với giá trị của ZBKSERIESITEM ~ ZTITLE .

    Tập tin Books.plist

  6. Lưu các tập tin. Đóng iBooks (nếu bạn không đóng nó ngay từ đầu). Giết quá trình com.apple.BKAgentService . Bắt đầu iBooks. Bạn sẽ có thể xem loạt bài của bạn.

    Các kết quả

Ghi chú

Những cột tôi không nêu tên, tôi chỉ để trống và nó không ảnh hưởng đến kết quả cuối cùng.

Tôi nghĩ rằng thật khó để đặt tất cả sách và sê-ri của bạn đúng cách khi bạn có nhiều sách. Hy vọng sẽ thấy một ngày nào đó làm tất cả điều này một cách tự động.

Đây là bài viết đầu tiên của tôi. Tôi hy vọng mọi người thấy nó hữu ích.


2

Tôi có cách này:

  1. Chuyển đến cửa hàng iBooks và tải xuống các mẫu cho những cuốn sách bạn đang cố gắng làm việc.

  2. Thay đổi phần mở rộng từ .epub thành .zip.

  3. Giải nén zip và xóa thư mục có tên "OPS" (OEBPS cho truyện tranh).

  4. Xác định vị trí Sách điện tử bạn có và thay đổi từ .epub thành .zip.

  5. Giải nén nó và xác định vị trí OPS.

  6. Di chuyển OPS vào thư mục ebook mẫu.

  7. Chọn tất cả các tệp trong mẫu và tạo .zip.

  8. Thay đổi phần mở rộng thành epub.

  9. Làm tương tự cho mỗi cuốn sách trong bộ.

  10. Kéo và thả vào itunes.

  11. Đồng bộ hóa và có bạn đi!

Hãy cẩn thận trong khi đi vào cửa hàng iBook, nếu bạn thấy ebook bạn đã chỉnh sửa, nó sẽ có một nút "cập nhật". KHÔNG bấm cập nhật, hoặc bạn sẽ phải làm lại.

Dễ dàng hơn nhiều so với việc phải chỉnh sửa sqlite và nó hoạt động trên cả Mac và Windows.


Điều này sẽ làm việc cho sách điện tử SRMed?
dùng151019

Nếu nó trong cửa hàng iBooks làm mẫu thì có.
Dadiocoleman

1

Tôi nhận thấy rằng, trong iBooks, tôi có một cuốn sách ( Kế thừa ) mà iBooks nổi bật với tư cách là thành viên của một bộ (trong trường hợp của tôi có tên là 'Eragon' thay vì 'Bộ ba Farseer'). Để điều tra vấn đề này, tôi đã tải xuống Kế thừa và tước DRM bằng Requiem (trên một máy ảo cũ) để tôi có thể tìm hiểu về mã nguồn của cuốn sách.

Thật không may, tôi có tin xấu. Tôi đã sử dụng Sigil để tìm kiếm từ 'Eragon'. Từ 'Eragon' không xuất hiện trong siêu dữ liệu trong epub, chỉ ra rằng điều này là không thể; iBook rõ ràng duy trì thông tin loạt riêng biệt với các tệp epub thực tế.


Thật thú vị, lưu ý rằng tôi vẫn nghĩ rằng nó được lưu trữ cục bộ ở đâu đó có thể trong cơ sở dữ liệu ibooks sqlite, vì khi tôi thêm 2 cuốn sách trong một bộ khác, chúng được nhóm lại với nhau khi không được kết nối với internet
Bilal Syed Hussain

Bạn có nghĩa là bạn đã thêm hai cuốn sách từ một nguồn bên ngoài hoặc bạn đã mua hai cuốn sách thông qua iBooks?
John Coxon

Tôi đã mang chúng trên một máy tính khác sau đó chuyển chúng sang máy tính có ibooks nhưng không có internet.
Bilal Syed Hussain

0

Tôi đã tự mình thử và phát hiện ra rằng danh sách phát trong cùng thư mục lưu trữ các epub có thông tin về bộ sách. Có bộ siêu dữ liệu SeriesTitle và seriesSequenceNumber được đặt. Nhưng không may thay đổi nó, ở đâytt làm cho Ibooks liệt kê các cuốn sách thành một bộ. Đồng thời, thiết lập Siêu dữ liệu trong chính cuốn sách điện tử có tiêu đề sê-ri Tiêu đề và sê-riSequenceNumber không hoạt động. Sau đó, tôi tìm thấy một thư mục trong usr. Các thư viện chứa com.apple.IBooksX Tài liệu dữ liệu BKSeriesDatabase, nhưng nó chứa Cơ sở dữ liệu SQL. Có lẽ thông tin được lưu trữ ở đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.