Your comments

Before I do that, could you confirm that you are using version 1.9.1 ?

Yes, logs are quite normal.

I'll try to build a special version with extra debugging info to track the problem.


When Ubooquity indexes files, it opens them to extract the cover and the metadata.

To do that, it needs the complete file (even more so when it serves pages for the online reader), doing so on a file hosted in a cloud is unofortunately not possible.



Ubooquity reads metadata stored in the ComicRack format and displays some of them.

Which ones of the missing fields would you want Ubooquity to display ?


Here is the full schema of the ComicRack metadata format:


<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ComicInfo" nillable="true" type="ComicInfo" />
  <xs:complexType name="ComicInfo">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Title" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Series" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Number" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="-1" name="Count" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" default="-1" name="Volume" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="AlternateSeries" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="AlternateNumber" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="-1" name="AlternateCount" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Summary" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Notes" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="-1" name="Year" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" default="-1" name="Month" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Writer" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Penciller" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Inker" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Colorist" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Letterer" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="CoverArtist" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Editor" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Publisher" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Imprint" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Genre" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Web" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="0" name="PageCount" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="LanguageISO" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="" name="Format" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" default="Unknown" name="BlackAndWhite" type="YesNo" />
      <xs:element minOccurs="0" maxOccurs="1" default="Unknown" name="Manga" type="YesNo" />
      <xs:element minOccurs="0" maxOccurs="1" name="Pages" type="ArrayOfComicPageInfo" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="YesNo">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unknown" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Yes" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfComicPageInfo">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Page" nillable="true" type="ComicPageInfo" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ComicPageInfo">
    <xs:attribute name="Image" type="xs:int" use="required" />
    <xs:attribute default="Story" name="Type" type="ComicPageType" />
    <xs:attribute default="false" name="DoublePage" type="xs:boolean" />
    <xs:attribute default="0" name="ImageSize" type="xs:long" />
    <xs:attribute default="" name="Key" type="xs:string" />
    <xs:attribute default="-1" name="ImageWidth" type="xs:int" />
    <xs:attribute default="-1" name="ImageHeight" type="xs:int" />
  </xs:complexType>
  <xs:simpleType name="ComicPageType">
    <xs:list>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FrontCover" />
          <xs:enumeration value="InnerCover" />
          <xs:enumeration value="Roundup" />
          <xs:enumeration value="Story" />
          <xs:enumeration value="Advertisment" />
          <xs:enumeration value="Editorial" />
          <xs:enumeration value="Letters" />
          <xs:enumeration value="Preview" />
          <xs:enumeration value="BackCover" />
          <xs:enumeration value="Other" />
          <xs:enumeration value="Deleted" />
        </xs:restriction>
      </xs:simpleType>
    </xs:list>
  </xs:simpleType>
</xs:schema>

This modification would be too complex, it would require virtual entries that could lead to different files depending on the user profile.


On solution would be to have separate folders for different formats. But this is not possible if you use Calibre to manage your collection.

Another solution (which is not ideal but would work) would be to have two instances of Ubooquity running (don"t forget to use different port numbers).

By using the "scan exclusion pattern" in the advanced options, one instance would exclude epubs files (use the pattern ".*.epub", without quotes ) and display only mobi, and the other one would do the opposite (".*.mobi").


That's something I had planned from the start. So it'll be definitely done someday. I just don't know when yet.

I understand, but it will have to wait for a hypothetical complete "templatization" of Ubooquity (allow users to fully customize pages structure in addition to the CSS).

Server side bookmarks (allowing you to resume reading on a different device) are still planned and are quite high on my todo list.

Read/unread flag will be a side effect of this development.


You can expect it this year.

Thanks for the feedback !