Only store video URLs in database, instead of the generated player HTML.

This commit is contained in:
Michael Foster 2013-07-19 18:36:12 -04:00
parent 0ba40a8fc2
commit 30dc892786
2 changed files with 33 additions and 13 deletions

View File

@ -241,6 +241,29 @@ function secure_link($href) {
return $href . '/' . make_secure_link_token($href);
}
function embed_html($link) {
global $config;
foreach ($config['embedding'] as $embed) {
if ($html = preg_replace($embed[0], $embed[1], $link)) {
if ($html == $link)
continue; // Nope
$html = str_replace('%%tb_width%%', $config['embed_width'], $html);
$html = str_replace('%%tb_height%%', $config['embed_height'], $html);
return $html;
}
}
if ($link[0] == '<') {
// Prior to v0.9.6-dev-8, HTML code for embedding was stored in the database instead of the link.
return $link;
}
return 'Embedding error.';
}
class Post {
public function __construct($id, $thread, $subject, $email, $name, $trip, $capcode, $body, $time, $thumb, $thumbx, $thumby, $file, $filex, $filey, $filesize, $filename, $ip, $embed, $root=null, $mod=false) {
global $config;
@ -269,6 +292,9 @@ class Post {
$this->root = $root;
$this->mod = $mod;
if ($this->embed)
$this->embed = embed_html($this->embed);
if ($this->mod)
// Fix internal links
// Very complicated regex
@ -365,6 +391,9 @@ class Thread {
$this->mod = $mod;
$this->hr = $hr;
if ($this->embed)
$this->embed = embed_html($this->embed);
if ($this->mod)
// Fix internal links
// Very complicated regex

View File

@ -243,19 +243,10 @@ if (isset($_POST['delete'])) {
// yep; validate it
$value = $_POST['embed'];
foreach ($config['embedding'] as &$embed) {
if ($html = preg_replace($embed[0], $embed[1], $value)) {
if ($html == $value) {
// Nope.
continue;
}
// Width and height
$html = str_replace('%%tb_width%%', $config['embed_width'], $html);
$html = str_replace('%%tb_height%%', $config['embed_height'], $html);
// Validated. It works.
$post['embed'] = $html;
// This looks messy right now, I know. I'll work on a better alternative later.
if (preg_match($embed[0], $value)) {
// Valid link
$post['embed'] = $value;
// This is bad, lol.
$post['no_longer_require_an_image_for_op'] = true;
break;
}