Loading app/Helpers/misc_helper.php +3 −99 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ declare(strict_types=1); use App\Entities\Person; use App\Entities\Podcast; use Cocur\Slugify\Slugify; use Config\App; use Config\Images; use Modules\Media\Entities\Image; Loading Loading @@ -42,105 +43,8 @@ if (! function_exists('slugify')) { $text = substr($text, 0, strrpos(substr($text, 0, $maxLength), ' ')); } // replace non letter or digits by - $text = preg_replace('~[^\pL\d]+~u', '-', $text); $unwanted = [ 'Š' => 'S', 'š' => 's', 'Đ' => 'Dj', 'đ' => 'dj', 'Ž' => 'Z', 'ž' => 'z', 'Č' => 'C', 'č' => 'c', 'Ć' => 'C', 'ć' => 'c', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Œ' => 'OE', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'œ' => 'OE', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y', 'Ŕ' => 'R', 'ŕ' => 'r', '/' => '-', ' ' => '-', ]; $text = strtr($text, $unwanted); // transliterate $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); // remove unwanted characters $text = preg_replace('~[^\-\w]+~', '', $text); // trim $text = trim($text, '-'); // remove duplicate - $text = preg_replace('~-+~', '-', $text); // lowercase $text = strtolower($text); return $text; $slugify = new Slugify(); return $slugify->slugify($text); } } Loading composer.json +14 −13 Original line number Diff line number Diff line Loading @@ -7,25 +7,26 @@ "license": "AGPL-3.0-or-later", "require": { "php": "^8.1", "adaures/ipcat-php": "^v1.0.0", "adaures/podcast-persons-taxonomy": "^v1.0.1", "aws/aws-sdk-php": "^3.281.12", "chrisjean/php-ico": "^1.0.4", "cocur/slugify": "^4.5", "codeigniter4/framework": "v4.4.1", "james-heinrich/getid3": "^2.0.0-beta5", "whichbrowser/parser": "^v2.1.7", "codeigniter4/settings": "v2.1.2", "codeigniter4/shield": "v1.0.0-beta.6", "codeigniter4/tasks": "dev-develop", "geoip2/geoip2": "v2.13.0", "james-heinrich/getid3": "^2.0.0-beta5", "league/commonmark": "^2.4.1", "vlucas/phpdotenv": "v5.5.0", "league/html-to-markdown": "5.1.1", "opawg/user-agents-php": "^v1.0", "adaures/ipcat-php": "^v1.0.0", "adaures/podcast-persons-taxonomy": "^v1.0.1", "phpseclib/phpseclib": "~2.0.45", "michalsn/codeigniter4-uuid": "v1.0.2", "codeigniter4/settings": "v2.1.2", "chrisjean/php-ico": "^1.0.4", "melbahja/seo": "^v2.1.1", "codeigniter4/shield": "v1.0.0-beta.6", "aws/aws-sdk-php": "^3.281.12", "michalsn/codeigniter4-uuid": "v1.0.2", "mpratt/embera": "^2.0.34", "codeigniter4/tasks": "dev-develop", "opawg/user-agents-php": "^v1.0", "phpseclib/phpseclib": "~2.0.45", "vlucas/phpdotenv": "v5.5.0", "whichbrowser/parser": "^v2.1.7", "yassinedoghri/podcast-feed": "dev-main" }, "require-dev": { Loading composer.lock +71 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], "content-hash": "2f7475f224d54face5bb527c0edc893a", "content-hash": "b7d9181ef215329ee3c3d2c52e23b2d1", "packages": [ { "name": "adaures/ipcat-php", Loading Loading @@ -302,6 +302,75 @@ }, "time": "2016-09-27T22:00:56+00:00" }, { "name": "cocur/slugify", "version": "v4.5.1", "source": { "type": "git", "url": "https://github.com/cocur/slugify.git", "reference": "7c6e088228b9f082050876ae8b0cd287b117b840" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/cocur/slugify/zipball/7c6e088228b9f082050876ae8b0cd287b117b840", "reference": "7c6e088228b9f082050876ae8b0cd287b117b840", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "conflict": { "symfony/config": "<3.4 || >=4,<4.3", "symfony/dependency-injection": "<3.4 || >=4,<4.3", "symfony/http-kernel": "<3.4 || >=4,<4.3", "twig/twig": "<2.12.1" }, "require-dev": { "laravel/framework": "^5.0|^6.0|^7.0|^8.0", "latte/latte": "~2.2", "league/container": "^2.2.0", "mikey179/vfsstream": "~1.6.8", "mockery/mockery": "^1.3", "nette/di": "~2.4", "pimple/pimple": "~1.1", "plumphp/plum": "~0.1", "symfony/config": "^3.4 || ^4.3 || ^5.0 || ^6.0", "symfony/dependency-injection": "^3.4 || ^4.3 || ^5.0 || ^6.0", "symfony/http-kernel": "^3.4 || ^4.3 || ^5.0 || ^6.0", "symfony/phpunit-bridge": "^5.4 || ^6.0", "twig/twig": "^2.12.1 || ~3.0", "zendframework/zend-modulemanager": "~2.2", "zendframework/zend-servicemanager": "~2.2", "zendframework/zend-view": "~2.2" }, "type": "library", "autoload": { "psr-4": { "Cocur\\Slugify\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": ["MIT"], "authors": [ { "name": "Florian Eckerstorfer", "email": "florian@eckerstorfer.co", "homepage": "https://florian.ec" }, { "name": "Ivo Bathke", "email": "ivo.bathke@gmail.com" } ], "description": "Converts a string into a slug.", "keywords": ["slug", "slugify"], "support": { "issues": "https://github.com/cocur/slugify/issues", "source": "https://github.com/cocur/slugify/tree/v4.5.1" }, "time": "2023-09-17T07:26:20+00:00" }, { "name": "codeigniter4/framework", "version": "v4.4.1", Loading Loading @@ -6517,9 +6586,9 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { "james-heinrich/getid3": 10, "codeigniter4/shield": 10, "codeigniter4/tasks": 20, "james-heinrich/getid3": 10, "yassinedoghri/podcast-feed": 20 }, "prefer-stable": true, Loading modules/PodcastImport/Commands/PodcastImport.php +6 −6 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ class PodcastImport extends BaseCommand $podcastModel = new PodcastModel(); if (! $podcastModel->update($this->podcast->id, $this->podcast)) { throw new Exception(print_r($podcastModel->errors())); throw new Exception((string) print_r($podcastModel->errors())); } CLI::showProgress(false); Loading Loading @@ -250,7 +250,7 @@ class PodcastImport extends BaseCommand $podcastModel = new PodcastModel(); if (! ($podcastId = $podcastModel->insert($podcast, true))) { $db->transRollback(); throw new Exception(print_r($podcastModel->errors())); throw new Exception((string) print_r($podcastModel->errors())); } $podcast->id = $podcastId; Loading Loading @@ -347,7 +347,7 @@ class PodcastImport extends BaseCommand $personGroupSlug, $personRoleSlug )) { throw new Exception(print_r($podcastPersonModel->errors())); throw new Exception((string) print_r($podcastPersonModel->errors())); } } Loading Loading @@ -485,7 +485,7 @@ class PodcastImport extends BaseCommand if (! ($episodeId = $episodeModel->insert($episode, true))) { $db->transRollback(); throw new Exception(print_r($episodeModel->errors())); throw new Exception((string) print_r($episodeModel->errors())); } $this->importEpisodePersons($episodeId, $item->podcast_persons); Loading Loading @@ -535,7 +535,7 @@ class PodcastImport extends BaseCommand ]); if (! ($newPersonId = $personModel->insert($newPerson))) { throw new Exception(print_r($personModel->errors())); throw new Exception((string) print_r($personModel->errors())); } } Loading Loading @@ -567,7 +567,7 @@ class PodcastImport extends BaseCommand $personGroupSlug, $personRoleSlug )) { throw new Exception(print_r($episodePersonModel->errors())); throw new Exception((string) print_r($episodePersonModel->errors())); } } } Loading Loading
app/Helpers/misc_helper.php +3 −99 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ declare(strict_types=1); use App\Entities\Person; use App\Entities\Podcast; use Cocur\Slugify\Slugify; use Config\App; use Config\Images; use Modules\Media\Entities\Image; Loading Loading @@ -42,105 +43,8 @@ if (! function_exists('slugify')) { $text = substr($text, 0, strrpos(substr($text, 0, $maxLength), ' ')); } // replace non letter or digits by - $text = preg_replace('~[^\pL\d]+~u', '-', $text); $unwanted = [ 'Š' => 'S', 'š' => 's', 'Đ' => 'Dj', 'đ' => 'dj', 'Ž' => 'Z', 'ž' => 'z', 'Č' => 'C', 'č' => 'c', 'Ć' => 'C', 'ć' => 'c', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Œ' => 'OE', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'œ' => 'OE', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y', 'Ŕ' => 'R', 'ŕ' => 'r', '/' => '-', ' ' => '-', ]; $text = strtr($text, $unwanted); // transliterate $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); // remove unwanted characters $text = preg_replace('~[^\-\w]+~', '', $text); // trim $text = trim($text, '-'); // remove duplicate - $text = preg_replace('~-+~', '-', $text); // lowercase $text = strtolower($text); return $text; $slugify = new Slugify(); return $slugify->slugify($text); } } Loading
composer.json +14 −13 Original line number Diff line number Diff line Loading @@ -7,25 +7,26 @@ "license": "AGPL-3.0-or-later", "require": { "php": "^8.1", "adaures/ipcat-php": "^v1.0.0", "adaures/podcast-persons-taxonomy": "^v1.0.1", "aws/aws-sdk-php": "^3.281.12", "chrisjean/php-ico": "^1.0.4", "cocur/slugify": "^4.5", "codeigniter4/framework": "v4.4.1", "james-heinrich/getid3": "^2.0.0-beta5", "whichbrowser/parser": "^v2.1.7", "codeigniter4/settings": "v2.1.2", "codeigniter4/shield": "v1.0.0-beta.6", "codeigniter4/tasks": "dev-develop", "geoip2/geoip2": "v2.13.0", "james-heinrich/getid3": "^2.0.0-beta5", "league/commonmark": "^2.4.1", "vlucas/phpdotenv": "v5.5.0", "league/html-to-markdown": "5.1.1", "opawg/user-agents-php": "^v1.0", "adaures/ipcat-php": "^v1.0.0", "adaures/podcast-persons-taxonomy": "^v1.0.1", "phpseclib/phpseclib": "~2.0.45", "michalsn/codeigniter4-uuid": "v1.0.2", "codeigniter4/settings": "v2.1.2", "chrisjean/php-ico": "^1.0.4", "melbahja/seo": "^v2.1.1", "codeigniter4/shield": "v1.0.0-beta.6", "aws/aws-sdk-php": "^3.281.12", "michalsn/codeigniter4-uuid": "v1.0.2", "mpratt/embera": "^2.0.34", "codeigniter4/tasks": "dev-develop", "opawg/user-agents-php": "^v1.0", "phpseclib/phpseclib": "~2.0.45", "vlucas/phpdotenv": "v5.5.0", "whichbrowser/parser": "^v2.1.7", "yassinedoghri/podcast-feed": "dev-main" }, "require-dev": { Loading
composer.lock +71 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], "content-hash": "2f7475f224d54face5bb527c0edc893a", "content-hash": "b7d9181ef215329ee3c3d2c52e23b2d1", "packages": [ { "name": "adaures/ipcat-php", Loading Loading @@ -302,6 +302,75 @@ }, "time": "2016-09-27T22:00:56+00:00" }, { "name": "cocur/slugify", "version": "v4.5.1", "source": { "type": "git", "url": "https://github.com/cocur/slugify.git", "reference": "7c6e088228b9f082050876ae8b0cd287b117b840" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/cocur/slugify/zipball/7c6e088228b9f082050876ae8b0cd287b117b840", "reference": "7c6e088228b9f082050876ae8b0cd287b117b840", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "conflict": { "symfony/config": "<3.4 || >=4,<4.3", "symfony/dependency-injection": "<3.4 || >=4,<4.3", "symfony/http-kernel": "<3.4 || >=4,<4.3", "twig/twig": "<2.12.1" }, "require-dev": { "laravel/framework": "^5.0|^6.0|^7.0|^8.0", "latte/latte": "~2.2", "league/container": "^2.2.0", "mikey179/vfsstream": "~1.6.8", "mockery/mockery": "^1.3", "nette/di": "~2.4", "pimple/pimple": "~1.1", "plumphp/plum": "~0.1", "symfony/config": "^3.4 || ^4.3 || ^5.0 || ^6.0", "symfony/dependency-injection": "^3.4 || ^4.3 || ^5.0 || ^6.0", "symfony/http-kernel": "^3.4 || ^4.3 || ^5.0 || ^6.0", "symfony/phpunit-bridge": "^5.4 || ^6.0", "twig/twig": "^2.12.1 || ~3.0", "zendframework/zend-modulemanager": "~2.2", "zendframework/zend-servicemanager": "~2.2", "zendframework/zend-view": "~2.2" }, "type": "library", "autoload": { "psr-4": { "Cocur\\Slugify\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": ["MIT"], "authors": [ { "name": "Florian Eckerstorfer", "email": "florian@eckerstorfer.co", "homepage": "https://florian.ec" }, { "name": "Ivo Bathke", "email": "ivo.bathke@gmail.com" } ], "description": "Converts a string into a slug.", "keywords": ["slug", "slugify"], "support": { "issues": "https://github.com/cocur/slugify/issues", "source": "https://github.com/cocur/slugify/tree/v4.5.1" }, "time": "2023-09-17T07:26:20+00:00" }, { "name": "codeigniter4/framework", "version": "v4.4.1", Loading Loading @@ -6517,9 +6586,9 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { "james-heinrich/getid3": 10, "codeigniter4/shield": 10, "codeigniter4/tasks": 20, "james-heinrich/getid3": 10, "yassinedoghri/podcast-feed": 20 }, "prefer-stable": true, Loading
modules/PodcastImport/Commands/PodcastImport.php +6 −6 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ class PodcastImport extends BaseCommand $podcastModel = new PodcastModel(); if (! $podcastModel->update($this->podcast->id, $this->podcast)) { throw new Exception(print_r($podcastModel->errors())); throw new Exception((string) print_r($podcastModel->errors())); } CLI::showProgress(false); Loading Loading @@ -250,7 +250,7 @@ class PodcastImport extends BaseCommand $podcastModel = new PodcastModel(); if (! ($podcastId = $podcastModel->insert($podcast, true))) { $db->transRollback(); throw new Exception(print_r($podcastModel->errors())); throw new Exception((string) print_r($podcastModel->errors())); } $podcast->id = $podcastId; Loading Loading @@ -347,7 +347,7 @@ class PodcastImport extends BaseCommand $personGroupSlug, $personRoleSlug )) { throw new Exception(print_r($podcastPersonModel->errors())); throw new Exception((string) print_r($podcastPersonModel->errors())); } } Loading Loading @@ -485,7 +485,7 @@ class PodcastImport extends BaseCommand if (! ($episodeId = $episodeModel->insert($episode, true))) { $db->transRollback(); throw new Exception(print_r($episodeModel->errors())); throw new Exception((string) print_r($episodeModel->errors())); } $this->importEpisodePersons($episodeId, $item->podcast_persons); Loading Loading @@ -535,7 +535,7 @@ class PodcastImport extends BaseCommand ]); if (! ($newPersonId = $personModel->insert($newPerson))) { throw new Exception(print_r($personModel->errors())); throw new Exception((string) print_r($personModel->errors())); } } Loading Loading @@ -567,7 +567,7 @@ class PodcastImport extends BaseCommand $personGroupSlug, $personRoleSlug )) { throw new Exception(print_r($episodePersonModel->errors())); throw new Exception((string) print_r($episodePersonModel->errors())); } } } Loading