]> git.mxchange.org Git - friendica.git/blob - src/Module/Oembed.php
use dba
[friendica.git] / src / Module / Oembed.php
1 <?php\r
2 \r
3 namespace Friendica\Module;\r
4 \r
5 use Friendica\BaseModule;\r
6 use Friendica\Content;\r
7 \r
8 /**\r
9  * Oembed module\r
10  *\r
11  * Displays stored embed content based on a base64 hash of a remote URL\r
12  *\r
13  * Example: /oembed/aHR0cHM6Ly9...\r
14  *\r
15  * @author Hypolite Petovan <mrpetovan@gmail.com>\r
16  */\r
17 class Oembed extends BaseModule\r
18 {\r
19         public static function content()\r
20         {\r
21                 $a = self::getApp();\r
22 \r
23                 // Unused form: /oembed/b2h?url=...\r
24                 if ($a->argv[1] == 'b2h') {\r
25                         $url = array("", trim(hex2bin($_REQUEST['url'])));\r
26                         echo Content\OEmbed::replaceCallback($url);\r
27                         killme();\r
28                 }\r
29 \r
30                 // Unused form: /oembed/h2b?text=...\r
31                 if ($a->argv[1] == 'h2b') {\r
32                         $text = trim(hex2bin($_REQUEST['text']));\r
33                         echo Content\OEmbed::HTML2BBCode($text);\r
34                         killme();\r
35                 }\r
36 \r
37                 if ($a->argc == 2) {\r
38                         echo '<html><body>';\r
39                         $url = base64url_decode($a->argv[1]);\r
40                         $j = Content\OEmbed::fetchURL($url);\r
41 \r
42                         // workaround for media.ccc.de (and any other endpoint that return size 0)\r
43                         if (substr($j->html, 0, 7) == "<iframe" && strstr($j->html, 'width="0"')) {\r
44                                 $j->html = '<style>html,body{margin:0;padding:0;} iframe{width:100%;height:100%;}</style>' . $j->html;\r
45                                 $j->html = str_replace('width="0"', '', $j->html);\r
46                                 $j->html = str_replace('height="0"', '', $j->html);\r
47                         }\r
48                         echo $j->html;\r
49                         echo '</body></html>';\r
50                 }\r
51                 killme();\r
52         }\r
53 }\r