Skip to content

Releases: vlydev/cs2-masked-inspect-python

v1.1.5 — Reject malformed inspect URLs cleanly

Choose a tag to compare

@vlydev vlydev released this 04 May 12:05

Bug fix: reject malformed inspect URLs cleanly

Real-world URLs from a buggy upstream source arrive truncated mid-keychain with an odd number of hex characters. The library now rejects them with one consistent MalformedInspectLinkException (or equivalent per language) before the binary decode step is even attempted.

What was wrong

  • PHP: hex2bin() emitted an E_WARNING that Symfony escalated to ErrorException (log noise even though the lib already returned false).
  • JS/TS: Buffer.from(oddHex, 'hex') silently truncated odd input — downstream proto parse failed with a cryptic native error or succeeded on garbage.
  • Python/Go/Rust/C#/Kotlin: threw, but with implementation-specific error types leaking through.

What changed

  • Pre-validate hex parity, length, and character set before any binary decode.
  • Wrap proto-decode failures so callers always get the same exception type for "this URL is bad".
  • New exception type extends the previous parent class for backwards compatibility.
  • 9 real-world malformed URLs added as negative test fixtures + synthetic odd-length / empty / non-hex cases.

v1.1.4

Choose a tag to compare

@vlydev vlydev released this 09 Apr 18:36

Bug Fix

  • Handle optional % prefix before hex payload in masked inspect URLs. Some Steam clients produce URLs like csgo_econ_action_preview%20%FDED5D6F... which previously failed to parse.

v1.1.2

Choose a tag to compare

@vlydev vlydev released this 23 Mar 07:43

fix: include paintKit in gen code for sticker slab keychains

v1.1.1

Choose a tag to compare

@vlydev vlydev released this 22 Mar 19:27

What's new

paintKit — Sticker Slab identification (proto field 12)

All Sticker Slabs previously decoded identically: stickerId = 37 with no way to distinguish variants. The underlying proto field 12 inside the Sticker sub-message was silently ignored.

paintKit now exposes this field. For Sticker Slabs it contains the sticker catalog ID that uniquely identifies the variant (e.g. 7256Sticker | Natus Vincere (Holo) | Copenhagen 2024). For regular stickers and keychains the value is absent (null/None/nil).

Also included

  • rarity and quality fields are now correctly decoded for Sticker Slabs (rarity 3/4/5, quality 8)

Test vectors added

  • defIndex=1355, rarity=5, paintKit=7256 — NaVi (Holo) | Copenhagen 2024
  • defIndex=1355, rarity=3, paintKit=275 — Eco Rush

v1.1.0

Choose a tag to compare

@vlydev vlydev released this 17 Mar 06:55

Add gen codes: generate inspect links from item parameters, convert to/from !gen format

CI release added

Choose a tag to compare

@vlydev vlydev released this 16 Mar 16:11
v1.0.2

ci: add PyPI release workflow

Initial release

Choose a tag to compare

@vlydev vlydev released this 16 Mar 10:19
v1.0.1

chore: bump version to 1.0.1