|
|
#1 |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 5,906
Karma: 24240563
Join Date: Dec 2010
Device: Kindle PW2
|
[Plugin] epubveri - Simple epubveri wrapper
[Plugin] epubveri - Simple epubveri wrapper
Current Version: "0.0.6" This plugin is a very simple epubveri wrapper that will automatically download the latest epubveri binary and check the current epub. Preferences: You can change the following epubveri.json preference settings: Code:
"usage": false, "advisory": false, "update_check": true, "check_interval": 7, Disclaimer: Even though it's unlikely that the plugin will somehow corrupt the epub that you're working on or crash Sigil, you may want to save your ePub in Sigil before running this plugin and/or create a checkpoint. Installation: 1. Select Manage Plugins from the Plugins menu, then select Use Bundled Python, if it isn't already selected. 2. Click Add Plugin and select epubveri_v0.0.6.zip. This will install the epuberi plugin, which you can select via Plugins > Validation > epuberi. License: GNU General Public License v3 (GPL-3) Last edited by Doitsu; 08-23-2026 at 03:48 AM. Reason: New version attached |
|
|
|
|
|
#2 |
|
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 9,977
Karma: 7518950
Join Date: Nov 2009
Device: many
|
Added to Sigil Plugin Index. Thank you!
|
|
|
|
|
|
#3 |
|
just an egg
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,942
Karma: 9246004
Join Date: Mar 2015
Device: Kindle, iOS
|
Thanks Doitsu! Does this mean you consider epubveri ready for production use? (The test plugin you sent me so super fast!)
|
|
|
|
|
|
#4 |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 5,906
Karma: 24240563
Join Date: Dec 2010
Device: Kindle PW2
|
|
|
|
|
|
|
#5 | |
|
Resident Curmudgeon
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 84,749
Karma: 153788055
Join Date: Nov 2006
Location: Roslindale, Massachusetts
Device: Kobo Libra 2, Kobo Aura H2O, PRS-650, PRS-T1, nook STR, PW3
|
Quote:
I only use the CLI now when I want to post output from epubveri and epubcheck to help fixing errors. |
|
|
|
|
|
|
#6 | |
|
just an egg
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,942
Karma: 9246004
Join Date: Mar 2015
Device: Kindle, iOS
|
Quote:
Anyway, I will start using it and compare with epubcheck. Thank you! |
|
|
|
|
|
|
#7 | |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 5,906
Karma: 24240563
Join Date: Dec 2010
Device: Kindle PW2
|
epubveri is getting very close to displaying the same number of errors and warnings as EPUBCheck. According to the official website:
Quote:
|
|
|
|
|
|
|
#8 |
|
just an egg
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,942
Karma: 9246004
Join Date: Mar 2015
Device: Kindle, iOS
|
|
|
|
|
|
|
#9 |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 5,906
Karma: 24240563
Join Date: Dec 2010
Device: Kindle PW2
|
FYI: I've attached a new plugin version with preference settings. For example, you can now hide USAGE messages and select how often the plugin will check for updates.
Last edited by Doitsu; 08-23-2026 at 06:07 AM. |
|
|
|
|
|
#10 |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 114
Karma: 200000
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
I read both epubveri plugins line by line. Not because anyone reported a problem — because for most people the plugin is epubveri, and I had never looked. Most of what I found turned out to be our documentation's fault rather than yours, so let me start there.
Five things you had no way to know, because we never wrote them down. All five are now in INTEGRATING.md:
And one that is worth fixing first: exit code 2 still has a full report. We documented it as though it meant "nothing to read", which is wrong. There are three shapes:
The plugin reports "Return code: {} epubveri {}".format(returncode, stderr), so in the two commonest cases the user sees Return code: 2 epubveri and nothing else, while epubveri had explained both in plain words. Parsing stdout first, and falling back to stderr only when there is no JSON to parse, is the whole fix. Three small things in the plugin itself, found by reading rather than running:
One suggestion, with its limits stated. Since 0.12.4 every release ships SHA256SUMS.txt and a signed build attestation, and neither plugin checks either — so that work currently reaches nobody. Verifying the archive is about twenty lines and the doc now has the recipe. Be clear about what it buys, though: both files come from the same host over the same connection, so it is no protection against someone who controls GitHub. What it does catch is a truncated download, which otherwise installs as a binary that fails in a way neither of us could diagnose, and a release where one archive was replaced and the checksum file was not. None of this is urgent and none of it came from a user. If any of it is easier as a patch than as a description, say so and I will write it. |
|
|
|
|
|
#11 | |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 5,906
Karma: 24240563
Join Date: Dec 2010
Device: Kindle PW2
|
Quote:
![]() Since I might misinterpret some of your comments and I'm rather busy this week, I'd really appreciate it, if you updated plugin.py and main.py as you see fit and attached the updated files in this thread. I'll then replace both files in the plugin zip files and upload them to the Sigil and Calibre threads. |
|
|
|
|
|
|
#12 |
|
Resident Curmudgeon
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 84,749
Karma: 153788055
Join Date: Nov 2006
Location: Roslindale, Massachusetts
Device: Kobo Libra 2, Kobo Aura H2O, PRS-650, PRS-T1, nook STR, PW3
|
@Kayadelenium, are you going to do a code review of the calibre version of the plugin?
|
|
|
|
|
|
#13 |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 114
Karma: 200000
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
Doitsu — I spent today on this. Rather than patch plugin.py and main.py, I have written my own, from Sigil's own BSD-licensed plugin API. I could not have taken your code into it in any case: epubveri is dual-licensed, so its repositories cannot accept outside code until there is a contributor agreement, and there is not one yet.
Your plugins are why it exists. They proved the idea, and reading both is what taught me what an editor integration actually needs — most of what I found was my own documentation's fault rather than anything in your code. What mine does, in case any of it is useful to you:
Two things I would rather ask than decide on my own. The name. Both are called epubveri, and Sigil keys plugins by name — so a user cannot have both installed, one replaces the other, and they even share the same preferences file under plugins_prefs/epubveri. That is your users as much as mine. I am happy to rename mine to keep yours where it is; tell me what you would prefer. Settings in a Sigil plugin. I could not find a way to give one a preferences screen — Manage Plugins shows name, version, author, type, engine and platforms and nothing else, so the only routes I found were editing the JSON by hand or shipping a second plugin for one checkbox. I took neither and show everything instead, labelled. You have written more of these than anyone; is there a way I have missed? It is at https://github.com/veripublica/epubveri-plugins, GPL-3, and unlike the epubveri repository it needs no contributor agreement — so anything in it is yours to take, and you are very welcome to send changes. |
|
|
|
|
|
#14 | |
|
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 5,906
Karma: 24240563
Join Date: Dec 2010
Device: Kindle PW2
|
Quote:
Code:
<autostart>true</autostart> IMHO, this would be overkill though, since most Sigil users are used to manually editing .json files, and preference dialogs are only useful for settings that will be changed a lot. Since your plugin is superior to mine, I really think that you should create a new thread for it. I'll then ask KevinH or DiapDealer to delete mine. Otherwise, I could simply remove my plugin.zip file and add a link to the official release page. The same goes for the Calibre version. |
|
|
|
|
|
|
#15 |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 114
Karma: 200000
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
Doitsu — thank you, and not only for the kind words. You tested it the same day, gave me a concrete fix, answered the settings question, and offered to stand down, all before I had asked for any of it.
autostart is in. I read PluginRunner.cpp before taking it and you are plainly right: without it the runner opens a dialog whose only content is a Start button, and a validation asks the user nothing, so that was a click for nothing. I left autoclose alone — line 553 already accepts and closes for any plugin of type validation. And your answer on preferences settled it. I had already put the switch in the JSON and was uneasy about it; hearing from the person who has written the most of these that a dialog is overkill for a setting nobody changes twice is what I needed. The file now gets "autoupdate": true written into it on the first run, so at least it says that a choice exists. First release is up: https://github.com/veripublica/epubv...g/sigil-v0.1.0 It is 0.1.0 rather than 1.0.0 on purpose. Two people have run it, on macOS, for one day, and nobody has tried it on Windows — where about three quarters of epubveri's downloads go. Three defects turned up today just from running it in Sigil that twenty-six unit tests had not caught, and that rate has not flattened yet. Please do not have your thread deleted, and please do not take your plugin down yet — either of them. Mine is one day old, has been run by two people on one operating system, and nobody has tried it on Windows. If it turns out to be broken there, your plugin is what those users still have. Taking it down now would remove the fallback at exactly the moment it is most likely to be needed. The thread itself I would keep whatever happens: it holds your work and the discussion in it, and deleting that takes away the record of where this came from. When mine has been used for a while and has held up, I will say so here and you can decide then, with something to decide on. Until then the offer to rename mine stands, if two plugins with one name is awkward while both are installable. On calibre: I have not started. What is in the repository is a skeleton — the half that talks to epubveri works, the half that talks to calibre has never been run inside it. I am going to try to look at it tomorrow. Yours is the only working one and should stay that way for now. |
|
|
|
![]() |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [GUI Plugin]Simple Goal | sheldonrrr | Plugins | 2 | 08-09-2026 12:46 AM |
| [Plugin] ACE - DAISY EPUB Accessibility Checker wrapper | Doitsu | Plugins | 40 | 12-10-2025 10:53 AM |
| [Plugin] ImgShrinker (ImageMagick-Wrapper) | Mark Nord | Plugins | 19 | 06-26-2025 11:35 AM |
| Help with simple plugin development | libeluratio | KOReader | 3 | 07-14-2024 05:13 AM |
| [Plugin] CSSLint - Simple CSSLint wrapper | Doitsu | Plugins | 1 | 03-23-2016 06:51 PM |