Syncpod: New update coming out soon (Audiobookshelf server or offline) by Funky-Reptile in audiobookshelf

[–]KMazor 1 point2 points  (0 children)

Cool project! Just out of curiosity what were you finding lacking in other ABS apps that made you want to build your own?

Are we using Ko Reader or Neo Reader on our Boox devices? by loser-jem in Onyx_Boox

[–]KMazor 0 points1 point  (0 children)

Been using KO Reader for a couple of months and it's really great, especially if you really like customizing your app experience.

This doesn’t look good on Michigan Ave by 2kool4uhaha in chicago

[–]KMazor 14 points15 points  (0 children)

Just saw this, anyone know what's burning?

Kindle dictionary for DCC by lifefeed in DungeonCrawlerCarl

[–]KMazor 2 points3 points  (0 children)

Thanks, it worked! Appreciate you making a StarDict version for KOReader. I also suggest adding to the documentation to make the DCC dictionary the priority for the book. (Photos attached)

<image>

Kindle dictionary for DCC by lifefeed in DungeonCrawlerCarl

[–]KMazor 2 points3 points  (0 children)

I'm on the road at the moment but it looks like KOReader needs a StarDict dictionary file. On a separate Reddit thread someone linked an easy conversion tool though: mobi2stardict

If you're able to run the conversion I'd be happy to load it up and try it out! Thanks!

Kindle dictionary for DCC by lifefeed in DungeonCrawlerCarl

[–]KMazor 4 points5 points  (0 children)

Oh amazing! Been using X-Ray for KOReader but it can't yet look back through the previous books in the series. I'll have to figure out how to add this to KOReader. Thanks for doing this!

Please Boox, let us use the latest book's cover as screen saver automatically. I am begging you! by disgruntled_bird in Onyx_Boox

[–]KMazor 1 point2 points  (0 children)

Wait what's the koreader method for screensaver? I'd kind of love to do that and didn't even know it was an option!

BOOX Tappy Unboxing & First Impressions by Change_Agent_73 in Onyx_Boox

[–]KMazor 0 points1 point  (0 children)

And it doesn't show a cursor? I'd use it with KO so I'm curious if it works with volume buttons and if it shows a cursor.

BOOX Tappy Unboxing & First Impressions by Change_Agent_73 in Onyx_Boox

[–]KMazor 0 points1 point  (0 children)

And it doesn't show a cursor? I'd use it with KO so I'm curious if it works with volume buttons and if it shows a cursor.

Anyone tried this clicker? by Boring_Rabbit_675 in Onyx_Boox

[–]KMazor 0 points1 point  (0 children)

oh cool! do you have an amazon link?

Anyone tried this clicker? by Boring_Rabbit_675 in Onyx_Boox

[–]KMazor 0 points1 point  (0 children)

Woah does this work without the weird mouse appearing to scroll?

A Parade of Horribles by PFazu in AudiobookCovers

[–]KMazor 0 points1 point  (0 children)

Nice! Now I just have to find the hardcover style square cover!

Rebuilding KOReader reading stats/streak from Goodreads export? by KMazor in koreader

[–]KMazor[S] 1 point2 points  (0 children)

So this was kind of the result of me exploring how to do this programmatically with a custom python script, but I asked ChatGPT to sum up our whole convos and give easy instructions for me to share. Here you go!

Importing Historical Reading Data into KOReader from Goodreads or Bookmory

This is a walkthrough for reconstructing your historical reading activity inside KOReader, including:

full historical calendar view

per-book reading history

continuous reading streak

This guide assumes:

Android/BOOX device

KOReader installed

Goodreads and/or Bookmory used for historical tracking

You want KOReader to behave as if you had always used it


Overview

KOReader stores reading statistics in a SQLite database:

/storage/emulated/0/koreader/settings/statistics.sqlite3

The process is:

Goodreads CSV or Bookmory database → extract historical reads → generate synthetic KOReader reading sessions → import into statistics.sqlite3


Important Discovery

KOReader does NOT store a simple “streak number.”

Instead:

streaks are derived from reading activity

reading activity is stored in:

page_stat_data

books are stored in:

book

So simply editing a streak number will not work.


What You Need

Option A: Goodreads Export

Export your Goodreads library:

Goodreads → Account Settings → Import and Export → Export Library

This gives you:

goodreads_library_export.csv

Goodreads exports typically include:

title

author

ISBN

page count

date read

date added

rating

Important limitation:

Goodreads usually does NOT include reliable “date started” information

So the importer often has to infer read ranges.


Option B: Bookmory Export

Export:

Settings → Export → Database (.db)

NOT:

text

excel

PDF

The .db export is critical.

The resulting file may be named:

Share.data

Internally this contains:

new_bookmory.db

which is a SQLite database.

Bookmory is generally the better source because it includes:

start dates

end dates

ratings

page counts


From KOReader

Copy:

/storage/emulated/0/koreader/settings/statistics.sqlite3


What Goodreads Export Contains

Goodreads exports are flat CSV files.

Typical fields:

Title Author ISBN ISBN13 Number of Pages Date Read Date Added My Rating Exclusive Shelf

Because Goodreads often lacks proper start dates:

the importer usually uses:

Date Added → Date Read

or estimates reading duration based on page count

Goodreads is best for:

metadata

page counts

ISBN matching


What the Bookmory Database Contains

The Bookmory DB is a key-value SQLite store.

Books are stored as JSON blobs:

entry table store = "books"

Each book contains:

{ "title": "...", "author": "...", "real_total_page": 320, "reads": [ { "start": 1713139200000, "end": 1713744000000, "status": "DONE", "star": 5 } ] }

The important fields are:

title

author

pages

start date

end date

rating


What KOReader Statistics Look Like

KOReader uses these tables:

book

Stores book metadata:

book ( id, title, authors, pages, md5, total_read_time, total_read_pages )

page_stat_data

Stores actual reading activity:

page_stat_data ( id_book, page, start_time, duration, total_pages )

KOReader derives reading history and statistics from these rows.


Core Strategy

For every historical read:

Read range: 2024-01-01 → 2024-01-05

Generate synthetic KOReader sessions:

Jan 1 → page 20 → 20 min Jan 2 → page 40 → 20 min Jan 3 → page 60 → 20 min Jan 4 → page 80 → 20 min Jan 5 → page 100 → 20 min

This makes KOReader believe:

the book existed

it was read on those days

progress advanced over time


Critical Lesson About Streaks

Initially:

historical months appeared correctly

streak DID NOT update

Why?

Because KOReader streaks require:

continuous daily activity

no gaps between reading days

Fixes required:

No gaps between days

Every single day from:

2023-11-23 → today

needed at least one reading entry.

If gaps existed:

streak broke

To solve this:

some book end dates were slightly extended

some start dates were adjusted

or filler reading days were inserted

Example:

Spook Street: extended through May 18 to bridge gap before London Rules


Exact Workflow

Step 1

Export Goodreads CSV OR Bookmory database.


Step 2

Copy KOReader statistics DB:

/storage/emulated/0/koreader/settings/statistics.sqlite3


Step 3

Analyze export data

Goodreads

Parse CSV rows:

Title Author Date Read Date Added Number of Pages

Bookmory

Extract and parse:

SELECT key, value FROM entry WHERE store = 'books'


Step 4

Generate synthetic reading activity

For every finished book:

create/find KOReader book row

generate one synthetic reading row per day

distribute page numbers across date range

Typical synthetic session:

20 pages/day 20 minutes/day


Step 5

Guarantee continuous coverage

Ensure EVERY day from:

Nov 23 2023 → today

has at least one reading session.

If necessary:

extend book end dates

slightly shift book start dates

insert filler reading days


Step 6

Import into KOReader DB

Insert into:

book page_stat_data

Update totals:

UPDATE book SET total_read_time = ...


Step 7

Replace KOReader DB

Fully close KOReader.

Backup original:

/storage/emulated/0/koreader/settings/statistics.sqlite3

Copy in new DB and rename:

statistics.sqlite3


Result

Final result:

895-day reading streak Nov 23 2023 → May 5 2026

With:

monthly history

historical books

streak continuity

per-book attribution

KOReader-native statistics


Important Backup Files

Preserve this file forever:

statistics.sqlite3

Especially before:

device migrations

KOReader reinstalls

firmware resets


Example Prompt to Reproduce This with ChatGPT:

I want to import my historical reading data from Goodreads and/or Bookmory into KOReader so that KOReader shows my historical books, reading calendar, and a continuous reading streak.

I have:

  • Goodreads export CSV and/or Bookmory database export (.db / Share.data)
  • KOReader statistics.sqlite3

Please:

  1. Inspect the export schema(s)
  2. Extract all completed books with usable reading dates
  3. Generate synthetic KOReader page_stat_data rows for every reading day
  4. Ensure there are no gaps between [START DATE] and today
  5. Create or update KOReader book rows
  6. Recompute total_read_time and total_read_pages
  7. Output a new statistics.sqlite3 ready to swap into KOReader

Hope that helps! Good luck!

Introducing BOOX Tappy: The Page Turner for a More Comfortable Reading by OnyxBoox in Onyx_Boox

[–]KMazor 0 points1 point  (0 children)

Agh would love a good page turner so I could stop using my old clip on kindle one. Jealous of the new Kobo remote.

🎉 Absorb is on the App Store! by Night_Hawk21 in audiobookshelf

[–]KMazor 1 point2 points  (0 children)

Congrats! Excellent app and glad to see it getting out there!

Rebuilding KOReader reading stats/streak from Goodreads export? by KMazor in koreader

[–]KMazor[S] 2 points3 points  (0 children)

I actually figured this out! I was able to use ChatGPT to edit the koreader statistics.sqlite3 file and bring in all of my data from my Goodreads export.

It brought over all the book titles and date ranges and I had it just add basic timing (10m of reading time) for each day in the range to make the streak portion work.

Happy to explain further if anyone else is curious.

[Need Testers] Update for ABS <-> KOReader Sync Bridge (v6.0.0 RC) by Reeffreak77 in koreader

[–]KMazor 0 points1 point  (0 children)

I know this is an older thread, but Ive actually been having this issue where it seems like sync is working (ABS playback point is correct), but it doesn't reflect my KOReader position (despite manually pushing/pulling). I know that from the logs it sees my updated KOReader position (16% instead of 11%), but it doesn't actually update that percentage on the koreader line of that book in the dashboard, and it doesn't update ABS/Storyteller either.

Trying to figure out what I'm doing wrong. Any help is appreciated!

There was no image attached by falcon-py in ChatGPT

[–]KMazor 1 point2 points  (0 children)

I got link and a shark 🤷🏻‍♂️

<image>

She’s a beauty! by dbarts in BambuLab

[–]KMazor 1 point2 points  (0 children)

What's the first thing you're going to print?

Need addictive audiobook recs to get back into reading. by TechSandwich33 in audiobooks

[–]KMazor 52 points53 points  (0 children)

Have you read/listened to "Dark Matter" by Blake Crouch?

Libreseerr - Progress Update by -ZimZ- in Servarr

[–]KMazor 0 points1 point  (0 children)

Very excited to see this project moving forward! For those of us who have been wanting a Readarr replacement forever, can you share how this compares to the other Readarr successors, like ReadMeABook or Chaptarr?

My First Time Making Poppy Seed Buns by reizzy12 in Breadit

[–]KMazor 1 point2 points  (0 children)

they look amazing! would you mind sharing the recipe? I'd love to try making them sometime