| 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