Releases: Jackysi/PawTunes
Releases · Jackysi/PawTunes
PawTunes v1.1.1
🐾 PawTunes Changelog
v1.1.1 - 14 April 2026
Fixes
- Fix: the CSFR validation failures on artwork upload page, now we also show an message #31
f57d4ac - Fix: prevent tooltip flicker by skipping recreate for same element
bd73862 - Fix: let delete click events bubble so data-confirm popover can fire
73df21b - Fix: prevent tooltip flicker when hovering over child icon elements
83082f0 - Fix: remove stray brace causing syntax error in scheme delete handler
f8b6c16
Chores And Housekeeping
- Chore: heavily improve dark mode on the modern template, just whole redesign including visualization
e7eac15 - Chore: update readme file with new screenshot with the new Modern Dark template
29ba240 - Chore: some adjustments are required for PHP 7.4 compatibility
a1bf8d0
Documentation Changes
- Docs: update README with a bit clearer style and quick links
1a1820e
Tidying of Code eg Whitespace
- Style: redesign the administration control panel using modern colour schemes
423d3d8 - Style: remove overflow on desktop to prevent tooltip clipping, mobile-only scroll
8ca612d - Style: add divider on the How to configure collapse link
a811de9
General Changes
- UX: add arrow to JS tooltips, support left/right/flip positioning, viewport clamping
ab92368 - UX: JS-positioned tooltips inside overflow containers, restore artwork scrollbar
d16b881 - UX: add popover confirm to scheme and artwork delete buttons
eae99f4 - UX: convert all css-hint tooltips to JS-positioned system
ddae94e
PawTunes v1.1.0
🐾 PawTunes Changelog
v1.1.0 - 11 April 2026
New Features
- Feat: add new template called "modern", it's a very simple template, focused on mobile devices
e6672ef - Feat: new modern template visualiser should use custom bars rendering function, looks way way better
ba3ded8 - Feat: improve metadata parsing for Ogg/Vorbis/Opus streams and some FLAC implementations
b8ba32a
Fixes
- Fix: PHP 7.4 compatibility - remove str_starts_with() and mixed type
98b18a5 - Fix: heavily improved chrome icy-metadata parsing in live audio streams works really well now
8b4f616 - Fix: for some reason (mistake) we added timezone offset (in minutes) to UTC date in thousands, removing seconds for no good reason
eea4be4 - Fix: possible memory leak in the event listeners
b6e43b5 - Fix: add CSRF protection to all panel POST forms
6590e9d - Fix: upload error handling - string keys vs integer codes, move on error
31e5204 - Fix: XSS vulnerability via unsanitized JSONP callback parameter
e9c0d54 - Fix: replace weak deterministic auth token with random session token
2fe8637 - Fix: when a single channel/stream is configured and history disabled, remove bottom tab bar
1564241 - Fix: SSRF vulnerability via artwork override parameter
369dedc - Fix: IcecastPublic - wrong operator in mount check + missing else
4d05d81 - Fix: path traversal in language file loading + remove dead code
b74c41e - Fix: template option ID assignment immediately overwritten by scalar
8596cbe - Fix: return type violations - Artwork methods returning false from ?string
cfdacf5 - Fix: replace deprecated utf8_encode() with mb_convert_encoding()
c79de37 - Fix: Custom history defaults checked current track instead of each entry
00cdf9e - Fix: remove error suppression (@) in Cache + fix interface type mismatch
5c481c3 - Fix: Cache::clean() double-delete corrupts cache_store on disk mode
1249412 - Fix: caching issue at the updates system which showed error on cached entries
9a7c521 - Fix: when searching for artwork using the default text, stop searching immediately #24
c315efd - Fix: flash() silently discards all messages after the first
3f79e0c - Fix: when storing config, we store CSRF token with the request, that's an issue
5ca0b69 - Fix: operator precedence bug in host fallback - SERVER_NAME never used
4798b75 - Fix: session fixation - regenerate session ID after login
938a56a - Fix: remove debug code "hi" left in getAdvancedTemplateOptions()
2a3da34 - Fix: inverted channel guard in playlist handler crashes on unknown channel
b67e289 - Fix: block object instantiation in cache deserialization
e082888 - Fix: boolean conversion bug - (bool) 'false' is true in PHP
617d673
Chores And Housekeeping
- Chore: PawTunes also uses composer now for packages and libraries
1af62f9 - Chore: update audio motion analyser to 4.5.4 and recompile static assets
e80d83f - Chore: normalize line endings to LF
c105aca - Chore: on "Modern" template optimise channel logos top margin
c8af05b - Chore: add typed properties to Cache and TrackInfo classes
6cdb891 - Chore: fix imagedestroy() deprecation for PHP 8.5 compatibility
514dcf3 - Chore: remove deprecated curl_close() calls for PHP 8.5 compatibility
321d381 - Chore: update flac and oga audio formats to use correct codecs
2788a11 - Chore: restore first-channel fallback for unknown channel names
bf1b3eb - Chore: add ability to add flac codec as channel stream source #29
206309a
Documentation Changes
- Docs: add new template screenshot to the readme file
43ab345
Refactoring and Updates
PawTunes v1.0.8
PawTunes v1.0.7
🐾 PawTunes Changelog
v1.0.7 - 24 September 2025
New Features
- feat: add french translation @badele
a917e06 - Feat: add the ability to completely disable the track info feature
9766ba4 - Feat: when player debugging is enabled (not logging-only), also enable JS debugging (player events, etc...)
77fc794
Fixes
- Fix: problem where saving settings always overrided mode and other cache settings
2f79a9f - Fix: this is a very special case and fixes empty objects in XML to empty strings/null values
3589d7b - Fix: completely changed the Docker image to Alpine (130mb-ish), new startup scripts and README update
0fad46d - Fix: the player should be able to set lazy artwork URL in JS without API
840010a - Fix: CA Bundle file was not properly used by the "Direct" track info method
5d3d700 - Fix: LastFM Artworks API causes error undefined function xml2array (#23)
e08e3e5 - Fix: player has shown a "muted" status message when volume was set to 1%
bec71ce
Chores And Housekeeping
- Chore: rewrite DIRECT (ICY-METADATA) track info method to CURL as we only use CURL elsewhere in PawTunes
68870e3 - Chore: update comments through TS code a little, to a proper British English
9e0f1b3 - Chore: update readme, add experimental ICY METADATA parsing example
3c1e631 - Chore: Make Artwork & Track info URLs easier to read (refactor)
1e6bfcd - Chore: replace (at)unlink function with a proper check before delete function
65ee572 - Chore: bump version to 1.0.7
97b1d77 - Chore: replace outdated http_send_status (PECL) with http_response_code (Built-in)
3e47873 - Chore: create an empty /data/cache folder in the repository
e0278e5
General Changes
- Added the ability to toggle change log history per version (closed by default)
c3051ca - Add collapse/expand all icons/functionality to the update history
2672598 - A little animations to changelog toggling 🙂
1f46585 - Fixed: under channels deleting logo of a channel didn't work
437568e - Add BrowserStack credit, which is used extensively for cross-device compatibility testing
44cdaec
PawTunes v1.0.6
🐾 PawTunes Changelog
v1.0.6 - 30 January 2025
Fixes
- Fix: when clicking "reset" on template advanced options, value wasn't sent to server
4d1bc0c - Fix: not certain, but this change should handle HTML Encoded entities coming from XML sources #14
2418128 - Fix: when adding channel logo and editing channel again, image reference disparaged #6
ca189b1 - Fix: templates advanced options checkboxes didn't properly work #9
7f8629b
Tidying of Code eg Whitespace
- Style: slowly adapting Laravel PSR style of code, except 80 character line limit
87ea771 - Style: improve readability of API Panel files as well
cb15a41
General Changes
- Create FUNDING.yml
15b53f8
PawTunes v1.0.5
🐾 PawTunes Changelog
v1.0.5 - 22 January 2025
New Features
- Feat: PawTunes now also supports "Icecast Public" track info method which uses status-json.xsl (Icecast 2.4+)
cbe0bbf
Fixes
- Fix: channing channels dynamically via hash now properly works
d1eed36 - Fix: on channels edit page, when empty track info method is submitted, warnings no longer appear
434f270 - Fix: when submitting invalid data on channels add page, don't hide track info fields
2afcc48 - Fix: Remove notice "Undefined offset: 0" when using a single Icecast channel (Issue #10)
71442fb - Fix: configuring Google Analytics caused player to hang
669c0a5
Documentation Changes
- Docs: Add Docker deployment info to the README file
241d13a
Refactoring and Updates
- Refactor: Memcached/Redis Caching methods require "host" parameter. Previously "path" was shared with all
536058c
Tidying of Code eg Whitespace
- Style: remove the initial <?php indents. I've been using these for 16+ years; it's time to switch!
860c77a - Style: run reindent on SVG images, tidy up standards a little and re-order tags
39a8e46 - Style: refactor PawTunes libraries that were left out when changing indents in 860c77a
3ccc059
General Changes
- Added ability to set custom caching prefix to the players via config file
d95e3cb
PawTunes v1.0.4
PawTunes v1.0.3
🐾 PawTunes Changelog
v1.0.3 - 6 January 2025
Fixes
- Fix: Simple template didn't show the channels list option at all
2f6a433 - Fix: 'headers already sent' error when serving artwork directly
915f434 - Fix: Without initial data folders and panel view caches, player didn't work properly
7aea2fb
Chores And Housekeeping
- Chore: renamed fn findChannel to findAndSetChannel, makes more sense
beaeaee
Refactoring and Updates
- Refactor: Remove Debugging statements for the update changelog
40805f4
General Changes
- Added ERROR handler for HTTP fetch and Web Socket failure to retrieve data
f6c49d1 - The retry timer has to be removed when "close" function is called
9bbdd65 - When cleaning player cache, delete cache keys before cached artworks
b18d407 - On "Updates History" panel add scroll bars if the container is bigger than 80% of view port
085bb3c - Don't output Web Socket error from ws class, but instead handle it in new fn
5a508d8 - Refined default Artwork image, removed a gibberish AI-generated text for better clarity
0272dc9
PawTunes v1.0.2
🐾 PawTunes Changelog
v1.0.2 - 20 December 2024
New Features
- Feat: long awaited custom web sockets support. Works with any WSS (SSL) socket that sends JSON in the same format as "custom" track info
fa9fed3 - Feat: When web socket fails, retry connecting every x seconds, each retry adds 2.5sek delay
4de8c1d
Fixes
- Fix: system incorrectly showed update available even if the latest "PawTunes" release was installed
52c20f3 - Fix: changelog didn't properly display headings in the "Update History" panel/tab
ef3451a - Fix: small issue with PHP 8.4, which is strict with null types now
f6741bf - Fix: PawTunes template should not show only "-" when track info methods fail
82eee34 - Fix: allow empty language values when using pure javascript library
03e208e
Chores And Housekeeping
- Chore: use PHP's http status code generator instead of manual, modern approach
4f77005 - Chore: metadata event on Custom Media Source should just pass pure data from StreamTitle
d3893cf - Chore: remove useless padding and margin on the player bottom UI
f4164b6
Refactoring and Updates
- Refactor: add notes to TS files, these are not present in minified output files
b5113b3 - Refactor: slight adjustment to await/async functions in main PawTunes TS file
dcaf82a - Refactor: improve IDE warnings/notices for the "Simple" template
740a5b6 - Refactor: slightly improved type definition on the default "PawTunes" template
08f1557
PawTunes v1.0.1
🐾 PawTunes Changelog
v1.0.1
Fixes
- Fix: PawTunes didn't properly parse version differences, so 1.0.1 wouldn't be triggered as an update
2411926 - Fix: PHP 8.4.1 issues with explicit "nullable"
f372362 - Fix: updates history on the updates page had invalid line breaks which caused too many empty lines
0d59fa6 - Fix: mmd function for warnings and updates was renamed to markdown
f4b7f1d
Refactoring and Updates
- Refactor: remove CHANGELOG from GIT (it is auto generated on release) also spell fix CHANGELOG generator
758d9e2