diff --git a/boot.php b/boot.php
index 48eaeb6f3b..b10ba7a63f 100644
--- a/boot.php
+++ b/boot.php
@@ -43,7 +43,7 @@ define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'Asparagus');
define('FRIENDICA_VERSION', '3.6-dev');
define('DFRN_PROTOCOL_VERSION', '2.23');
-define('DB_UPDATE_VERSION', 1239);
+define('DB_UPDATE_VERSION', 1240);
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
/**
diff --git a/doc/database/db_oembed.md b/doc/database/db_oembed.md
index 080c9824cb..651a52e740 100644
--- a/doc/database/db_oembed.md
+++ b/doc/database/db_oembed.md
@@ -4,6 +4,7 @@ Table oembed
| Field | Description | Type | Null | Key | Default | Extra |
| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- |
| url | page url | varchar(255) | NO | PRI | NULL | |
+| maxwidth | Maximum width passed to Oembed | int(11) | NO | PRI | 0 | |
| content | OEmbed data of the page | text | NO | | NULL | |
| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | |
diff --git a/include/bbcode.php b/include/bbcode.php
index fed535db57..08bfab3ed7 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -46,16 +46,16 @@ function bb_map_location($match) {
* Note: Can produce a [bookmark] tag in the returned string
*
* @brief Processes [attachment] tags
- * @param string $Text
+ * @param string $return
* @param bool|int $simplehtml
* @param bool $tryoembed
* @return string
*/
-function bb_attachment($Text, $simplehtml = false, $tryoembed = true)
+function bb_attachment($return, $simplehtml = false, $tryoembed = true)
{
- $data = get_attachment_data($Text);
+ $data = get_attachment_data($return);
if (!$data) {
- return $Text;
+ return $return;
}
if (isset($data["title"])) {
@@ -68,49 +68,46 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true)
$data["image"] = "";
}
+ $return = '';
if ($simplehtml == 7) {
- $text = style_url_for_mastodon($data["url"]);
+ $return = style_url_for_mastodon($data["url"]);
} elseif (($simplehtml != 4) && ($simplehtml != 0)) {
- $text = sprintf('%s
', $data["url"], $data["title"]);
+ $return = sprintf('%s
', $data["url"], $data["title"]);
} else {
- if ($simplehtml != 4) {
- $text = sprintf('', $data["type"]);
- }
-
- $oembed = sprintf('[bookmark=%s]%s[/bookmark]', $data['url'], $data['title']);
- if ($tryoembed) {
- try {
- $oembed = OEmbed::getHTML($data['url'], $data['title']);
- } catch (Exception $e) {
- // $oembed isn't modified
+ try {
+ if ($tryoembed) {
+ $return = OEmbed::getHTML($data['url'], $data['title']);
+ } else {
+ throw new Exception('OEmbed is disabled for this attachment.');
+ }
+ } catch (Exception $e) {
+ if ($simplehtml != 4) {
+ $return = sprintf('', $data["type"]);
}
- }
- if (stripos($oembed, "';
}
}
-
- if ($simplehtml != 4) {
- $text .= '';
- }
}
- return trim($data["text"] . ' ' . $text . ' ' . $data["after"]);
+
+ return trim($data["text"] . ' ' . $return . ' ' . $data["after"]);
}
function bb_remove_share_information($Text, $plaintext = false, $nolink = false) {
diff --git a/src/Content/OEmbed.php b/src/Content/OEmbed.php
index 5a3f07b536..364648d071 100644
--- a/src/Content/OEmbed.php
+++ b/src/Content/OEmbed.php
@@ -47,8 +47,8 @@ class OEmbed
* @param string $embedurl The URL from which the data should be fetched.
* @param bool $no_rich_type If set to true rich type content won't be fetched.
*
- * @return bool|object Returns object with embed content or false if no embedable
- * content exists
+ * @return bool|object Returns object with embed content or false if no embeddable
+ * content exists
*/
public static function fetchURL($embedurl, $no_rich_type = false)
{
@@ -57,7 +57,7 @@ class OEmbed
$a = get_app();
- $condition = ['url' => normalise_link($embedurl)];
+ $condition = ['url' => normalise_link($embedurl), 'maxwidth' => $a->videowidth];
$r = dba::selectFirst('oembed', ['content'], $condition);
if (DBM::is_result($r)) {
$txt = $r["content"];
@@ -105,8 +105,12 @@ class OEmbed
} else { //save in cache
$j = json_decode($txt);
if ($j->type != "error") {
- dba::insert('oembed', array('url' => normalise_link($embedurl),
- 'content' => $txt, 'created' => datetime_convert()), true);
+ dba::insert('oembed', [
+ 'url' => normalise_link($embedurl),
+ 'maxwidth' => $a->videowidth,
+ 'content' => $txt,
+ 'created' => datetime_convert()
+ ], true);
}
Cache::set($a->videowidth . $embedurl, $txt, CACHE_DAY);
@@ -306,7 +310,7 @@ class OEmbed
if (!x($str_allowed)) {
return false;
}
-
+
$allowed = explode(',', $str_allowed);
return allowed_domain($domain, $allowed);
diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php
index b33f023450..11bf40aec4 100644
--- a/src/Database/DBStructure.php
+++ b/src/Database/DBStructure.php
@@ -1277,11 +1277,12 @@ class DBStructure {
$database["oembed"] = array(
"fields" => array(
"url" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"),
+ "maxwidth" => array("type" => "int(11)", "not null" => "1", "primary" => "1"),
"content" => array("type" => "mediumtext"),
"created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
),
"indexes" => array(
- "PRIMARY" => array("url"),
+ "PRIMARY" => array("url", "maxwidth"),
"created" => array("created"),
)
);
diff --git a/view/theme/frio/theme.php b/view/theme/frio/theme.php
index c529b1f98e..559fc94a27 100644
--- a/view/theme/frio/theme.php
+++ b/view/theme/frio/theme.php
@@ -23,6 +23,7 @@ function frio_init(App $a)
{
// disable the events module link in the profile tab
$a->theme_events_in_profile = false;
+ $a->videowidth = 622;
$a->set_template_engine('smarty3');