Merge branch 'tribut-enclosure-size'

This commit is contained in:
Andrew Dolgov 2014-07-16 11:49:37 +04:00
commit 96ad6edc6c
10 changed files with 56 additions and 7 deletions

View File

@ -4,5 +4,7 @@ class FeedEnclosure {
public $type; public $type;
public $length; public $length;
public $title; public $title;
public $height;
public $width;
} }
?> ?>

View File

@ -145,6 +145,8 @@ class FeedItem_Atom extends FeedItem_Common {
$enc->type = $enclosure->getAttribute("type"); $enc->type = $enclosure->getAttribute("type");
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->length = $enclosure->getAttribute("length"); $enc->length = $enclosure->getAttribute("length");
$enc->height = $enclosure->getAttribute("height");
$enc->width = $enclosure->getAttribute("width");
$desc = $this->xpath->query("media:description", $enclosure)->item(0); $desc = $this->xpath->query("media:description", $enclosure)->item(0);
if ($desc) $enc->title = strip_tags($desc->nodeValue); if ($desc) $enc->title = strip_tags($desc->nodeValue);
@ -164,6 +166,8 @@ class FeedItem_Atom extends FeedItem_Common {
$enc->type = $content->getAttribute("type"); $enc->type = $content->getAttribute("type");
$enc->link = $content->getAttribute("url"); $enc->link = $content->getAttribute("url");
$enc->length = $content->getAttribute("length"); $enc->length = $content->getAttribute("length");
$enc->height = $content->getAttribute("height");
$enc->width = $content->getAttribute("width");
$desc = $this->xpath->query("media:description", $content)->item(0); $desc = $this->xpath->query("media:description", $content)->item(0);
if ($desc) { if ($desc) {
@ -184,6 +188,8 @@ class FeedItem_Atom extends FeedItem_Common {
$enc->type = "image/generic"; $enc->type = "image/generic";
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->height = $enclosure->getAttribute("height");
$enc->width = $enclosure->getAttribute("width");
array_push($encs, $enc); array_push($encs, $enc);
} }

View File

@ -113,6 +113,8 @@ class FeedItem_RSS extends FeedItem_Common {
$enc->type = $enclosure->getAttribute("type"); $enc->type = $enclosure->getAttribute("type");
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->length = $enclosure->getAttribute("length"); $enc->length = $enclosure->getAttribute("length");
$enc->height = $enclosure->getAttribute("height");
$enc->width = $enclosure->getAttribute("width");
array_push($encs, $enc); array_push($encs, $enc);
} }
@ -125,6 +127,8 @@ class FeedItem_RSS extends FeedItem_Common {
$enc->type = $enclosure->getAttribute("type"); $enc->type = $enclosure->getAttribute("type");
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->length = $enclosure->getAttribute("length"); $enc->length = $enclosure->getAttribute("length");
$enc->height = $enclosure->getAttribute("height");
$enc->width = $enclosure->getAttribute("width");
$desc = $this->xpath->query("media:description", $enclosure)->item(0); $desc = $this->xpath->query("media:description", $enclosure)->item(0);
if ($desc) $enc->title = strip_tags($desc->nodeValue); if ($desc) $enc->title = strip_tags($desc->nodeValue);
@ -144,6 +148,8 @@ class FeedItem_RSS extends FeedItem_Common {
$enc->type = $content->getAttribute("type"); $enc->type = $content->getAttribute("type");
$enc->link = $content->getAttribute("url"); $enc->link = $content->getAttribute("url");
$enc->length = $content->getAttribute("length"); $enc->length = $content->getAttribute("length");
$enc->height = $content->getAttribute("height");
$enc->width = $content->getAttribute("width");
$desc = $this->xpath->query("media:description", $content)->item(0); $desc = $this->xpath->query("media:description", $content)->item(0);
if ($desc) { if ($desc) {
@ -164,6 +170,8 @@ class FeedItem_RSS extends FeedItem_Common {
$enc->type = "image/generic"; $enc->type = "image/generic";
$enc->link = $enclosure->getAttribute("url"); $enc->link = $enclosure->getAttribute("url");
$enc->height = $enclosure->getAttribute("height");
$enc->width = $enclosure->getAttribute("width");
array_push($encs, $enc); array_push($encs, $enc);
} }

View File

@ -1,6 +1,6 @@
<?php <?php
define('EXPECTED_CONFIG_VERSION', 26); define('EXPECTED_CONFIG_VERSION', 26);
define('SCHEMA_VERSION', 125); define('SCHEMA_VERSION', 126);
define('LABEL_BASE_INDEX', -1024); define('LABEL_BASE_INDEX', -1024);
define('PLUGIN_FEED_BASE_INDEX', -128); define('PLUGIN_FEED_BASE_INDEX', -128);

View File

@ -1868,6 +1868,8 @@
$url = $line["content_url"]; $url = $line["content_url"];
$ctype = $line["content_type"]; $ctype = $line["content_type"];
$title = $line["title"]; $title = $line["title"];
$width = $line["width"];
$height = $line["height"];
if (!$ctype) $ctype = __("unknown type"); if (!$ctype) $ctype = __("unknown type");
@ -1891,6 +1893,8 @@
$entry["filename"] = $filename; $entry["filename"] = $filename;
$entry["url"] = $url; $entry["url"] = $url;
$entry["title"] = $title; $entry["title"] = $title;
$entry["width"] = $width;
$entry["height"] = $height;
array_push($entries, $entry); array_push($entries, $entry);
} }
@ -1905,9 +1909,15 @@
preg_match("/\.(jpg|png|gif|bmp)/i", $entry["filename"])) { preg_match("/\.(jpg|png|gif|bmp)/i", $entry["filename"])) {
if (!$hide_images) { if (!$hide_images) {
$encsize = '';
if ($entry['height'] > 0)
$encsize .= ' height="' . intval($entry['width']) . '"';
if ($entry['width'] > 0)
$encsize .= ' width="' . intval($entry['height']) . '"';
$rv .= "<p><img $rv .= "<p><img
alt=\"".htmlspecialchars($entry["filename"])."\" alt=\"".htmlspecialchars($entry["filename"])."\"
src=\"" .htmlspecialchars($entry["url"]) . "\"/></p>"; src=\"" .htmlspecialchars($entry["url"]) . "\"
" . $encsize . " /></p>";
} else { } else {
$rv .= "<p><a target=\"_blank\" $rv .= "<p><a target=\"_blank\"
href=\"".htmlspecialchars($entry["url"])."\" href=\"".htmlspecialchars($entry["url"])."\"
@ -2220,6 +2230,7 @@
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0'); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_REFERER, $url); curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true); curl_setopt($curl, CURLOPT_AUTOREFERER, true);

View File

@ -989,7 +989,7 @@
if (is_array($encs)) { if (is_array($encs)) {
foreach ($encs as $e) { foreach ($encs as $e) {
$e_item = array( $e_item = array(
$e->link, $e->type, $e->length, $e->title); $e->link, $e->type, $e->length, $e->title, $e->width, $e->height);
array_push($enclosures, $e_item); array_push($enclosures, $e_item);
} }
} }
@ -1009,14 +1009,16 @@
$enc_type = db_escape_string($enc[1]); $enc_type = db_escape_string($enc[1]);
$enc_dur = db_escape_string($enc[2]); $enc_dur = db_escape_string($enc[2]);
$enc_title = db_escape_string($enc[3]); $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 $result = db_query("SELECT id FROM ttrss_enclosures
WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'"); WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'");
if (db_num_rows($result) == 0) { if (db_num_rows($result) == 0) {
db_query("INSERT INTO ttrss_enclosures db_query("INSERT INTO ttrss_enclosures
(content_url, content_type, title, duration, post_id) VALUES (content_url, content_type, title, duration, post_id, width, height) VALUES
('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id')"); ('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id', $enc_width, $enc_height)");
} }
} }

View File

@ -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; 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, create table ttrss_enclosures (id integer primary key auto_increment,
content_url text not null, content_url text not null,
@ -309,6 +309,8 @@ create table ttrss_enclosures (id integer primary key auto_increment,
post_id integer not null, post_id integer not null,
title text not null, title text not null,
duration text not null, duration text not null,
width integer not null default 0,
height integer not null default 0,
index (post_id), index (post_id),
foreign key (post_id) references ttrss_entries(id) ON DELETE cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8; foreign key (post_id) references ttrss_entries(id) ON DELETE cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8;

View File

@ -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); 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, create table ttrss_enclosures (id serial not null primary key,
content_url text not null, content_url text not null,
content_type varchar(250) not null, content_type varchar(250) not null,
title text not null, title text not null,
duration 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); post_id integer references ttrss_entries(id) ON DELETE cascade NOT NULL);
create index ttrss_enclosures_post_id_idx on ttrss_enclosures(post_id); create index ttrss_enclosures_post_id_idx on ttrss_enclosures(post_id);

View File

@ -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;

View File

@ -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;