Skip to content

v1.4.1

Compare
Choose a tag to compare
@joshstoik1 joshstoik1 released this 19 Mar 04:02
· 344 commits to master since this release

JS Mate Poe has been completely re-written in Rust, and is now distributed as a wasm binary (albeit one wrapped up inside of Javascript, since browsers can't yet directly load wasm). This greatly improves the overall maintainability and coverage of the code, and results in significantly faster and more efficient processing at runtime.

Woo!

A lot has changed, obviously. If you notice any issues, please let me know!

Breaking

On the user-facing side, there are a few important changes to note. Refer to the linked docs for more information.

Installation-wise:

  1. The js-mate-poe.min.js script is now async-friendly.
  2. Poe now starts automatically as soon as the script has loaded.
  3. You can disable autostart and/or sound by adding data-no-start and data-no-sound attributes to the <script> tag, respectively.

API-wise

  1. Poe.start() and Poe.stop() have been merged into the single getter/setter Poe.active.
  2. Poe.speed and Poe.play have been removed.

Other

  • The sound and image assets are now linked using Blobs rather than Data URIs. If your site has a Content Security Policy in place, be sure it allows blob: sources for both img-src and media-src, otherwise they might get blocked.

New

  • Added a "Blink" animation.
  • Added a "Big Fish" entrance animation.
  • Added a "Dangle Recovery" transitional sequence (when almost falling off the ceiling).
  • Added a "Rest" animation.
  • Added a "Run Down Wall" animation.
  • Added a "Yo-Yo" entrance animation.

Changed

  • Remastered the "Abduction" sequence.
  • Fine-tuned various animation timings.
  • Removed clipping from the yawn sound.
  • The sound is now lossless Flac instead of lossy MP3.
  • The "Sneeze" companion animation is no longer orientation-dependent.
  • Various DOM I/O reductions (fewer reads, writes, and repaints).
  • The "mate" elements are no longer custom elements, but still use ShadowDOM for isolation.
  • There are now always and only two "mate" elements (prior versions used a variable number as needed).

Firefox Browser Extension

Best of all: JS Mate Poe is now available as a Firefox browser extension! With the click of a button, you can now start/stop Poe on any web page for constant companionship!

Just download the js-mate-poe_firefox_1.4.1.xpi file from the list below. Firefox should prompt you to install it then and there, but if not, simply go to the "Manage Your Extensions" settings page (about:addons), click the gear/settings icon, and select "Install Add-on From File".

Note: Automatic updates probably won't work from this release, but should be in place for the next one. (If you install 1.4.1, you'll probably need to follow the same process to update to 1.4.2, but from then on it should be hands-off.)