Skip to content

Releases: jularboolean/legejo

Legejo 1.24.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 12:13
  • Searching the text sits beside the search box. On a wide screen the box
    for searching inside the books stands next to the search field instead of
    below it; on a phone it wraps below.
  • The admin page fits a phone. The buttons under Version go onto a line
    each when there is no room, instead of making the page wider than the
    screen.
  • What a Kobo gives up, said plainly. The handbook and the README now
    say that the Kobo store does not work on a Kobo while it syncs with Legejo,
    and that books bought from Kobo do not arrive; the handbook says how to
    switch back.

Legejo 1.24.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:18
  • The Kobo's reading time. The time a Kobo counts reading a book shows on
    the book's page, and the time over all books on My reading. AI assistants
    see it in the book details too. Marking a book read or unread in the web no
    longer resets the count on the device.
  • The browser opens at the Kobo's line. Read on a Kobo, then open the book
    in the browser: it opens at the sentence you stopped at on the device, not
    only at the same percentage. This works for books the Kobo got from
    Legejo; for others the percentage stands, as before.

Legejo 1.23.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 08:40
  • The admin page works with PostgreSQL and the text search on. Its
    account of the search inside the books came back from PostgreSQL in a form
    the server could not read, so the whole settings page failed to load and
    showed defaults instead. The account is read correctly now, and should it
    ever fail again, the rest of the settings load all the same.
  • The features on the admin page are evenly spaced. Some switches sat
    close under the explanation before them and others further down; now each
    feature is the same distance from the one before.

Legejo 1.23.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 08:06
  • Searching inside the books. Set LEGEJO_FULLTEXT=true and the search
    page gets a box for searching the text of the EPUBs, not only their titles
    and authors. Each book comes with the passages that match and where they
    are; choose one to open the book with the search already in it. Every word
    must occur, a word also finds longer words it begins, and words in double
    quotes must stand in a row. Books on shelves shared with you are searched
    too, and quoted, until you take them.
  • The text is kept once. The server reads the books in the background
    and keeps their text in the database: once per text, so an imported copy
    takes no room of its own, and a book whose details are edited is not
    stored again. The admin page shows how far it has come and how much text
    is kept. Started without the variable, the server drops the text again.
  • An assistant can search all the books. With the search turned on, the
    MCP server offers search_text, which finds words in the text of the whole
    library at once. It is still read-only.
  • The reader opens with a search. A link to a book can carry the words to
    look for; the reader opens with the search panel showing them.

Legejo 1.22.2

Choose a tag to compare

@github-actions github-actions released this 16 Oct 19:50
  • Book files are sent as they are read. A download to a Kobo, to the
    browser, through OPDS or through a private link no longer loads the whole
    book into the server's memory first. A comic made into a book for the
    device can be hundreds of megabytes, and two devices fetching at once held
    two such files; now each takes a small buffer, whatever its size.
  • A file that cannot be read no longer drops the connection. An EPUB with
    a stray unclosed tag in its package document made the server's file check
    fail in a way that cut the upload off without a word. The check now reads
    past such a tag, and the reading of an uploaded book runs off the request
    threads, so a bad file ends in a message to the uploader, and a large one
    no longer holds up other requests while it is read.
  • Mailed links use the instance's address. The links in verification and
    password-reset mails are built from LEGEJO_PUBLIC_URL when it is set, as
    invitation links already were, rather than from the address the request
    came in on.
  • One round of requests per page load. The app installed on a device
    asked the server for the session, settings and shelves twice each time a
    page loaded, once for the page and once to warm its offline cache; the
    cache already had them. Now once.
  • Pictures are checked before they are kept. A cover or an avatar must
    decode as a picture (JPEG, PNG, WebP or GIF), is stored under the type
    found in the file rather than the one the browser claimed, and is served
    with headers that keep a browser from treating it as anything but a
    picture. An avatar is scaled to 512 pixels and stripped of its metadata. A
    cover an EPUB declares as an SVG is served as one, under a policy that
    lets it draw and nothing more.
  • Only the routes that take files accept large bodies. Books, audio
    files and pictures have their own limits; every other request is capped
    at a megabyte. Past the limit an upload is told it is too large.
  • Passwords are checked off the request threads, so a burst of logins
    no longer slows down Kobo sync and downloads, and a login for a name that
    does not exist takes as long as a wrong password.
  • Mails from the login page are rationed: three verification or reset
    mails per address within the login window, and twenty per client address
    when the instance knows client addresses. Asking for a reset twice within
    the hour sends the same link again instead of voiding the first, and the
    mail goes out after the answer. A name is text in a mail, never markup.
  • Expired sessions and unconfirmed registrations are removed daily, so
    a name registered but never confirmed is free again after two days.
  • One rule for usernames wherever one is chosen or changed: 1 to 60
    characters, none of them control characters.
  • Upgrading: nothing to do.

Legejo 1.22.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 13:03
  • Covers that went missing. Some EPUB 3 files name their cover only in
    the older way, and such a book came into the library without one. Legejo
    now finds the cover on upload, and marks it in the file so that a Kobo and
    other reading apps find it too. Books already in the library get their
    cover back after the upgrade, by themselves; their page offers Repair
    the file
    to mark it in the file as well. A cover you chose yourself is
    left as it is.
  • Lists look like the fields beside them. In Safari, the lists for
    language, licence and federation were drawn as Safari's own small grey
    controls. Every list in the app is now drawn alike, in every browser and
    design.
  • Upgrading: nothing to do. Every book's file is checked once more after
    the upgrade, which takes a moment on a large library.

Legejo 1.22.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 11:06
  • Following a shelf. A shelf someone shares with you has a Follow
    button. Books that come onto a shelf you follow are then announced above
    your library, with the shelf, how many and their titles, and the number
    shows beside Shared shelves in the sidebar. On the shelf itself, the new
    ones are marked New. Opening the shelf counts as having seen them, and
    Mark as seen clears them all at once.
    • Each shelf you follow has an Atom feed of its own, for a feed reader:
      an address only you have, which needs no login and stops working when you
      stop following, or when the shelf is no longer shared with you.
  • Your reading, to take elsewhere. The Account page gives Reading as
    CSV (Goodreads)
    : the books you have read, are reading or want to read,
    with ratings, the date you finished and your shelves, in the form that
    StoryGraph, BookWyrm and Goodreads take in when importing.
  • A new password without mail. An admin can make a password reset
    link
    for a user on the Admin page, under Users, and pass it on; it works
    once, for a day. When no admin can log in, legejo reset-password <user>
    run on the server (with Docker Compose: docker compose exec legejo legejo reset-password <user>) prints such a link. Both are noted in the system
    log.
  • The export on the Account page is now headed Export your library.
  • The Legejo Cookbook has three new recipes: Following a Shared Shelf,
    Taking Your Reading Elsewhere, and Helping Someone Who Has Lost Their
    Password.
  • Upgrading: nothing to do. A table is added for the shelves people
    follow.

Legejo 1.21.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 12:33
  • You see what you pick in Safari. In Safari, and in the app on a home
    screen, text could only be picked blind: the reader has to lay a cover over
    the book there, and the browser draws no selection under it. Now the
    passage is marked as you drag the mouse, the pointer is a text cursor over
    the page, and on a phone a finger held on a word and then moved picks from
    there to where it is, marked as it moves.
  • From a book to its notes. The count of highlights on a book's page
    leads to that book on My notes.
  • Upgrading: nothing to do.

Legejo 1.21.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 11:49
  • My notes. A new page in the sidebar gathers every highlight and note
    from all your books: book by book, in the order they come in the text, the
    book you last changed something in first. Each shows the passage, your
    note set apart below it, and in small grey the chapter, how far through
    the book it is, and the page of the printed edition when the book has a
    page list. Search them all, show only those with notes, write or change a
    note right there, or remove a highlight. Show in the book opens the
    reader at the passage, marked for a moment, without moving your place in
    the book, and leads back to your notes. Export all gives every book's
    notes in one Markdown file. Highlights from a Kobo are there too.
  • Highlights made before this version get their chapter and place the next
    time their book is opened in the reader.
  • A click on a highlight opens it. On a computer, a click just beside a
    highlight's lines, or in the gap between them, could turn the page
    instead.
  • The Legejo Cookbook tells of My notes, in Going Through Your Notes.
  • Upgrading: nothing to do. A column is added for where a highlight
    stands.

Legejo 1.20.2

Choose a tag to compare

@github-actions github-actions released this 15 Oct 10:22
  • The app holds when the server is down, not only the network. With the
    network there but the server behind it down, the app installed on a phone
    showed an error, or asked you to log in, and "Books on this device" did
    nothing. Now it opens on the books saved on the device, as it does without
    a network, and finds its way back once the server answers again.
  • On a poor connection just after an upgrade, the app no longer mixes the
    page of the new version with the files of the old one, which made every
    page change fail. What could not be fetched is called that, not an
    internal error, and the links on the error page always do something.
  • Upgrading: nothing to do. The app on a phone takes the change the next
    time it is opened with the server in reach.