diff --git a/Slim/Plugin/Podcast/ProtocolHandler.pm b/Slim/Plugin/Podcast/ProtocolHandler.pm index c1e70495a5..5f68ce77af 100644 --- a/Slim/Plugin/Podcast/ProtocolHandler.pm +++ b/Slim/Plugin/Podcast/ProtocolHandler.pm @@ -39,6 +39,15 @@ sub scanUrl { my $track = shift; if ($track) { + # XXXX - this doesn't really belong here. But somewhere down the scanUrl() rabbit hole + # we seem to convert %21 with !. Which breaks some podcast URLs. And I don't want + # to open that can of worms right now. - mh + if (new URI($track->url)->path =~ /!/ && new URI($httpUrl)->path !~ /!/) { + my $uri = $track->url; + $uri =~ s/!/%21/g; + $track->url($uri); + } + main::INFOLOG && $log->info("Scanned podcast $url => ", $track->url, " from ($startTime) for title: ", $song->track->title); # use the scanned track to get streamable url, ignore scanned title and coverart diff --git a/Slim/Utils/Firmware.pm b/Slim/Utils/Firmware.pm index 2e7085bd3c..7160f900b5 100644 --- a/Slim/Utils/Firmware.pm +++ b/Slim/Utils/Firmware.pm @@ -93,7 +93,7 @@ and custom.$model.bin in the cachedir. If these exist then these are used in pr sub init_firmware_download { my $model = shift; - return if $model eq 'squeezeplay'; # there is no firmware for the desktop version of squeezeplay! + return if $model =~ /squeeze(?:play|lite)/i; # there is no firmware for the desktop version of squeezeplay! my $version_file = catdir( $updatesDir, "$model.version" );