![]() |
#1036 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
|
![]() |
![]() |
![]() |
#1037 | |
Connoisseur
![]() Posts: 94
Karma: 10
Join Date: Feb 2014
Location: Japan
Device: Kindle PaperWhite, Kobo Aura HD
|
Hi Kevin,
Quote:
But I have not updated them since I posted; they are needed to make modify links in xhtmls. I have no idea to do so. If you have the idea, could you convert them? Thanks, |
|
![]() |
![]() |
Advert | |
|
![]() |
#1038 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
|
![]() |
![]() |
![]() |
#1039 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
Hi All,
In preparation for trying to build a github repository that has as complete a history as possible, I have collected all of the announcements and dates and added developer information as best as I could reconstruct from the discussions held in these threads. I have included it here. Please look it over. If I have left anyone out, please let me know. When attribution was not clear, I simply used the term "Developer Team". I am happy to make any additions or corrections. Just let me know. I will then use this history to build the git repositiory for KindleUnpack and see it with the list of found releases I published earlier. Thanks, Kevin Code:
v011 2009-11-12 Adam Selene Initial Version I reimplemented huff/cdic compression in Python, and did a few other things while I was at it. The new script: * decompresses about 25x faster than mobihuff.py * uses much less memory (about 16x on my largest test file) * implements conversion of uncompressed and Palmdoc-compressed files * handles trailing data correctly in all cases Check it out: http://www.mit.edu/afs/athena/user/m.../mobiunpack.py === v012 2010-02-05 pdurrant added ability to output images, and all into one folder === v013 2010-02-06 pdurrant added back in optional output dir for those who don't want it based on infile === v014 2010-02-07 KevinH auto flush stdout and wrapped in main, added proper return codes === v015 2010-02-08 KevinH added support for metadata === v016 2010-02-11 pdurrant metadata now starting to be output as an opf file === v017 2010-02-17 pdurrant Additional metadata read and output, rawml tweaked to input html for Mobipocket Creator === v018 2010-02-18 KevinH removed raw mobi file completely but kept _meta.html file for ease of conversion === v019 2010-02-18 pdurrant added in metadata for ASIN, Updated Title and Rights to the opf Added in standard (OPF 1.01) metadata Rights. Added in non-standard items ASIN and Updated Title. If we can find out where they should really go in an OPF to get put into a compiled Mobipocket file, we should move them. Mobipocket Creator ignores them where they are === v020 2010-02-18 KevinH remove _meta.html since no longer needed === v021 2010-03-13 pdurrant Fixed typos in the opf, updated handling of test for trailing data/multibyte characters === v022 2010-04-12 pdurrant Fixed problem with > 9 images === v023 2010-08-29 pdurrant Now output Start guide item support to opf === v024 2011-05-18 pdurrant Set firstaddl value for 'TEXtREAd' === v025 2011-05-18 pdurrant Now added character set metadata to html file for utf-8 files. === v026 2011-06-27 siebert Dictionary support added. Image handling speed improved. For huge files create temp files to speed up decoding. Language decoding fixed. Metadata is now converted to utf-8 when written to opf file. === v027 2011-07-18 siebert Add idx:entry attribute "scriptable" if dictionary contains entry length tags. Don't save non-image sections as images. Extract and save source zip file included by kindlegen as kindlegensrc.zip. === v028 2011-07-19 KevinH Added back correct image filename extensions, created FastConcat class to simplify and clean up === v029 2011-07-23 siebert Metadata handling reworked, multiple entries of the same type are now supported. Several missing types added. FastConcat class has been removed as in-memory handling with lists is faster, even for huge files. === v030 2011-08-05 KevinH Add support for outputting **all** metadata values - Cover ThumbNail Image - Text to Speech Disabled Flag - Font Signature encoded as hex - Tamper Proof Keys encoded as hex - All unknown metadata keys as hex strings === v031 2011-09-01 pdurrant Now supports Print Replica ebooks, outputting PDF and mysterious data sections === v032 2011-10-27 fandrieu,siebert,KevinH,DiapDealer Now supports NCX file extraction/building. Overhauled the structure of mobiunpack to be more class oriented. === v033 2011-12-23 KevinH Split Classes into separate files and added prelim support for KF8 format eBooks main program renamed to mmobi_unpack.py to indicate KF8 support === v034 2012-01-18 KevinH, nickredding, DiapDealer Improved KF8 support, guide support, bugs fixed - added support for image files used in CSS sheets (needed for fixed layout) - modified the unpacker to deal with the extra metadata fields used by fixed-layout ebooks "RegionMagnification", "fixed-layout", "book-type", "orientation-lock", "original-resolution" - identified the BOUNDARY section number - builds the epub from the K8 pieces with compression now - fixed the mobi_k8proc.py class code to be better encapsulated (added accessor methods) - fixed support for older mobis with no ncx === v035 2012-01-27 nickredding Added splitting combo mobi7/mobi8 into standalone mobi7 and mobi8 files Also handle mobi8-only file properly === v036 2012-01-27 nickredding, KevinH very minor changes to support KF8 mobis with no flow items, no ncx, etc === v037 2012-01-29 KevinH separate output, add command line switches to control, interface to Mobi_Unpack.pyw === v038 2012-01-29 Developer Team improve split function by resetting flags properly, fix bug in Thumbnail Images === v039 2012-01-29 Developer Team improve split function so that ToC info is not lost for standalone mobi8s === v040 2012-01-29 Developer Team improve mobi7 split, add graphic novel metadata, improve debug for KF8 === v041 2012-01-29 Developer Team fix when StartOffset set to 0xffffffff, fix to work with older mobi versions, fix metadata bugs === v042 2012-02-12 Developer Team add new class interface to allow it to integrate more easily with internal calibre routines === v043 2012-02-20 Developer Team bug fixes for new class interface === v044 2012-02-29 Developer Team more bug fixes and fix for potnetial bug caused by not properly closing created zip archive === v045 2012-03-08 KevinH, DiapDealer sync to version in the new Mobi_Unpack plugin === v046 2012-03-08 Developer Team minor opf improvements === v047 2012-03-23 pdurrant, DiapDealer, KevinH fixes for: obfuscated fonts, improper toc links and ncx, add support for opentype fonts === v048 2012-04-22 Developer Team ncx link fixes === v049 2012-04-23 KevinH use azw3 when splitting mobis, mobi_split bug fixes === v050 2012-04-26 kovidgoyal fixed bug with unreliable decoding of zlib header, fixed image bug in urls in inline styles === v051 2012-06-04 pdurrant, DiapDealer fix for converting filepos links to hrefs, Added GPL3 notice, made KF8 extension just '.azw3' === v052 2012-07-21 pdurrant, DiapDealer fix for cover metadata (no support for Mobipocket Creator) === v053 2012-07-25 KevinH fix header flag for proper identification of embedded fonts, added new metadata items === v054 2012-09-13 DiapDealer Added error-handling so wonky embedded fonts don't bomb the whole unpack process also entity escape KF8 metadata to ensure valid OPF. === v055 2012-10-21 pdurrant Strip extra StartOffset EXTH from the mobi8 header when splitting keeping only the relevant one. For mobi8 files, don't generate duplicate guide entries from the metadata if we could extract one from the OTH table. === v056 2012-10-26 DiapDealer Added further entity escaping of OPF text. Allow unicode string file paths to be passed as arguments to the unpackBook method without blowing up later when the attempt to "re"-unicode a portion of that filename occurs in the process_all_mobi_headers method. === v057 2012-10-27 pdurrant Fixed eror when splitting Preview files downloaded from KDP website === v058 2012-10-27 DiapDealer Output original kindlegen build log ('CMET' record) if included in the package. === v059 2012-11-08 pdurrant Include and extend functionality of DumpMobiHeader, replacing DEBUG with DUMP Much added DUMP functionality, including full dumping and descriptions of sections === v060 2012-12-10 nleblanc88, Sergey Dubinets, KevinH Bug fixes in opf, div tables, bad links, page breaks, section descriptions - fixs for file/paths that require full unicode to work properly - replace subprocess with multiprocessing to remove need for unbuffered stdout === v061 2013-01-17 KevinH, DiapDealer renamed to be KindleUnpack and better unicode/utf-8 path bug fixes and other minor fixes === v062 2013-04-22 KevinH, DiapDealer bug fix release - fix for improved command line handling on Windows boxes under multiprocessing - improvements to split to allow it to work with newer Kindle Previewers - improvements to split to allow it to replace fonts with zero-szed sections in Mobi 7 - improvements to opf to prevent html tags from interfering with opf xml creation === v063 2014-02-09 tkeo Modified to process right to left page progression books properly. - Added some id_map_strings and RESC section processing; metadata and spine in the RESC are integrated partly to content.opf. - imghdr fixes === v063a 2014-02-16 tkeo Separated K8 RESC processor to an individual file. Bug fixes. Added cover page creation. === v064 2014-02-23 KevinH, NiLuJe minor bug fixes to more properly handle unicode command lines, and support for more jpeg types === v064a 2014-04-10 tkeo, DiapDealer Modifed to safely handle some irregular mobi and azw3 files, parsing RESC fixes === v064b 2014-04-11 tkeo Modifed to create k8resc.spine for no RECS files. allow cover page creation when no RESC === v065 2014-04-26 DiapDealer Bug fixes to shorten title and remove epub3 "properties" to make the output epub2 compliant === v065a 2014-05-04 tkeo Bug fixes to extract RESC section correctly, to prevent item id confliction add support to process multiline comments in RESC. === v066 2014-05-18 tkeo, KevinH Bug fix to deal with missing first resource information sometimes generated by calibre === v066a 2014-05-23 tkeo Fixed minor bugs, which probably do not affect the output anything === v067 2014-06-10 KevinH Fixed Mobi Split functionality bug with azw3 images not being properly copied === v068 2014-06-12 KevinH added preliminary support for handling PAGE sections to create page-map.xml === v069 2014-06-12 KevinH added preliminary support for CONT and CRES for HD Images === v070 2014-06-14 KevinH added preliminary support for decoding apnx files when used with azw3 ebooks === v071 2014-06-17 KevinH, DiapDealer, tkeo extensive refactoring of kindleunpack.py to make it more manageable === v072 2014-06-18 tkeo, DiapDealer, KevinH many bug fixes from tkeo: fix pageProcessing, fix print replica, fix resc usage, fix font mangling, etc. === v072a 2014-06-18 DiapDealer fix for still broken PrintReplica support === v072b 2014-06-22 tkeo preview for primary epub3 support. A parameter epubver(default='2') is added === v072c 2014-06-24 KevinH added preview for apnx page support === v072d 2014-06-25 DiapDealer, tkeo more bugs fixed in preview features much improved GUI with ability to dynaically grow the Log Window with preference support === v072e 2014-06-25 DiapDealer, KevinH more bug fixes, Tk GUI adds support for epub version and HDImage use === v072f 2014-06-26 DiapDealer, KevinH more bug fixes, much improved GUI, implement use hd images if present === v072g 2014-06-28 tkeo minor bug fixes in cover image renaming and cleanups === v072h 2014-07-05 tkeo proposed changes for RESC processing and code simplification === v072x 2014-07-08 KevinH experimtental RESC conversion to mobi_resc.py based on old mobi2xhtml.py updated mobi_header and mobi_k8proc to use the correct fragment and guide terms in place of div and other to better match the terms that both Calibre and Amazon use internally to their own software. === v072y 2014-07-10 KevinH, tkeo more k8resc changes to simplify integration of epub3 support === v072z 2014-07-11 tkeo, KevinH remove redundancy in mobi_opf.py and bug fixes for mobi_k8resc.py === v073 2014-07-15 tkeo, KevinH faster mobi split, numerous bug fixes in mobi_k8proc, mobi_header, mobi_opf, mobi_k8resc, etc === v074 2014-07-30 tkeo added refines metadata, fixed language code in ncx and title in nav, added support for opf: from refines === v075 2014-09-13 KevinH much improved dictionary support including support for multiple inflection sections, minor mobi_opf fixes |
![]() |
![]() |
![]() |
#1040 |
The Grand Mouse 高貴的老鼠
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 73,989
Karma: 315160596
Join Date: Jul 2007
Location: Norfolk, England
Device: Kindle Oasis
|
Wow. Impressive work! It will be interesting to browse the archive once it's done.
There was a short-lived 0.11pd, but since all those changes appeared in 0.12, perhaps it's best forgotten. |
![]() |
![]() |
Advert | |
|
![]() |
#1041 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
Hi,
One quick question if there are any git experts our there. I understand how to set the historic date and include the historic commit messages and even provide the authors in the commit message itself, but for some reason git will not allow me to actually set the commit author to anyone who does not have his/her own git account username and password. Is there some way to override the setting of author that gets into the commit history? If not, I will just clearly add the authors information to the commit message so that the proper author gets credit. Thanks, KevinH |
![]() |
![]() |
![]() |
#1042 |
KCC Co-Author
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 845
Karma: 765434
Join Date: Mar 2013
Location: Poland
Device: Kindle Oasis 2
|
Well bare GIT allow to set commit author with --author "New Author Name <email@address.com> but I doubt that GitHub will accept commit from user that is not connected with any GitHub account.
Also: GIT. At last. |
![]() |
![]() |
![]() |
#1043 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
github repository for KindleUnpack
Hi All,
Okay I have tried to create as much of the history as I could remember, find on the web, or find in this thread. It is not complete. Some of the releases are missing from the history but I have folded those updates into the next release I was able to find, and credited all changes. So please give this a look see: I have not committed the dual python 2 / python 3 support, so this repository ends with an as of today version of KindleUnpack_v076. If all are okay with repository, I will push all of the dual python 2 and 3 support into the tree once I have working versions of the front-end. The url for the repository is: https://github.com/kevinhendricks/KindleUnpack Feedback welcome. I now have to figure out how to give other current contributors: (ie. pdurrant, DiapDealer, and tkeo) direct access to the repository. If anyone knows how to do this please let me know. Thanks, KevinH |
![]() |
![]() |
![]() |
#1044 | |||
Ex-Helpdesk Junkie
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,421
Karma: 85400180
Join Date: Nov 2012
Location: The Beaten Path, USA, Roundworld, This Side of Infinity
Device: Kindle Touch fw5.3.7 (Wifi only)
|
Quote:
And GitHub does not restrict all users from accepting commits made by non-GitHub users. ![]() It simply will not have a clickable link to the GitHub user on the commit reference. And GitHub identifies users based on their email address. See this recent calibre commit for an example of an unidentified author: https://github.com/kovidgoyal/calibr...97696d39a7a0f2 chaley did this, (Charles Haley <cbhaley@i.wont.say.com>) but his fake email address isn't listed as his on his account, so it's an unknown user. Quote:
![]() You need to specify both a name and email. But the email can be left blank, by specifying Code:
--author "FN LN <(someone@email.address has been OMITTED)>"
aka
--author "FN LN <>"
Quote:
Last edited by eschwartz; 10-15-2014 at 12:14 AM. |
|||
![]() |
![]() |
![]() |
#1045 |
KCC Co-Author
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 845
Karma: 765434
Join Date: Mar 2013
Location: Poland
Device: Kindle Oasis 2
|
@eschwartz - I stand corrected.
@KevinH - You can store Python2/3 version in separate branch until code is stable. It is another GIT aspect that you should explore. Also - First line of commit message. It is customary to capitalize it and not exceed 50 characters. |
![]() |
![]() |
![]() |
#1046 |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
Hi All,
Thanks for your helpful comments. I wish I had known them before yesterday when I spent 4 hours hand committing and dating each of the commits!! So is there an easy way to hand edit the history itself without having to rebuild, and recommit almost 60 versions again? Thanks, KevinH Yes, I will branch the python 2/3 unified version until it becomes stable and is released. |
![]() |
![]() |
![]() |
#1047 | ||
but forgot what it's like
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 741
Karma: 2345678
Join Date: Dec 2011
Location: north (by northwest)
Device: Kindle Touch
|
Quote:
Quote:
While it's obvious, I'd like to add that when history will be rewritten, you will have a different "repository" (in comparison with repository on GitHub and all previous clones of it). As it's mostly an organizational and not technical problem, you may want to delete and re-create repository on GitHub (though it's optional). EDIT: that GitHub example shows also how to forcefully push changed history without re-creating repository. In addition to AcidWeb words, reference format (style) of Git commit messages is described here. Message format isn't dictated by Git itself, but linked post is a good format example or starting point for making your own style. UPD: JFYI (and for sake of historical correctness), URL in the very first commit message is wrong, it literally have three dots in it: Code:
http://www.mit.edu/afs/athena/user/m.../mobiunpack.py Last edited by eureka; 10-15-2014 at 08:51 AM. |
||
![]() |
![]() |
![]() |
#1048 | |
Sigil Developer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 8,789
Karma: 6000000
Join Date: Nov 2009
Device: many
|
HGi,
Thanks for the links. Unfortunately there is no way to use an e-mail replacement algorithm since there were no e-mails for any of the authors. So the credit for authorship is in the long commit message itself. So I may be better off simply redoing the damn 60 commits by hand and completely rebuilding it from scratch. Once I have time this weekend I will try that instead. As for capitalizing and keeping to 50 chars, I simply don't think any of that is actually important. I hate to count chars. Thanks everyone, It seems to be I need to go back to the drawing board. KevinH Quote:
|
|
![]() |
![]() |
![]() |
#1049 | |
but forgot what it's like
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 741
Karma: 2345678
Join Date: Dec 2011
Location: north (by northwest)
Device: Kindle Touch
|
Quote:
Code:
export GIT_AUTHOR_NAME="Adam Selene" export GIT_AUTHOR_EMAIL="" Code:
export GIT_AUTHOR_NAME="Adam Selene" export GIT_AUTHOR_EMAIL="unknown.so.do.not.reply@host.invalid" And you may change commit message also with git-filter-branch. Or use git rebase -i. |
|
![]() |
![]() |
![]() |
#1050 |
Ex-Helpdesk Junkie
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,421
Karma: 85400180
Join Date: Nov 2012
Location: The Beaten Path, USA, Roundworld, This Side of Infinity
Device: Kindle Touch fw5.3.7 (Wifi only)
|
Yes. Rebasing will allow you to walk through each commit and change the metadata.
Code:
# Using "--root" is very important, you cannot simply specify the sha1 of the # first commit, or it will start with the second commit git rebase -i --root :%s/pick/edit/g :wq git commit --amend --author="Adam Selene <>" && git rebase --continue ... ... ![]() fatal: Malformed ident string: 'Adam Selene <> 1268438400 +0000' EDIT #2: use this to "amend" a commit by undoing the commit, recommitting using the saved EDITMSG, then continuing rebase: Code:
git undo-commit && git commit --author="Adam Selene <>" -m "$(cat .git/COMMIT_EDITMSG)" && git rebase --continue ... ... Code:
# revert "git commit", leaving you with staged changes. git config --global alias.undo-commit 'reset --soft HEAD^' Last edited by eschwartz; 10-15-2014 at 12:42 PM. |
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Can i rotate text and insert images in Mobi and EPUB? | JanGLi | Kindle Formats | 5 | 02-02-2013 04:16 PM |
PDF to Mobi with text and images | pocketsprocket | Kindle Formats | 7 | 05-21-2012 07:06 AM |
Mobi files - images | DWC | Introduce Yourself | 5 | 07-06-2011 01:43 AM |
pdf to mobi... creating images rather than text | Dumhed | Calibre | 5 | 11-06-2010 12:08 PM |
Transfer of images on text files | anirudh215 | 2 | 06-22-2009 09:28 AM |