diff --git a/classes/feedenclosure.php b/classes/feedenclosure.php index b57100b06..64f1a0616 100644 --- a/classes/feedenclosure.php +++ b/classes/feedenclosure.php @@ -4,5 +4,7 @@ class FeedEnclosure { public $type; public $length; public $title; + public $height; + public $width; } ?> diff --git a/classes/feeditem/atom.php b/classes/feeditem/atom.php index 48e3aa567..dfac7149f 100644 --- a/classes/feeditem/atom.php +++ b/classes/feeditem/atom.php @@ -145,6 +145,8 @@ class FeedItem_Atom extends FeedItem_Common { $enc->type = $enclosure->getAttribute("type"); $enc->link = $enclosure->getAttribute("url"); $enc->length = $enclosure->getAttribute("length"); + $enc->height = $enclosure->getAttribute("height"); + $enc->width = $enclosure->getAttribute("width"); $desc = $this->xpath->query("media:description", $enclosure)->item(0); if ($desc) $enc->title = strip_tags($desc->nodeValue); @@ -164,6 +166,8 @@ class FeedItem_Atom extends FeedItem_Common { $enc->type = $content->getAttribute("type"); $enc->link = $content->getAttribute("url"); $enc->length = $content->getAttribute("length"); + $enc->height = $content->getAttribute("height"); + $enc->width = $content->getAttribute("width"); $desc = $this->xpath->query("media:description", $content)->item(0); if ($desc) { @@ -184,6 +188,8 @@ class FeedItem_Atom extends FeedItem_Common { $enc->type = "image/generic"; $enc->link = $enclosure->getAttribute("url"); + $enc->height = $enclosure->getAttribute("height"); + $enc->width = $enclosure->getAttribute("width"); array_push($encs, $enc); } diff --git a/classes/feeditem/rss.php b/classes/feeditem/rss.php index bf08a1dfe..c9a7467cd 100644 --- a/classes/feeditem/rss.php +++ b/classes/feeditem/rss.php @@ -113,6 +113,8 @@ class FeedItem_RSS extends FeedItem_Common { $enc->type = $enclosure->getAttribute("type"); $enc->link = $enclosure->getAttribute("url"); $enc->length = $enclosure->getAttribute("length"); + $enc->height = $enclosure->getAttribute("height"); + $enc->width = $enclosure->getAttribute("width"); array_push($encs, $enc); } @@ -125,6 +127,8 @@ class FeedItem_RSS extends FeedItem_Common { $enc->type = $enclosure->getAttribute("type"); $enc->link = $enclosure->getAttribute("url"); $enc->length = $enclosure->getAttribute("length"); + $enc->height = $enclosure->getAttribute("height"); + $enc->width = $enclosure->getAttribute("width"); $desc = $this->xpath->query("media:description", $enclosure)->item(0); if ($desc) $enc->title = strip_tags($desc->nodeValue); @@ -144,6 +148,8 @@ class FeedItem_RSS extends FeedItem_Common { $enc->type = $content->getAttribute("type"); $enc->link = $content->getAttribute("url"); $enc->length = $content->getAttribute("length"); + $enc->height = $content->getAttribute("height"); + $enc->width = $content->getAttribute("width"); $desc = $this->xpath->query("media:description", $content)->item(0); if ($desc) { @@ -164,6 +170,8 @@ class FeedItem_RSS extends FeedItem_Common { $enc->type = "image/generic"; $enc->link = $enclosure->getAttribute("url"); + $enc->height = $enclosure->getAttribute("height"); + $enc->width = $enclosure->getAttribute("width"); array_push($encs, $enc); } diff --git a/include/functions.php b/include/functions.php index b5d52ccb2..cb91b637e 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1,6 +1,6 @@ 0) + $encsize .= ' height="' . intval($entry['width']) . '"'; + if ($entry['width'] > 0) + $encsize .= ' width="' . intval($entry['height']) . '"'; $rv .= "

\"".htmlspecialchars($entry["filename"])."\"

"; + src=\"" .htmlspecialchars($entry["url"]) . "\" + " . $encsize . " />

"; } else { $rv .= "

link, $e->type, $e->length, $e->title); + $e->link, $e->type, $e->length, $e->title, $e->width, $e->height); array_push($enclosures, $e_item); } } @@ -1009,14 +1009,16 @@ $enc_type = db_escape_string($enc[1]); $enc_dur = db_escape_string($enc[2]); $enc_title = db_escape_string($enc[3]); + $enc_width = intval($enc[4]); + $enc_height = intval($enc[5]); $result = db_query("SELECT id FROM ttrss_enclosures WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'"); if (db_num_rows($result) == 0) { db_query("INSERT INTO ttrss_enclosures - (content_url, content_type, title, duration, post_id) VALUES - ('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id')"); + (content_url, content_type, title, duration, post_id, width, height) VALUES + ('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id', $enc_width, $enc_height)"); } } diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql index f8ff944c0..a9a358220 100644 --- a/schema/ttrss_schema_mysql.sql +++ b/schema/ttrss_schema_mysql.sql @@ -301,7 +301,7 @@ create table ttrss_tags (id integer primary key auto_increment, create table ttrss_version (schema_version int not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8; -insert into ttrss_version values (125); +insert into ttrss_version values (126); create table ttrss_enclosures (id integer primary key auto_increment, content_url text not null, @@ -309,6 +309,8 @@ create table ttrss_enclosures (id integer primary key auto_increment, post_id integer not null, title text not null, duration text not null, + width integer not null default 0, + height integer not null default 0, index (post_id), foreign key (post_id) references ttrss_entries(id) ON DELETE cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8; diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql index 3aa65e8b2..c09f044fb 100644 --- a/schema/ttrss_schema_pgsql.sql +++ b/schema/ttrss_schema_pgsql.sql @@ -261,13 +261,15 @@ create index ttrss_tags_post_int_id_idx on ttrss_tags(post_int_id); create table ttrss_version (schema_version int not null); -insert into ttrss_version values (125); +insert into ttrss_version values (126); create table ttrss_enclosures (id serial not null primary key, content_url text not null, content_type varchar(250) not null, title text not null, duration text not null, + width integer not null default 0, + height integer not null default 0, post_id integer references ttrss_entries(id) ON DELETE cascade NOT NULL); create index ttrss_enclosures_post_id_idx on ttrss_enclosures(post_id); diff --git a/schema/versions/mysql/126.sql b/schema/versions/mysql/126.sql new file mode 100644 index 000000000..6ff661e71 --- /dev/null +++ b/schema/versions/mysql/126.sql @@ -0,0 +1,8 @@ +begin; + +alter table ttrss_enclosures add column width integer not null default 0; +alter table ttrss_enclosures add column height integer not null default 0; + +update ttrss_version set schema_version = 126; + +commit; diff --git a/schema/versions/pgsql/126.sql b/schema/versions/pgsql/126.sql new file mode 100644 index 000000000..46f391aa5 --- /dev/null +++ b/schema/versions/pgsql/126.sql @@ -0,0 +1,8 @@ +begin; + +alter table ttrss_enclosures add column height integer not null default 0; +alter table ttrss_enclosures add column width integer not null default 0; + +update ttrss_version set schema_version = 126; + +commit;