Class | FeedParser::RSSItem |
In: |
lib/feedparser/feedparser.rb
|
Parent: | FeedItem |
enclosures | [RW] | The item’s enclosures childs. An array of (url, length, type) triplets. |
# File lib/feedparser/feedparser.rb, line 159 159: def parse(item) 160: # Title. If no title, use the pubDate as fallback. 161: if ((e = item.elements['title'] || item.elements['rss:title']) && 162: e.text) || 163: ((e = item.elements['pubDate'] || item.elements['rss:pubDate']) && 164: e.text) 165: @title = e.text.toUTF8(@feed.encoding).rmWhiteSpace! 166: end 167: # Link 168: if ((e = item.elements['link'] || item.elements['rss:link']) && e.text)|| 169: (e = item.elements['guid'] || item.elements['rss:guid'] and 170: not (e.attribute('isPermaLink') and 171: e.attribute('isPermaLink').value == 'false')) 172: @link = e.text.rmWhiteSpace! 173: end 174: # Content 175: if (e = item.elements['content:encoded']) || 176: (e = item.elements['description'] || item.elements['rss:description']) 177: @content = FeedParser::getcontent(e, @feed) 178: end 179: # Date 180: if e = item.elements['dc:date'] || item.elements['pubDate'] || 181: item.elements['rss:pubDate'] 182: begin 183: @date = Time::xmlschema(e.text) 184: rescue 185: begin 186: @date = Time::rfc2822(e.text) 187: rescue 188: begin 189: @date = Time::parse(e.text) 190: rescue 191: @date = nil 192: end 193: end 194: end 195: end 196: # Creator 197: @creator = @feed.creator 198: if (e = item.elements['dc:creator'] || item.elements['author'] || 199: item.elements['rss:author']) && e.text 200: @creator = e.text.toUTF8(@feed.encoding).rmWhiteSpace! 201: end 202: # Subject 203: if (e = item.elements['dc:subject']) && e.text 204: @subject = e.text.toUTF8(@feed.encoding).rmWhiteSpace! 205: end 206: # Category 207: if (e = item.elements['dc:category'] || item.elements['category'] || 208: item.elements['rss:category']) && e.text 209: @category = e.text.toUTF8(@feed.encoding).rmWhiteSpace! 210: end 211: # Enclosures 212: @enclosures = [] 213: item.each_element('enclosure') do |e| 214: url = e.attribute('url').value if e.attribute('url') 215: length = e.attribute('length').value if e.attribute('length') 216: type = e.attribute('type').value if e.attribute('type') 217: @enclosures << [ url, length, type ] 218: end 219: end