Merge pull request '[url_replace] Add support for empty config value' (#1478) from MrPetovan/friendica-addons:bug/13968-url_replace-fatal into 2024.03-rc
Reviewed-on: https://git.friendi.ca/friendica/friendica-addons/pulls/1478pull/1479/head
commit
c9923e47de
|
@ -6,6 +6,7 @@
|
|||
* Author: Dr. Tobias Quathamer <https://social.anoxinon.de/@toddy>
|
||||
* Maintainer: Dr. Tobias Quathamer <https://social.anoxinon.de/@toddy>
|
||||
*/
|
||||
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\DI;
|
||||
|
@ -25,13 +26,13 @@ function url_replace_addon_admin_post()
|
|||
// Convert twelvefeet_sites into an array before setting the new value
|
||||
$twelvefeet_sites = explode(PHP_EOL, $_POST['twelvefeet_sites']);
|
||||
// Normalize URLs by using lower case, removing a trailing slash and whitespace
|
||||
$twelvefeet_sites = array_map(fn ($value): string => rtrim(trim(strtolower($value)), '/'), $twelvefeet_sites);
|
||||
$twelvefeet_sites = array_map(fn($value): string => rtrim(trim(strtolower($value)), '/'), $twelvefeet_sites);
|
||||
// Do not store empty lines or duplicates
|
||||
$twelvefeet_sites = array_filter($twelvefeet_sites, fn ($value): bool => !empty($value));
|
||||
$twelvefeet_sites = array_filter($twelvefeet_sites, fn($value): bool => !empty($value));
|
||||
$twelvefeet_sites = array_unique($twelvefeet_sites);
|
||||
// Ensure a protocol and default to HTTPS
|
||||
$twelvefeet_sites = array_map(
|
||||
fn ($value): string => substr($value, 0, 4) !== 'http' ? 'https://'.$value : $value,
|
||||
fn($value): string => substr($value, 0, 4) !== 'http' ? 'https://' . $value : $value,
|
||||
$twelvefeet_sites
|
||||
);
|
||||
asort($twelvefeet_sites);
|
||||
|
@ -46,7 +47,8 @@ function url_replace_addon_admin(string &$o)
|
|||
{
|
||||
$nitter_server = DI::config()->get('url_replace', 'nitter_server');
|
||||
$invidious_server = DI::config()->get('url_replace', 'invidious_server');
|
||||
$twelvefeet_sites = implode(PHP_EOL, DI::config()->get('url_replace', 'twelvefeet_sites'));
|
||||
$twelvefeet_sites = implode(PHP_EOL, DI::config()->get('url_replace', 'twelvefeet_sites') ?? [] ?: []);
|
||||
|
||||
$t = Renderer::getMarkupTemplate('admin.tpl', 'addon/url_replace/');
|
||||
$o = Renderer::replaceMacros($t, [
|
||||
'$nitter_server' => [
|
||||
|
@ -112,13 +114,10 @@ function url_replace_render(array &$b)
|
|||
}
|
||||
}
|
||||
|
||||
$twelvefeet_sites = DI::config()->get('url_replace', 'twelvefeet_sites');
|
||||
if (empty($twelvefeet_sites)) {
|
||||
$twelvefeet_sites = [];
|
||||
}
|
||||
$twelvefeet_sites = DI::config()->get('url_replace', 'twelvefeet_sites') ?? [] ?: [];
|
||||
foreach ($twelvefeet_sites as $twelvefeet_site) {
|
||||
if (strpos($b['html'], $twelvefeet_site) !== false) {
|
||||
$b['html'] = str_replace($twelvefeet_site, 'https://12ft.io/'.$twelvefeet_site, $b['html']);
|
||||
$b['html'] = str_replace($twelvefeet_site, 'https://12ft.io/' . $twelvefeet_site, $b['html']);
|
||||
$replaced = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue