There is currently no check to determine if the description tag is empty, therefore it gets overwritten by content:encoded, summary, and content respectively (if they are present).
The comment: // Atom feeds have a content and/or summary tag instead of a description tag.
implies mutual exclusion, however I have come across some feeds with both tags (with description containing a summary, but content:encoded containing the whole long article).
I propose a check before overwriting:
aggregator.parser.inc: function aggregator_parse_feed(&$data, $feed)
<?php
126
+ if (empty($item['description'])) {
if (!empty($item['content:encoded'])) {
$item['description'] = $item['content:encoded'];
}
elseif (!empty($item['summary'])) {
$item['description'] = $item['summary'];
}
elseif (!empty($item['content'])) {
$item['description'] = $item['content'];
}
+ }
?>