fire-eggs / darkthumbs Goto Github PK
View Code? Open in Web Editor NEWAdds thumbnail preview to Windows Explorer for EPUB, FB2 and Kindle ebooks; CBZ, CBR, RAR and ZIP archives.
Adds thumbnail preview to Windows Explorer for EPUB, FB2 and Kindle ebooks; CBZ, CBR, RAR and ZIP archives.
If a CBR/RAR contains only folders at the top level, the search process won't go into any folders to find images.
Note: applies to thumbnail, not tooltip.
Please add preview for djvu and mobi files
Hi
I'm using your software since 3 weeks (Win7/64). It works well (thanks for that) but everytime I browse folders containing epub file (the only file format I've checked in CBX shell manager), the Windows Explorer freeze after few minutes. The explorer never froze before the installation and stay stable when I don't go in those folders.
Thanks to check that problem.
From issue #54 : CBXManager.exe should be named "DarkThumbsManager.exe" or similar.
If you sync you Document on OneDrive, thumbnails are generated once, but then disappear as soon as you live the folder. This happens even if you enable "keep on device" settings.
CBXManager only turns ON support for a file type (e.g. ZIP). Once enabled, the only way to turn off support for a given extension is to uninstall DarkThumbs.
The UI implies that unchecking a given entry turns off support.
Hi,
I'm an old user of DarkThumbs, but after I formatted my laptop in late 2021, I never installed it back. I've recently been notified of version 1.5 and I wanted to give it a try. However, I've noticed a few issues:
Edit: my laptop runs Windows 11 21H2.
Thanks for your time and I hope this feedback is useful to you.
I have some books in Fiction Book 2 format. All of them have covers. There is no working handler for Windows 10. It would be great if you add one in program.
The following code:
coverfile = rootpath + itemTag.substr(posStart, posEnd - posStart);
ReplaceStringInPlace(coverfile, "%20", " ");
is intended to deal with escaped spaces in the cover image filename. What other characters are legal in filenames which need to be escaped for XML?
Nested archives (e.g. a ZIP containing an EPUB) are not supported. Something to consider?
[As observed in issue #44]
When present, Macintosh resource forks obscure their respective image files, thus breaking thumbnail generation for the archive.
__MACOSX directory should be ignored when looking for image files.
Uninstalling DarkThumbs does not remove any of the added registry keys.
The only removal is to delete the DLLs etc, which means the Explorer keeps looking for (and not finding) DarkThumbs.
This also means that turning OFF support for a given file extension doesn't even happen via uninstall (as suggested in #25).
First of all, thank you very much for your program. Unfortunately, when I tick "FB2" and then click apply tick on FB2 disappears. No such problem with EPUB for example.
System: Windows 10 20H2 x64.
Hi,
I've been waiting to be sure about it, but I've just noticed, once again, that a few seconds after the creation of thumbnails, file explorer doesn't respond, which means that I can't open another instance or even do something in the current instance.
I need to further investigate it, but it's happened to me while dealing with CBR and CBZ files, as I was trying to determine how long it takes for DarkThumbs to show a thumbnail from these types of tiles for the first time.
The following files won't show thumbnails. They both pass integrity tests by 7Zip and can be successfully viewed in YACReader.
Problem:
The default behaviour mostly works fine, but depending on the contents of your comic archive, it can contain files that are credits, notes, or related to recruitment (of the scanlation team). Sometimes they'll even have a file that is explicitly meant to be the cover. Regardless of whether you activate sorting alphabetically, the first file isn't always the best file for the cover.
Proposed Enhancement:
Assuming it isn't going to be much of a performance hit, it would be nice if the logic for determining the 'cover' for an archive was something like the following:
Presumably you'd want an option for whether to activate this behaviour.
i have a lot of comics in cb7 format (because of better compression). i hope you will make a support for 7z/cb7 extension
Some epub covers cannot be fetched via metadata: the image is referenced indirectly in an xhtml file.
Known examples:
I have a folder with nested folders with hundreds of epubs in it. My windows explorer became unusable and kept crashing all the time. Uninstalling Dark Thumbs resolved the crashing but I miss having the thumbnails. Is anyone else seeing stability issues? Any recommendations?
As observed in issue #44, File Explorer's "Extract" view doesn't seem to communicate with DarkThumbs. E.g. if I have a ZIP containing an EPUB, and the ZIP is viewed in File Explorer via "extract", no thumbnail is seen.
Different interface? Works with DarkThumbs V2?
libmobi includes support for AZW, AZW3 files. So covers for said files will appear as soon as those file extensions are added to the code.
Fallout from issue #31.
DarkThumbs V1.x uses GDI+ functions to handle images. Those functions don't support SVG files.
Unfortunately, there doesn't seem to be a readily available WIC decoder for SVG files?
powertoys has a thumbnail preview for SVG, source. It also has Preview Pane support.
See "HKCU\SOFTWARE\T800 Productions"
Would eliminate the need for GlobalAlloc call when creating the thumbnail.
https://www.vbforums.com/showthread.php?878101-RESOLVED-GlobalAlloc-without-GlobalFree
I'd like to have a way to turn previews on for .ugoira extension (pixiv animation format) (zip archive with jpeg files)
example (inside zip archive):
95973632_ugoira1920x1080.zip
Is it so that metadata information is not used to select the correct cover image?
With some epub files DarnkThumbs selects some other file for the thumbnail.
Copied over from issue #15
After doing that, I've noticed that no covers are displayed for EPUB3 files, but I think that this format isn't fully supported yet. You can't probably read an AZW3 file in an ebook reader, and as for Calibre, which supports any format, it's able to read the ebook, but it doesn't provide the cover either. Therefore, there must be something tricky about covers in EPUB3.
Just in case, I've created a ZIP file containing EPUB3 ebooks from Standard Ebooks (https://standardebooks.org/):
https://drive.google.com/file/d/1Lvfj9IQLMzXvTqnch1FpbZNLskuXskma/view?usp=sharing
Again, there must be something peculiar about this format, as it's hard to find support for it, so don't bother too much. Thanks!
Hello!
I've recently discovered DarkThumbs, which is a great application that covers a need I had.
I'm writing because I've just noticed that the programme wasn't displaying the first page of my CBR files, which contains the cover of the comic. Instead it was displaying a particular page of the comic, which wasn't very useful.
I remembered that there were some settings to tweak and I decided to turn on "Sort images alphabetically". I'm still not sure what it does, but it worked!
The only problem is that the CBR files previously processed still display the wrong thumbnails, so I was wondering if there's a way to reset them, hopefully without resetting all the thumbnails of the rest of my documents. I presume the thumbnails displayed by the programme are stored in a particular folder, but I don't know the details.
Thanks for the programme and keep up the good work!
It's nice to see there is improvement of epub support since original T800 CBX Shell :)
https://github.com/T800G/CBXShell/search?q=container.xml&unscoped_q=container.xml
https://github.com/dark-knight404/DarkThumbs/search?q=container.xml&unscoped_q=container.xml
Some epub have still issue to get the right cover and use the same strategy as original CBX Shell (as fallback I guess) and get the first image available :
It's weird because container.xml and content.opf are ok :
META-INF/container.xml
<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
OEBPS/content.opf
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="bookid" version="2.0">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
<dc:title>Kotlin for Enterprise Applications using Java EE</dc:title>
<!-- ... -->
<meta name="cover" content="Images/24c9fdee-a166-474a-9c44-84df76f0e730.png"/>
</metadata>
</package>
Images/24c9fdee-a166-474a-9c44-84df76f0e730.png is available and is the right cover :
From issue #54 : what is involved to add DarkThumbs to the Start Menu?
When there is a already an installed version and launching the setup, a popup complains about that and indicates to manually uninstall first before installing the new version:
It work's but it add some manual steps, generally other apps don't bother the user in similar scenario by uninstalling automatically first or managing some patch / diff / clean before installing latest version.
Similar popup as described here :
https://answers.microsoft.com/en-us/windows/forum/all/another-version-of-this-product-is-already/97538976-1f2a-409f-9854-d0e7994b9dc4?auth=1
The Help function in CBXManager doesn't work. Mainly because the .CHM file from the original T800 version isn't included.
And the help file is now going to be significantly out of date.
Remove the help function.
Hello, thanks to the last 1.1 fix with epub, I can view the result without crash :)
I see some epub didn't have the right cover, in comparison Calibre / SumatraPDF choose the right one.
I see the content.opf file for these epub with bad cover picked by DarkThumb don't have any cover information.
After picking the right image with Calibre Editor, following lines are added in the content.opf file and it's ok for DarkThumbs :
<?xml version='1.0' encoding='utf-8'?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="uuid_id" version="2.0">
<metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:calibre="http://calibre.kovidgoyal.net/2009/metadata" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:publisher>...</dc:publisher>
<dc:language>en</dc:language>
<dc:creator opf:file-as="Неизв." opf:role="aut">xxx</dc:creator>
<meta name="calibre:timestamp" content="2021-03-03T20:51:55.968000+00:00"/>
<dc:title>xxxxx</dc:title>
<dc:date>2021-03-02T21:00:00+00:00</dc:date>
<dc:contributor opf:role="bkp">calibre (1.5.0) [http://calibre-ebook.com]</dc:contributor>
<dc:identifier id="uuid_id" opf:scheme="uuid">49953084-6f87-4f00-8763-7cffe4159ad5</dc:identifier>
<!-- Added after marking the right image with calibre editor as cover -->
<meta name="cover" content="cover-image"/>
<!-- Added after marking the right image with calibre editor as cover -->
</metadata>
<manifest>
<item href="EPUB/images/9781284157468_APP_TAB02-01.png" id="itabap-2-1" media-type="image/png"/>
<!-- ... -->
<item href="EPUB/images/9781284157468_EQU26-1.png" id="i9781284157468_EQU26-1" media-type="image/png"/>
<item href="EPUB/images/9781284157468_FC.jpg" id="cover-image" media-type="image/jpeg"/>
<!-- ... -->
<item href="EPUB/images/pub.jpg" id="iJBLRN_LOGO_Colo1cK" media-type="image/jpeg"/>
<item href="EPUB/xhtml/01_Titlepage.xhtml" id="i01_Titlepage" media-type="application/xhtml+xml"/>
<!-- ... -->
<item href="EPUB/xhtml/12_Chapter01_01.xhtml" id="i12_Chapter01_01" media-type="application/xhtml+xml"/>
<!-- ... -->
<item href="EPUB/xhtml/46_Index_split_001.xhtml" id="i46_Index9" media-type="application/xhtml+xml"/>
<!-- ... -->
<item href="EPUB/xhtml/cover.xhtml" id="icover" media-type="application/xhtml+xml"/>
<item href="page_styles.css" id="page_css" media-type="text/css"/>
<item href="stylesheet.css" id="css" media-type="text/css"/>
<item href="toc.ncx" id="ncx" media-type="application/x-dtbncx+xml"/>
</manifest>
<spine toc="ncx">
<itemref idref="icover"/>
<itemref idref="i01_Titlepage"/>
<itemref idref="i12_Chapter01_02"/>
<!-- ... -->
<itemref idref="i46_Index1"/>
</spine>
<guide>
<!-- Added after marking the right image with calibre editor as cover -->
<reference type="cover" href="EPUB/images/9781284157468_FC.jpg"/>
<!-- Added after marking the right image with calibre editor as cover -->
</guide>
</package>
I noticed these epub have this kind of structure : ./EPUB/xhtml/cover.xhtml
content of cover.xhtml :
<?xml version='1.0' encoding='utf-8'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:ns="http://www.w3.org/2001/10/synthesis" lang="en-us" xml:lang="en-us">
<head>
<title>xxxxx</title>
<link href="../css/theme/night.css" rel="alternate stylesheet" title="night" type="text/css"/>
<link href="../css/theme/sepia.css" rel="alternate stylesheet" title="sepia" type="text/css"/>
<meta content="urn:uuid:4df3029a-89df-4306-89d2-a9be503b6aa4" name="Adept.expected.resource"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
<link href="../../page_styles.css" rel="stylesheet" type="text/css"/>
</head>
<body aria-label="cover" epub:type="cover" class="calibre">
<div class="calibre1">
<img alt="" src="../images/9781284157468_FC.jpg" class="calibre2"/>
</div>
</body>
</html>
I don't know if it's a kind of epub standard that is legit to target the cover page and so the cover image or not.
I have another case where the first image have been picked as cover (fallback rule I guess) despite its root opf file :
Mich_9780307790361_epub_opf_r1.opf :
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="PrimaryID" version="2.0">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
<dc:title>...</dc:title>
<dc:language>en-US</dc:language>
<dc:identifier id="PrimaryID" opf:scheme="ISBN">...</dc:identifier>
<dc:creator opf:file-as="..." opf:role="aut">...</dc:creator>
<dc:publisher>...</dc:publisher>
<dc:date opf:event="publication">2011-03-16</dc:date>
<dc:rights>...</dc:rights>
<meta content="cover-image" name="cover"/>
<meta content="1.2" name="epubcheckversion"/>
<meta content="2012-02-02" name="epubcheckdate"/>
<description xmlns="http://purl.org/dc/elements/1.1/">...</description>
</metadata>
<manifest>
<item href="Mich_9780307790361_epub_ncx_r1.ncx" id="ncx" media-type="application/x-dtbncx+xml"/>
<item href="OEBPS/Mich_9780307790361_epub_cvi_r1.htm" id="cvi" media-type="application/xhtml+xml"/>
<!-- ... -->
<item href="OEBPS/Mich_9780307790361_epub_css_r1.css" id="css" media-type="text/css"/>
<item href="OEBPS/images/Mich_9780307790361_epub_001_r1.jpg" id="f001" media-type="image/jpeg"/>
<!-- ... -->
<item href="OEBPS/images/Mich_9780307790361_epub_103_r1.jpg" id="f103" media-type="image/jpeg"/>
<item href="OEBPS/images/Mich_9780307790361_epub_cvt_r1.jpg" id="fcvi" media-type="image/jpeg"/>
<item href="OEBPS/images/Mich_9780307790361_epub_L02_r1.jpg" id="fL02" media-type="image/jpeg"/>
<item href="OEBPS/images/Mich_9780307790361_epub_L03_r1.jpg" id="fL03" media-type="image/jpeg"/>
<item href="OEBPS/images/Mich_9780307790361_epub_tp_r1.jpg" id="ftp" media-type="image/jpeg"/>
<item href="OEBPS/page-template.xpgt" id="page" media-type="application/vnd.adobe-page-template+xml"/>
<item href="OEBPS/fonts/CharisSILB.ttf" id="font1" media-type="application/x-font-ttf"/>
</manifest>
<spine toc="ncx">
<itemref idref="cvi" linear="yes"/>
<!-- ... -->
</spine>
<guide>
<reference href="OEBPS/Mich_9780307790361_epub_c01_r1.htm" title="Start" type="start"/>
<reference href="OEBPS/Mich_9780307790361_epub_cvi_r1.htm" title="cover" type="cover"/>
<reference href="OEBPS/images/Mich_9780307790361_epub_cvt_r1.jpg" title="thumbimagestandard" type="thumbimagestandard"/>
<reference href="OEBPS/Mich_9780307790361_epub_cop_r1.htm" title="Copyright" type="copyright-page"/>
<reference href="OEBPS/Mich_9780307790361_epub_toc_r1.htm" title="Table of Contents" type="toc"/>
</guide>
</package>
Content of OEBPS/Mich_9780307790361_epub_cvi_r1.htm :
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ops="http://www.idpf.org/2007/ops" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<title>xxx</title>
<link href="Mich_9780307790361_epub_css_r1.css" rel="stylesheet" type="text/css"/>
<meta content="application/xhtml+xml; charset=utf-8" http-equiv="Content-Type"/>
<meta content="urn:uuid:6da38ed9-7c6a-45a7-982b-f093c8d71f91" name="Adept.expected.resource"/>
</head>
<body style="margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; text-align: center;">
<div class="cover">
<img alt="" src="images/Mich_9780307790361_epub_cvt_r1.jpg"/>
</div>
</body>
</html>
=> cover image seems accessible through opf -> cover html file.
What is may be wrong for DarkThumbs / epub standard, at epub root, the opf file is not content.opf but has a specific name :
Mich_9780307790361_epub_opf_r1.opf, and the ncx file too : Mich_9780307790361_epub_ncx_r1.ncx
Concatenation of {partial author name}_{isbn}_epub_opf_r1.opf
META-INF/container.xml is correctly targeting it :
<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="Mich_9780307790361_epub_opf_r1.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
so container.xml => opf file => html for the cover => image for the cover with the "cover" class looks the path to follow to get the right cover image
FINALLY got a chance to try the new version. I know, I suck. I'm sorry... I moved twice since you released 1.1 lol..
DarkThumbs works freaking fantastically now. It is SO cool to see all my eBooks show up with covers. I have ZERO complaints. Just wanted to throw some books with no covers showing so you could troubleshoot why the current version does not see them.
Really not a big deal. Just thought if you wanted to look into it, I think it would be a pretty easy fix. All but 1 have the covers in the same folder.
https://www18.zippyshare.com/v/fXLy6u0U/file.html
Hello there!
Just had this problem on fresh install of Windows.
If I click on "continue", DT is installed and I can open it, but whatever I choose, ePub thumbs aren't shown.
I have tried to manually register CBXShell.dll, but that didn't help.
Funny thing is that everything worked great yesterday on old OS installation, which is same as current one:
Windows 10 Education
Version 21H1
OS build 19043.1237
Windows Feature Experience Pack 120.2212.3530.0
Not sure if this is important, but I always create fresh Win ISO with all updates trough uupdump.net
Note: this issue is likely to be moot until such time as decoding an EPUB / ZIP fails due to bugs fixed in newer code.
"unzip.cpp" is (currently) nine years old (2012)
It is based on zlib V1.1.3 which is (currently) 23 years old (1998).
May wish to upgrade zlib at least to V1.2.11 (2017).
I don't think there are any "official" updates to "unzip.cpp", but I've found one set of changes here. Some of Vladimir's changes are similar to the optimizations I've made for DarkThumbs, but not all.
@L0garithmic : what was @dark-knight404 specifically asked to implement? Was the name change part of the spec, or his own idea?
I have some really old ebooks in the discontinued .lit format. Is it possible to generate thumbnails from such files and display them in Windows Explorer (I'm on Windows 10 21H2)
The creation of thumbnails for CBR/CBZ files takes a little bit: around one second.
[For me, with a large CBR/CBZ across the network, it can take 5 seconds]
With the sort option ON, the CBR/CBZ logic scans the entire archive to determine the first image alphabetically.
This can be optimized for ZIP [speed up the scan cycle]. Not sure about CBR [unrar isn't very smart].
Please add the ability for archives to pull thumbnails from webp images.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.