From 0c019b4436c9ec224b23972a65aaf55aa03d5d57 Mon Sep 17 00:00:00 2001
From: Dave Zaikos
Date: Sun, 22 Jun 2014 01:08:57 -0400
Subject: [PATCH 1/4] Added curl CURLOPT_NOBODY option in geturl function to
ensure the HEAD method is used when resolving permanent/temporary URL moves.
---
include/functions2.php | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/functions2.php b/include/functions2.php
index d6a399ffc..3e3367240 100644
--- a/include/functions2.php
+++ b/include/functions2.php
@@ -2220,6 +2220,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_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_HEADER, true);
+ curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
From 06c4c9ebaec3187d5e74693d932814e8d991daba Mon Sep 17 00:00:00 2001
From: Felix Eckhofer
Date: Tue, 15 Jul 2014 14:53:11 +0200
Subject: [PATCH 2/4] Update schema for size support of enclosures
---
include/functions.php | 2 +-
schema/ttrss_schema_mysql.sql | 4 +++-
schema/ttrss_schema_pgsql.sql | 4 +++-
schema/versions/mysql/126.sql | 8 ++++++++
schema/versions/pgsql/126.sql | 8 ++++++++
5 files changed, 23 insertions(+), 3 deletions(-)
create mode 100644 schema/versions/mysql/126.sql
create mode 100644 schema/versions/pgsql/126.sql
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 @@
Date: Tue, 15 Jul 2014 15:32:28 +0200
Subject: [PATCH 3/4] Store size of enclosure to database
---
classes/feedenclosure.php | 2 ++
classes/feeditem/atom.php | 6 ++++++
classes/feeditem/rss.php | 8 ++++++++
include/rssfuncs.php | 8 +++++---
4 files changed, 21 insertions(+), 3 deletions(-)
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/rssfuncs.php b/include/rssfuncs.php
index 60cb3b2d2..cdc490cb0 100644
--- a/include/rssfuncs.php
+++ b/include/rssfuncs.php
@@ -989,7 +989,7 @@
if (is_array($encs)) {
foreach ($encs as $e) {
$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);
}
}
@@ -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)");
}
}
From 1e871938153497d46537fc313a79155717d532d0 Mon Sep 17 00:00:00 2001
From: Felix Eckhofer
Date: Tue, 15 Jul 2014 15:44:05 +0200
Subject: [PATCH 4/4] Add width/height attribute to image enclosures
---
include/functions2.php | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/include/functions2.php b/include/functions2.php
index 3e3367240..07024d38f 100644
--- a/include/functions2.php
+++ b/include/functions2.php
@@ -1868,6 +1868,8 @@
$url = $line["content_url"];
$ctype = $line["content_type"];
$title = $line["title"];
+ $width = $line["width"];
+ $height = $line["height"];
if (!$ctype) $ctype = __("unknown type");
@@ -1891,6 +1893,8 @@
$entry["filename"] = $filename;
$entry["url"] = $url;
$entry["title"] = $title;
+ $entry["width"] = $width;
+ $entry["height"] = $height;
array_push($entries, $entry);
}
@@ -1905,9 +1909,15 @@
preg_match("/\.(jpg|png|gif|bmp)/i", $entry["filename"])) {
if (!$hide_images) {
+ $encsize = '';
+ if ($entry['height'] > 0)
+ $encsize .= ' height="' . intval($entry['width']) . '"';
+ if ($entry['width'] > 0)
+ $encsize .= ' width="' . intval($entry['height']) . '"';
$rv .= "";
+ src=\"" .htmlspecialchars($entry["url"]) . "\"
+ " . $encsize . " />
";
} else {
$rv .= "