A lax Web news feed parser
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

233 lines
8.4 KiB

# This file tests extensions primarily designed for RSS 2
iTunes title:
input: >
<rss><channel xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<item>
<itunes:title> Plain title</itunes:title>
</item>
</channel></rss>
output:
format: rss
entries:
- title: 'Plain title'
Explicitly encoded content:
input: >
<rss><channel xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<description>Loose content</description>
<content:encoded>HTML content</content:encoded>
</item>
</channel></rss>
output:
format: rss
entries:
- content: {html: 'HTML content'}
iTunes summary:
input: >
<rss><channel xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<item>
<itunes:summary> Plain summary</itunes:summary>
</item>
</channel></rss>
output:
format: rss
entries:
- summary: 'Plain summary'
Google Play summary:
input: >
<rss><channel xmlns:play="http://www.google.com/schemas/play-podcasts/1.0">
<item>
<play:description> Plain summary</play:description>
</item>
</channel></rss>
output:
format: rss
entries:
- summary: 'Plain summary'
iTunes authors:
input: >
<rss><channel xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<item>
<itunes:author>jane.doe@example.com (Jane Doe)</itunes:author>
<itunes:author>john.doe@example.com (John Doe)</itunes:author>
</item>
</channel></rss>
output:
format: rss
entries:
- people:
- name: 'Jane Doe'
mail: 'jane.doe@example.com'
role: author
- name: 'John Doe'
mail: 'john.doe@example.com'
role: author
Google Play authors:
input: >
<rss><channel xmlns:play="http://www.google.com/schemas/play-podcasts/1.0">
<item>
<play:author>jane.doe@example.com (Jane Doe)</play:author>
<play:author>john.doe@example.com (John Doe)</play:author>
</item>
</channel></rss>
output:
format: rss
entries:
- people:
- name: 'Jane Doe'
mail: 'jane.doe@example.com'
role: author
- name: 'John Doe'
mail: 'john.doe@example.com'
role: author
Mixed podcast authors: # Google Play is arbitrarily preferred
input: >
<rss><channel xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:play="http://www.google.com/schemas/play-podcasts/1.0">
<item>
<itunes:author>jane.doe@example.com (Jane Doe)</itunes:author>
<play:author>john.doe@example.com (John Doe)</play:author>
</item>
</channel></rss>
output:
format: rss
entries:
- people:
- name: 'John Doe'
mail: 'john.doe@example.com'
role: author
iTunes categories:
input: >
<rss><channel xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<item>
<itunes:category text="Arts"/>
<itunes:category text="Arts ">
<itunes:category text=" Fashion &amp; Beauty"/>
</itunes:category>
<itunes:category text="Arts ">
<itunes:category text=" "/>
<itunes:category text="Books"/>
<itunes:category text="Design"/>
</itunes:category>
<itunes:category text=" "/>
<itunes:category>Bogus</itunes:category>
</item>
</channel></rss>
output:
format: rss
entries:
- categories:
- name: Arts
- name: Arts
subcategory: 'Fashion & Beauty'
- name: Arts
subcategory: Books
Google Play categories:
input: >
<rss><channel xmlns:play="http://www.google.com/schemas/play-podcasts/1.0">
<item>
<play:category text="Arts"/>
<play:category text=" "/>
<play:category>Bogus</play:category>
<play:category text="Music"/>
</item>
</channel></rss>
output:
format: rss
entries:
- categories:
- name: Arts
- name: Music
Media RSS enclosures:
input: >
<rss><channel xmlns:media="http://search.yahoo.com/mrss/">
<item>
<media:content url="http://[/"/>
<media:content url="http://example.com/"/>
<media:content url="http://example.com/" type="image/svg+xml"/>
<media:content url="http://example.com/" medium="image"/>
<media:content url="http://example.com/entry.m4a" medium="image"/>
</item>
<item>
<media:content url="http://example.com/">
<media:title>Plain title</media:title>
</media:content>
<media:content url="http://example.com/">
<media:title type=" html ">HTML title</media:title>
</media:content>
<media:content url="http://example.com/">
<media:title type="HTML">Plain title</media:title>
</media:content>
</item>
<item>
<media:content url="http://example.com/" isDefault="true" expression="sample"/>
<media:content url="http://example.com/" fileSize="002567" duration="000000001" width="bogus" height="-20" bitrate="0"/>
<media:content url="http://example.com/" fileSize="1.0" duration="2e6" width="800" height="0600" bitrate="500"/>
</item>
<item>
<media:title>Entry title</media:title>
<media:content url="http://example.com/"/>
<media:group>
<media:title>Group title</media:title>
<media:content url="http://example.com/" isDefault="true"/>
<media:content url="http://example.com/">
<media:title>Enclosure title</media:title>
</media:content>
</media:group>
<media:group isDefault="true">
<media:content url="http://example.com/"/>
</media:group>
<media:group isDefault="true">
<media:content url="http://[/"/>
</media:group>
</item>
</channel></rss>
output:
format: rss
entries:
- enclosures:
- url: 'http://example.com/'
- url: 'http://example.com/'
type: 'image/svg+xml'
- url: 'http://example.com/'
type: 'image'
- url: 'http://example.com/entry.m4a'
type: 'image'
- enclosures:
- url: 'http://example.com/'
title: 'Plain title'
- url: 'http://example.com/'
title: {html: 'HTML title'}
- url: 'http://example.com/'
title: 'Plain title'
- enclosures:
- url: 'http://example.com/'
preferred: true
sample: true
- url: 'http://example.com/'
size: 2567
duration: 1
- url: 'http://example.com/'
width: 800
height: 600
bitrate: 500
- enclosures:
- url: 'http://example.com/'
title: 'Entry title'
- data:
- url: 'http://example.com/'
title: 'Group title'
preferred: true
- url: 'http://example.com/'
title: 'Enclosure title'
- data: [{url: 'http://example.com/', title: 'Entry title'}]
preferred: true