Add maxwidth column to oembed table

- Match Caching key for OEmbed queries
This commit is contained in:
Hypolite Petovan 2018-01-08 23:40:10 -05:00
parent 47e0900220
commit da9523ed23
3 changed files with 13 additions and 8 deletions

View file

@ -43,7 +43,7 @@ define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'Asparagus'); define('FRIENDICA_CODENAME', 'Asparagus');
define('FRIENDICA_VERSION', '3.6-dev'); define('FRIENDICA_VERSION', '3.6-dev');
define('DFRN_PROTOCOL_VERSION', '2.23'); define('DFRN_PROTOCOL_VERSION', '2.23');
define('DB_UPDATE_VERSION', 1239); define('DB_UPDATE_VERSION', 1240);
define('NEW_UPDATE_ROUTINE_VERSION', 1170); define('NEW_UPDATE_ROUTINE_VERSION', 1170);
/** /**

View file

@ -47,8 +47,8 @@ class OEmbed
* @param string $embedurl The URL from which the data should be fetched. * @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. * @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 * @return bool|object Returns object with embed content or false if no embeddable
* content exists * content exists
*/ */
public static function fetchURL($embedurl, $no_rich_type = false) public static function fetchURL($embedurl, $no_rich_type = false)
{ {
@ -57,7 +57,7 @@ class OEmbed
$a = get_app(); $a = get_app();
$condition = ['url' => normalise_link($embedurl)]; $condition = ['url' => normalise_link($embedurl), 'maxwidth' => $a->videowidth];
$r = dba::selectFirst('oembed', ['content'], $condition); $r = dba::selectFirst('oembed', ['content'], $condition);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$txt = $r["content"]; $txt = $r["content"];
@ -105,8 +105,12 @@ class OEmbed
} else { //save in cache } else { //save in cache
$j = json_decode($txt); $j = json_decode($txt);
if ($j->type != "error") { if ($j->type != "error") {
dba::insert('oembed', array('url' => normalise_link($embedurl), dba::insert('oembed', [
'content' => $txt, 'created' => datetime_convert()), true); 'url' => normalise_link($embedurl),
'maxwidth' => $a->videowidth,
'content' => $txt,
'created' => datetime_convert()
], true);
} }
Cache::set($a->videowidth . $embedurl, $txt, CACHE_DAY); Cache::set($a->videowidth . $embedurl, $txt, CACHE_DAY);
@ -306,7 +310,7 @@ class OEmbed
if (!x($str_allowed)) { if (!x($str_allowed)) {
return false; return false;
} }
$allowed = explode(',', $str_allowed); $allowed = explode(',', $str_allowed);
return allowed_domain($domain, $allowed); return allowed_domain($domain, $allowed);

View file

@ -1277,11 +1277,12 @@ class DBStructure {
$database["oembed"] = array( $database["oembed"] = array(
"fields" => array( "fields" => array(
"url" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"), "url" => array("type" => "varbinary(255)", "not null" => "1", "primary" => "1"),
"maxwidth" => array("type" => "int(11)", "not null" => "1", "primary" => "1"),
"content" => array("type" => "mediumtext"), "content" => array("type" => "mediumtext"),
"created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE), "created" => array("type" => "datetime", "not null" => "1", "default" => NULL_DATE),
), ),
"indexes" => array( "indexes" => array(
"PRIMARY" => array("url"), "PRIMARY" => array("url", "maxwidth"),
"created" => array("created"), "created" => array("created"),
) )
); );