From 64875e19ccfb37fcc95146048ca836c6c53e4660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Guillot?= Date: Sat, 17 May 2014 09:58:56 -0400 Subject: [PATCH] Update enclosure during a feed update (merge pull-request #199) --- models/item.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/models/item.php b/models/item.php index b97b38b..e02105e 100644 --- a/models/item.php +++ b/models/item.php @@ -419,8 +419,14 @@ function update_all($feed_id, array $items, $grabber = false) \PicoFeed\Logging::log('Item parsed correctly'); - // Insert only new item - if ($db->table('items')->eq('id', $item->id)->count() !== 1) { + // Get item record in database, if any + $itemrec = $db + ->table('items') + ->columns('enclosure') + ->eq('id', $item->id)->findOne(); + + // Insert a new item + if ($itemrec === null) { \PicoFeed\Logging::log('Item added to the database'); @@ -442,6 +448,16 @@ function update_all($feed_id, array $items, $grabber = false) 'language' => $item->language, )); } + else if (isset($item->enclosure) && $item->enclosure && !$itemrec['enclosure']) { + + \PicoFeed\Logging::log('Update item enclosure'); + + $db->table('items')->eq('id', $item->id)->save(array( + 'status' => 'unread', + 'enclosure' => $item->enclosure, + 'enclosure_type' => isset($item->enclosure_type) ? $item->enclosure_type : null, + )); + } else { \PicoFeed\Logging::log('Item already in the database'); }