Loading app/Controllers/EpisodeAudioController.php +14 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\URI; use Config\Services; use Modules\Analytics\Config\Analytics; use Modules\PremiumPodcasts\Entities\Subscription; Loading Loading @@ -166,6 +167,18 @@ class EpisodeAudioController extends Controller $subscription instanceof Subscription ? $subscription->id : null ); return redirect()->to($this->analyticsConfig->getAudioUrl($this->episode, $this->request->getGet())); $audioFileURI = new URI(service('file_manager')->getUrl($this->episode->audio->file_key)); $queryParams = []; foreach ($this->request->getGet() as $key => $value) { // do not include token in query params if ($key !== 'token') { $queryParams[$key] = $value; } } $audioFileURI->setQueryArray($queryParams); return redirect()->to((string) $audioFileURI); } } app/Entities/Episode.php +22 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ use App\Models\PostModel; use CodeIgniter\Entity\Entity; use CodeIgniter\Files\File; use CodeIgniter\HTTP\Files\UploadedFile; use CodeIgniter\HTTP\URI; use CodeIgniter\I18n\Time; use Config\Images; use Exception; Loading @@ -30,6 +31,7 @@ use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension; use League\CommonMark\Extension\DisallowedRawHtml\DisallowedRawHtmlExtension; use League\CommonMark\Extension\SmartPunct\SmartPunctExtension; use League\CommonMark\MarkdownConverter; use Modules\Analytics\OP3; use Modules\Media\Entities\Audio; use Modules\Media\Entities\Chapters; use Modules\Media\Entities\Image; Loading Loading @@ -344,7 +346,26 @@ class Episode extends Entity public function getAudioUrl(): string { return url_to('episode-audio', $this->getPodcast()->handle, $this->slug, $this->getAudio()->file_extension); $audioURL = url_to( 'episode-audio', $this->getPodcast() ->handle, $this->slug, $this->getAudio() ->file_extension ); // Wrap episode url with OP3 if episode is public and OP3 is enabled on this podcast if (! $this->is_premium && service('settings')->get( 'Analytics.enableOP3', 'podcast:' . $this->podcast_id )) { $op3 = new OP3(config('Analytics')->OP3); return $op3->wrap($audioURL, $this); } return $audioURL; } public function getAudioWebUrl(): string Loading modules/Analytics/Config/Analytics.php +0 −23 Original line number Diff line number Diff line Loading @@ -4,10 +4,7 @@ declare(strict_types=1); namespace Modules\Analytics\Config; use App\Entities\Episode; use CodeIgniter\Config\BaseConfig; use CodeIgniter\HTTP\URI; use Modules\Analytics\OP3; class Analytics extends BaseConfig { Loading Loading @@ -53,24 +50,4 @@ class Analytics extends BaseConfig ]; public bool $enableOP3 = false; /** * get the full audio file url */ public function getAudioUrl(Episode $episode, array $params): string { $audioFileURI = new URI(service('file_manager')->getUrl($episode->audio->file_key)); $audioFileURI->setQueryArray($params); // Wrap episode url with OP3 if episode is public and OP3 is enabled on this podcast if (! $episode->is_premium && service('settings')->get( 'Analytics.enableOP3', 'podcast:' . $episode->podcast_id )) { $op3 = new OP3($this->OP3); $audioFileURI = new URI($op3->wrap($audioFileURI, $episode)); } return (string) $audioFileURI; } } modules/Analytics/OP3.php +4 −5 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ declare(strict_types=1); namespace Modules\Analytics; use App\Entities\Episode; use CodeIgniter\HTTP\URI; class OP3 { Loading @@ -25,11 +24,11 @@ class OP3 $this->host = rtrim($config['host'], '/'); } public function wrap(URI $audioURI, Episode $episode): string public function wrap(string $audioURL, Episode $episode): string { // remove scheme from audioURI $audioURI->setScheme(''); // remove scheme from audioURI if https $audioURIWithoutHTTPS = preg_replace('(^https://)', '', $audioURL); return $this->host . '/e,pg=' . $episode->podcast->guid . '/' . $audioURI; return $this->host . '/e,pg=' . $episode->podcast->guid . '/' . $audioURIWithoutHTTPS; } } Loading
app/Controllers/EpisodeAudioController.php +14 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\URI; use Config\Services; use Modules\Analytics\Config\Analytics; use Modules\PremiumPodcasts\Entities\Subscription; Loading Loading @@ -166,6 +167,18 @@ class EpisodeAudioController extends Controller $subscription instanceof Subscription ? $subscription->id : null ); return redirect()->to($this->analyticsConfig->getAudioUrl($this->episode, $this->request->getGet())); $audioFileURI = new URI(service('file_manager')->getUrl($this->episode->audio->file_key)); $queryParams = []; foreach ($this->request->getGet() as $key => $value) { // do not include token in query params if ($key !== 'token') { $queryParams[$key] = $value; } } $audioFileURI->setQueryArray($queryParams); return redirect()->to((string) $audioFileURI); } }
app/Entities/Episode.php +22 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ use App\Models\PostModel; use CodeIgniter\Entity\Entity; use CodeIgniter\Files\File; use CodeIgniter\HTTP\Files\UploadedFile; use CodeIgniter\HTTP\URI; use CodeIgniter\I18n\Time; use Config\Images; use Exception; Loading @@ -30,6 +31,7 @@ use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension; use League\CommonMark\Extension\DisallowedRawHtml\DisallowedRawHtmlExtension; use League\CommonMark\Extension\SmartPunct\SmartPunctExtension; use League\CommonMark\MarkdownConverter; use Modules\Analytics\OP3; use Modules\Media\Entities\Audio; use Modules\Media\Entities\Chapters; use Modules\Media\Entities\Image; Loading Loading @@ -344,7 +346,26 @@ class Episode extends Entity public function getAudioUrl(): string { return url_to('episode-audio', $this->getPodcast()->handle, $this->slug, $this->getAudio()->file_extension); $audioURL = url_to( 'episode-audio', $this->getPodcast() ->handle, $this->slug, $this->getAudio() ->file_extension ); // Wrap episode url with OP3 if episode is public and OP3 is enabled on this podcast if (! $this->is_premium && service('settings')->get( 'Analytics.enableOP3', 'podcast:' . $this->podcast_id )) { $op3 = new OP3(config('Analytics')->OP3); return $op3->wrap($audioURL, $this); } return $audioURL; } public function getAudioWebUrl(): string Loading
modules/Analytics/Config/Analytics.php +0 −23 Original line number Diff line number Diff line Loading @@ -4,10 +4,7 @@ declare(strict_types=1); namespace Modules\Analytics\Config; use App\Entities\Episode; use CodeIgniter\Config\BaseConfig; use CodeIgniter\HTTP\URI; use Modules\Analytics\OP3; class Analytics extends BaseConfig { Loading Loading @@ -53,24 +50,4 @@ class Analytics extends BaseConfig ]; public bool $enableOP3 = false; /** * get the full audio file url */ public function getAudioUrl(Episode $episode, array $params): string { $audioFileURI = new URI(service('file_manager')->getUrl($episode->audio->file_key)); $audioFileURI->setQueryArray($params); // Wrap episode url with OP3 if episode is public and OP3 is enabled on this podcast if (! $episode->is_premium && service('settings')->get( 'Analytics.enableOP3', 'podcast:' . $episode->podcast_id )) { $op3 = new OP3($this->OP3); $audioFileURI = new URI($op3->wrap($audioFileURI, $episode)); } return (string) $audioFileURI; } }
modules/Analytics/OP3.php +4 −5 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ declare(strict_types=1); namespace Modules\Analytics; use App\Entities\Episode; use CodeIgniter\HTTP\URI; class OP3 { Loading @@ -25,11 +24,11 @@ class OP3 $this->host = rtrim($config['host'], '/'); } public function wrap(URI $audioURI, Episode $episode): string public function wrap(string $audioURL, Episode $episode): string { // remove scheme from audioURI $audioURI->setScheme(''); // remove scheme from audioURI if https $audioURIWithoutHTTPS = preg_replace('(^https://)', '', $audioURL); return $this->host . '/e,pg=' . $episode->podcast->guid . '/' . $audioURI; return $this->host . '/e,pg=' . $episode->podcast->guid . '/' . $audioURIWithoutHTTPS; } }