mirror of
https://github.com/RekuNote/Hatenatools3.git
synced 2026-10-30 00:09:13 +00:00
Python 3 port of Hatenatools, optimised for compatibility with RexiMemo-org/hatena-server-py3. Includes Python 3 compatibility fixes, restored functionality from the original Hatenatools, and additional porting/behavior fixes.
68 lines
2.7 KiB
Plaintext
68 lines
2.7 KiB
Plaintext
== Hatenatools3 ==
|
|
== Python 3 port by RekuNote ==
|
|
== aka rekushiiiiii ==
|
|
|
|
Based on Hatenatools by pbsds (Peder Bergebakken Sundt).
|
|
|
|
--VERSIONS--
|
|
PPM.py: v1.5
|
|
UGO.py: v0.93
|
|
NTFT.py: v0.95
|
|
|
|
--ABOUT HATENATOOLS3--
|
|
Hatenatools3 is a Python 3 port of the supplied Hatenatools master sources,
|
|
ported by RekuNote (aka rekushiiiiii).
|
|
|
|
A separate Python 3 port of Hatenatools already exists. Hatenatools3 is not
|
|
intended to claim precedence over that work; this port is specifically kept
|
|
compatible with and optimised for the RexiMemo Python 3 Hatena server:
|
|
https://github.com/RexiMemo-org/hatena-server-py3
|
|
|
|
For drop-in compatibility with hatena-server-py3, the Python package directory
|
|
remains named "Hatenatools" even though the project/distribution is named
|
|
"Hatenatools3".
|
|
|
|
This port preserves the newer master feature set, including PPM's -e and -E
|
|
video export modes, while keeping Python 3 compatibility fixes such as the
|
|
internal ADPCM decoder used on Python 3.13+, where audioop is no longer
|
|
available.
|
|
|
|
--DESCRIPTION--
|
|
PPM.py can read the metadata, thumbnail, frames and sound of Flipnote Studio files: .ppm
|
|
It can also handle .tmb files.
|
|
|
|
UGO.py can read and write UGO files, modify their content, and convert UGO files
|
|
to and from the XML format.
|
|
|
|
NTFT.py can read NTFT image files and convert them to PIL-supported image files.
|
|
|
|
These tools are designed to be usable both as Python modules and as stand-alone applications.
|
|
NTFT.py and PPM.py require NumPy and Pillow for image support. PPM video export requires ffmpeg.
|
|
|
|
--HATENA-SERVER-PY3 COMPATIBILITY--
|
|
The internal Hatenatools/ layout is intentionally preserved so this directory can
|
|
replace or update the bundled Hatenatools directory in hatena-server-py3 without
|
|
requiring the server's import/module paths to be renamed.
|
|
|
|
Target project:
|
|
https://github.com/RexiMemo-org/hatena-server-py3
|
|
|
|
--DOCUMENTATION--
|
|
Original Hatenatools / Hatena server format documentation:
|
|
https://github.com/pbsds/hatena-server/wiki
|
|
|
|
--LICENSE--
|
|
Hatenatools3 retains the original Hatenatools AGPL3 licensing.
|
|
See License.txt or http://www.gnu.org/licenses/agpl-3.0.html for more information.
|
|
|
|
--CREDIT--
|
|
-Original Hatenatools by pbsds (Peder Bergebakken Sundt)
|
|
-Python 3 port / Hatenatools3 by RekuNote (aka rekushiiiiii)
|
|
-Steven for most of the documentation on DSiBrew and his frame decoding example on his talkpage
|
|
-Remark for helping with the 8x8 tiling on the preview images
|
|
-JSAfive for supplying .tmb and .ugo files
|
|
-Austin Burk, Midmad on Hatena Haiku and WDLmaster on hcs64.com for determining the sound codec
|
|
-jaames, for proper p-frame translation
|
|
-WORD559, for video export with ffmpeg
|
|
-wyntrr-end, for proper ffmpeg export duration and frame scaling
|
