This addon will replace "youtube.com" with the chosen Invidious instance #1441
|
@ -46,9 +46,9 @@ function invidious_render(array &$b)
|
||||||
// this needs to be a system setting
|
// this needs to be a system setting
|
||||||
$replaced = false;
|
$replaced = false;
|
||||||
$invidious = DI::config()->get('invidious', 'server', 'https://invidio.us');
|
$invidious = DI::config()->get('invidious', 'server', 'https://invidio.us');
|
||||||
if (strstr($b['html'], 'https://www.youtube.com')) {
|
if (strpos($b['html'], 'https://www.youtube.com/') !== false || strpos($b['html'], 'https://youtube.com/') !== false || strpos($b['html'], 'https://youtu.be/') !== false) {
|
||||||
|
|||||||
$b['html'] = str_replace(['https://www.youtube.com', 'https://youtube.com'], $invidious, $b['html']);
|
$b['html'] = str_replace('https://youtu.be/', $invidious . '/watch?v=', $b['html']);
|
||||||
$replaced = true;
|
$b['html'] = str_replace(['https://www.youtube.com/', 'https://youtube.com/'], $invidious . '/', $b['html']);
|
||||||
}
|
}
|
||||||
if ($replaced) {
|
if ($replaced) {
|
||||||
heluecht
commented
Why is this block duplicated? Why is this block duplicated?
loma-one
commented
To ensure that different spellings with www and without are intercepted and redirected. To ensure that different spellings with **www** and without are intercepted and redirected.
MrPetovan
commented
Thanks for the reply, the indentation still needs to be corrected. Thanks for the reply, the indentation still needs to be corrected.
heluecht
commented
you could combine the you could combine the `str_replace` with an array as first parameter.
|
|||||||
$b['html'] .= '<hr><p><small>' . DI::l10n()->t('(Invidious addon enabled: YouTube links via %s)', $invidious) . '</small></p>';
|
$b['html'] .= '<hr><p><small>' . DI::l10n()->t('(Invidious addon enabled: YouTube links via %s)', $invidious) . '</small></p>';
|
||||||
|
|
Loading…
Reference in a new issue
You need to also check for
'https://youtube.com'
now that the replacement has been combined. Additionallystrpos()
has better performance for what you're trying to do here.And what about
https://youtu.be/[video id]
links? They need to be replaced by[Invidious domain]/?watch=[video id]
.Lastly, I added an ending slash to the needle strings to match video links. If someone just mentions youtube.com and links to it, it shouldn't be replaced with an Invidious link.