<?php
+/**
+ * @copyright Copyright (C) 2010-2023, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Content;
+use Friendica\Core\System;
+use Friendica\DI;
+use Friendica\Util\Strings;
/**
* Oembed module
*
* Example: /oembed/aHR0cHM6Ly9...
*
- * @author Hypolite Petovan <mrpetovan@gmail.com>
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
*/
class Oembed extends BaseModule
{
- public static function content()
+ protected function content(array $request = []): string
{
- $a = self::getApp();
-
// Unused form: /oembed/b2h?url=...
- if ($a->argv[1] == 'b2h') {
+ if (DI::args()->getArgv()[1] == 'b2h') {
$url = ["", trim(hex2bin($_REQUEST['url']))];
echo Content\OEmbed::replaceCallback($url);
- killme();
+ System::exit();
}
// Unused form: /oembed/h2b?text=...
- if ($a->argv[1] == 'h2b') {
+ if (DI::args()->getArgv()[1] == 'h2b') {
$text = trim(hex2bin($_REQUEST['text']));
echo Content\OEmbed::HTML2BBCode($text);
- killme();
+ System::exit();
}
- if ($a->argc == 2) {
+ // @TODO: Replace with parameter from router
+ if (DI::args()->getArgc() == 2) {
echo '<html><body>';
- $url = base64url_decode($a->argv[1]);
+ $url = Strings::base64UrlDecode(DI::args()->getArgv()[1]);
$j = Content\OEmbed::fetchURL($url);
// workaround for media.ccc.de (and any other endpoint that return size 0)
echo $j->html;
echo '</body></html>';
}
- killme();
+ System::exit();
}
}