Commit Graph

76 Commits

Author SHA1 Message Date
hius07
72f2d4b2ff opdsbrowser: fix "Downloading…" message (#13742)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-05-08 17:22:25 +03:00
hius07
6efae12ba0 OPDSBrowser: analyze acquisition mimetype (#13535)
To handle non-standard relations.
Closes #13520.
2025-04-09 13:01:04 +02:00
Renee
7b68fb64f0 [plugin] opdsparser: add support for hexadecimal code points (#13482) 2025-04-02 12:43:42 +02:00
hius07
93ee0a1415 File browser: sort by metadata (#13437)
Some checks are pending
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Waiting to run
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Waiting to run
2025-03-24 19:12:46 +02:00
hius07
a852d535d1 opdsbrowser: fix calling file-downloaded dialog (#13443)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-03-22 17:10:23 +01:00
hius07
a3d4e97545 opdsbrowser: fix group download (#13428) 2025-03-19 08:00:35 +02:00
ShowY
70d13be32a Opds-pse v1.2 [LastRead], add resume from page button (#13357)
Some checks failed
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Has been cancelled
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Has been cancelled
2025-03-05 20:31:20 +01:00
hius07
daeacef838 OPDS: group downloading (#13338) 2025-03-02 11:22:18 +02:00
hius07
41dd3d5d8a OPDS: raw server filenames for download (#13230)
Some checks are pending
macos / macOS 13 x86-64 🔨15.2 🎯10.15 (push) Waiting to run
macos / macOS 14 ARM64 🔨15.4 🎯11.0 (push) Waiting to run
2025-02-11 14:10:57 +02:00
NiLuJe
08f02bf915 OPDS: Don't append Search twice for feeds with an OpenSearchDescription 2024-06-04 20:28:34 +02:00
NiLuJe
8a37917e5c OPDS: Fixup the last commit
We don't want to actually change the page when we request a fill on the
initial fetch.
2024-06-04 20:28:34 +02:00
NiLuJe
04ccd80b86 OPDS: Fix progressive fill on pagination
I have... no idea how this could have ever worked, the Menu handler has
*always* been called OnNextPage o_O.
2024-06-04 20:28:34 +02:00
NiLuJe
f3a67a4f4d OPDS: Handle searching in Calibre's OPDS server
Re: #11968
2024-06-04 20:28:34 +02:00
hius07
f4a5a2b60a TextViewer: add dialog to set font size and justify text (#11210) 2023-12-14 07:50:54 +02:00
hius07
684fc22ffc TextViewer: font size (#10911) 2023-09-19 08:39:25 +03:00
hius07
b33971b92d OPDS fixes (#10657) 2023-07-11 07:49:27 +03:00
hius07
3eee5dd14c OPDS: view book cover (#10555)
(1) New "Book cover" button in the download dialog.
(2) Detect book that can be borrowed only (Internet Archive).
There is no support for borrowing, just showing a disabled button.
(3) Fixed some libraries, all of them work except Gallica.
2023-06-09 20:58:50 +02:00
hius07
4f23a6fafa Custom book covers (#10329) 2023-05-03 15:43:05 +03:00
hius07
aedb713f82 Menu widget: cleanup (#10241) 2023-03-25 09:48:30 +02:00
NiLuJe
45a4aac3d3 Notification: Fence the *display* update in an attempt to avoid upsetting some boards... (#10083)
Re: https://github.com/koreader/koreader/issues/9806#issuecomment-1416827447

Depends on https://github.com/koreader/koreader-base/pull/1576

Includes assorted cosmetics tweaks related to duplicate `setDirty` calls when instantiating widgets that already have an `onShow` handler doing it. (I left widgets doing it in `update` instead of `init` alone, on the assumption that callers *may* be relying on that behavior when updating widgets at runtime. This might actually never matter, and it certainly didn't for ScreenSaverWidget, which is why I removed it from there ;p).
2023-02-07 01:01:05 +01:00
Frans de Jonge
e1fe897c9b [i18n] Add a couple of explanatory comments for translators (#9878) 2022-12-11 10:08:46 +01:00
hius07
905d5610ba OPDSbrowser: accept catalogs without header in response (#9829)
Such catalogs are not cached.
Closes #6088.
2022-11-25 14:48:54 +01:00
Dylan Calvin
c5cd87f09a (OPDS) Progess Sync Support for Kavita & Various Refactor Fixes (#9750) 2022-11-12 08:27:57 +02:00
hius07
e1a52b5881 OPDSbrowser: fix uninitialized calibre (#9718) 2022-10-31 09:07:37 -04:00
hius07
c36a2929ac OPDSbrowser refactoring (#9703)
Refactoring:
-removed duplicated code
-removed passing of username/password through all the modules
-logical order of the methods
-some optimizing and drying
-comments

New features:
-subcatalog link can be saved to the list of servers (eg: direct link to the catalog of books by an author)
-more book information can be fetched and shown (Book information)
-fixed access to the Standard library (by @KGKopli, closes #9372)
2022-10-29 19:06:42 +02:00
Dylan Calvin
07be320722 [plugin] OPDS: Add stream from page (#9681) 2022-10-26 11:31:16 +02:00
bigdale123
cda419dd7a OPDS-PS: Fix hardcoded namespace in count (#9650)
Turns out the namespace is dynamic, so, just look for ':count' and hope there won't be any conflicts ;).
2022-10-20 16:45:05 +02:00
NiLuJe
da65ac8b02 Cleanup various varargs shenanigans (#9624)
* Iterate over varargs directly via select if possible
* Use table.pack otherwise (https://github.com/koreader/koreader-base/pull/1535).
* This allows us to simplify a few Logger calls, as logger now handles nil values.
2022-10-12 19:59:48 +02:00
NiLuJe
eef938996f MultiDialog: Fix an extremely nasty API misuse
Stuff was poking at the class object, not the instance's :s.

Fix #9599
2022-10-06 19:28:26 +02:00
NiLuJe
fadee1f5dc Clarify our OOP semantics across the codebase (#9586)
Basically:

* Use `extend` for class definitions
* Use `new` for object instantiations

That includes some minor code cleanups along the way:

* Updated `Widget`'s docs to make the semantics clearer.
* Removed `should_restrict_JIT` (it's been dead code since https://github.com/koreader/android-luajit-launcher/pull/283)
* Minor refactoring of LuaSettings/LuaData/LuaDefaults/DocSettings to behave (mostly, they are instantiated via `open` instead of `new`) like everything else and handle inheritance properly (i.e., DocSettings is now a proper LuaSettings subclass).
* Default to `WidgetContainer` instead of `InputContainer` for stuff that doesn't actually setup key/gesture events.
* Ditto for explicit `*Listener` only classes, make sure they're based on `EventListener` instead of something uselessly fancier.
* Unless absolutely necessary, do not store references in class objects, ever; only values. Instead, always store references in instances, to avoid both sneaky inheritance issues, and sneaky GC pinning of stale references.
  * ReaderUI: Fix one such issue with its `active_widgets` array, with critical implications, as it essentially pinned *all* of ReaderUI's modules, including their reference to the `Document` instance (i.e., that was a big-ass leak).
* Terminal: Make sure the shell is killed on plugin teardown.
* InputText: Fix Home/End/Del physical keys to behave sensibly.
* InputContainer/WidgetContainer: If necessary, compute self.dimen at paintTo time (previously, only InputContainers did, which might have had something to do with random widgets unconcerned about input using it as a baseclass instead of WidgetContainer...).
* OverlapGroup: Compute self.dimen at *init* time, because for some reason it needs to do that, but do it directly in OverlapGroup instead of going through a weird WidgetContainer method that it was the sole user of.
* ReaderCropping: Under no circumstances should a Document instance member (here, self.bbox) risk being `nil`ed!
* Kobo: Minor code cleanups.
2022-10-06 02:14:48 +02:00
NiLuJe
83a2965d6b Misc: Unify error logging on network errors (#9523)
Making sure we get the relevant information in the logs, and that the UI feedback (if any), is meaningful and readable.
2022-09-17 00:08:00 +02:00
Alex Cabal
39b0ca2f36 Update Standard Ebooks OPDS URLs to new URL (#9371) 2022-08-19 19:20:34 +02:00
NiLuJe
a4f6693919 OPDSBrowser: Handle renderImageData failure in streamPages 2022-06-13 02:37:01 +02:00
Tesseract Cat
d4bbd74208 Add OPDS PSE 1.0 support (#8919)
This PR adds support for the unofficial page streaming extension for OPDS. See: https://anansi-project.github.io/docs/opds-pse/specs/v1.0. This is useful for streaming comics from a remote server.

Addresses #7500.
2022-03-18 21:27:17 +01:00
Philip Chan
107156c0a8 [feat] Non-touch improvements (#8859)
FocusManager: fix round x use y layout
FocusManager: add tab and shift tab focus navigation support
FocusManager: handle Press key by default
FocusManager: make sure selected in instance level
FocusManager: add hold event support
FocusManager: Half move instead of edge move
FocusManager: add keymap override support
FocusManager: refocusWidget will delegate to parent FocusManager
Focusmanager: refocusWidget can execute on next tick
inputtext: can move out of focus on back
inputtext: fix cannot exit for non-touch device
inputtext: fix cannot input text with kindle dx physical keyboard
fontlightwidget: add non-touch support
datetimewidget: add non-touch support
datetimewidget: fix set date failed in kindle DX, fix datetimewidget month range to 1~23 by default
datetimewidget: make hour max value to 23
multiinputdialog: add non-touch support
checkbox: focusable and focus style
virtualkeyboard: no need to press two back to unfocus inputtext
virtualkeyboard: collect FocusManager event key names to let VirtualKeyboard disable them
openwithdialog: add non-touch support
inputdialog: can close via back button
enable all InputDialog and MultiInputDialog can be close by back
keyboardlayoutdialog: non-touch support
readertoc: non touch device can expand/collapse in toc
bookstatuswidget: non touch support
keyvaluepage: non-touch support
calendarview: non-touch support
2022-03-04 21:20:00 +01:00
hius07
8bb08b503a Cloud storage: enhance download dialog, fix Dropbox uploading (#8809)
(1) ButtonDialogTitle: new method setTitle()

(2) OPDSbrowser
-use setTitle() instead of open/close ButtonDialogTitle (no visual changes to the download dialog)
-reduce logger.info output to avoid flooding crash.log

(3) CloudStorage
-enhance download dialog (similar to OPDS), much optimized code of downloadFile
-fix a bug: cannot create new folder or upload files to the root of the Dropbox storage
2022-02-17 10:53:15 +01:00
hius07
c9b4e43bf9 OPDSbrowser: bookinfo multiline title 2022-01-24 22:27:45 +01:00
hius07
334a913b0e OPDS catalog: add title Plus/Home button (#8660) 2022-01-12 18:54:55 +02:00
QJKX
71af6c9382 OPDS: add Standard Ebooks server (#8606)
Standard Ebooks is roughly a small subset of
Project Gutenberg with better formatting.
2022-01-04 21:24:21 +01:00
hius07
1df6ab751b ButtonDialogTitle: no bold font in the title by default (#8557) 2021-12-16 14:46:53 +02:00
hius07
02ddd41b38 OPDS: rename a book before downloading (#8520) 2021-12-07 15:06:37 +02:00
Dylan Garrett
26ec5bafe3 [plugin] Display OPDS download titles if available (#8441)
I've found that some OPDS catalogs have multiple downloads of the same filetype, but optimized or formatted in different ways. The Title of the download is much more descriptive in this case, so I thought it would be better to display the title if available.

The OPDS catalog at https://standardebooks.org/opds is a good example. Note how entries in https://standardebooks.org/opds/new-releases have three different epub downloads, titled "Recommended compatible epub", "Advanced epub", and "Kobo Kepub epub".
2021-11-14 07:52:53 +01:00
hius07
859327dea5 Input dialogs: keep size in rotation (#8223) 2021-09-17 19:36:57 +02:00
roygbyte
024fd52781 Fix OPDS plugin bug wherein Arxiv PDF document acquisition URLs are not given a callback to download (#8210)
* Add comments to a few functions

* Fix bug associated with arxiv catalog.

See comments in genItemTableFromCatalog. Basically, though, the bug
was related to the checking of the acquisition urls. Arxiv only has
PDFs available to download, and the block wasn't catching these with
its existing logic. By adding another clause to look for PDF link
types, and fixing href values that were missing the PDF suffix, we can
successfully download PDFs from Arxiv.
2021-09-13 08:30:43 +02:00
hius07
684fd6c12d Standardize select/choose to choose (#8128)
Closes #8105.
2021-08-24 22:19:07 +02:00
Frans de Jonge
a558376471 [plugin] Change OPDS filetype algorithm to extension first, mimetype second (#8115)
Fixes <https://github.com/koreader/koreader/issues/7995>.
2021-08-23 12:44:07 +02:00
Frans de Jonge
04d1d23c2f [plugin] OPDS: prevent crash if link.type is nil (#8111)
It can happen… somewhere, while clicking around http://arxiv.maplepop.com/catalog a bit. (The magical crash/bug finder from <https://github.com/koreader/koreader/issues/3023>.)
2021-08-21 15:54:31 +02:00
hius07
db60ba48b7 OPDS catalog, Cloud storage: hold return arrow to go to top (#7845) 2021-06-29 10:22:03 +02:00
NiLuJe
dde732c17f OPDS: Also handle self-closing dc: tags (#7900)
Fix #7899
2021-06-29 09:26:12 +02:00
hius07
dccd49b652 [fix] OPDS catalog invoked from reader: crash KOReader on close (#7825)
OPDS catalog can be invoked from reader with gesture.
Then on closing OPDS catalog, KOReader crashes.
Let's jump to the download folder instead.
Closes #7784.
2021-06-09 21:32:02 +02:00