Differentiate enclosures based on content type.

Some RSS feeds contain multiple enclosures with the same URL. When the first of
these is not recognized as an image, later entries are not added to the
database as rows in ttrss_enclosures. This change differentiates enclosures
based on their content type, so an entry can have multiple enclosure types with
the same URL (but possibly a different content type).
master
Tobias Kappé 6 years ago
parent 32c0c07cc1
commit ac8a0e7dc6

@ -1074,7 +1074,7 @@ class RSSUtils {
} }
$esth = $pdo->prepare("SELECT id FROM ttrss_enclosures $esth = $pdo->prepare("SELECT id FROM ttrss_enclosures
WHERE content_url = ? AND post_id = ?"); WHERE content_url = ? AND content_type = ? AND post_id = ?");
$usth = $pdo->prepare("INSERT INTO ttrss_enclosures $usth = $pdo->prepare("INSERT INTO ttrss_enclosures
(content_url, content_type, title, duration, post_id, width, height) VALUES (content_url, content_type, title, duration, post_id, width, height) VALUES
@ -1088,7 +1088,7 @@ class RSSUtils {
$enc_width = intval($enc[4]); $enc_width = intval($enc[4]);
$enc_height = intval($enc[5]); $enc_height = intval($enc[5]);
$esth->execute([$enc_url, $entry_ref_id]); $esth->execute([$enc_url, $enc_type, $entry_ref_id]);
if (!$esth->fetch()) { if (!$esth->fetch()) {
$usth->execute([$enc_url, $enc_type, (string)$enc_title, $enc_dur, $entry_ref_id, $enc_width, $enc_height]); $usth->execute([$enc_url, $enc_type, (string)$enc_title, $enc_dur, $entry_ref_id, $enc_width, $enc_height]);

Loading…
Cancel
Save