From 1870cae01df4e2ad20b5ffb06e422a26ab3c32b0 Mon Sep 17 00:00:00 2001 From: Aleksandr Sakharov Date: Mon, 30 Mar 2026 19:00:48 +0300 Subject: [PATCH] Add support for unpacking files used implode compression algo (for example, Diablo 2 mpq do that) --- mpyq.py | 3 +++ requirements.txt | 1 + setup.py | 1 + 3 files changed, 5 insertions(+) diff --git a/mpyq.py b/mpyq.py index 53f7588..f362ac9 100755 --- a/mpyq.py +++ b/mpyq.py @@ -13,6 +13,7 @@ import zlib from collections import namedtuple from io import BytesIO +import dclimplode __author__ = "Aku Kotkavuo" @@ -197,6 +198,8 @@ def decompress(data): return data elif compression_type == 2: return zlib.decompress(data[1:], 15) + elif compression_type == 8: + return dclimplode.decompressobj().decompress(data[1:]) elif compression_type == 16: return bz2.decompress(data[1:]) else: diff --git a/requirements.txt b/requirements.txt index e175d8e..ecca8db 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ argparse; python_version < "2.7" mock; python_version < "3.3" six +dclimplode \ No newline at end of file diff --git a/setup.py b/setup.py index 91c8567..50dc40c 100644 --- a/setup.py +++ b/setup.py @@ -36,4 +36,5 @@ 'argparse; python_version < "2.7"', 'mock; python_version < "3.3"', 'six', + 'dclimplode', ])