Skip to content
This repository

Non-ascii feed titles #12

Open
wants to merge 10 commits into from
This page is out of date. Refresh to see the latest.
2  docs/etiquette.html
@@ -35,7 +35,7 @@
35 35
 <dd><p><code>&lt;feed xmlns:indexing="<a href="http://community.livejournal.com/lj_dev/696793.html">urn:atom-extension:indexing</a>" indexing:index="no"&gt;</code></p>
36 36
 <p><code>&lt;access:restriction xmlns:access="<a href="http://www.bloglines.com/about/specs/fac-1.0">http://www.bloglines.com/about/specs/fac-1.0</a>" relationship="deny"/&gt;</code></p></dd>
37 37
 </dl></p></blockquote>
38  
-<li><p>Ensure that all <a href="http://nightly.feedparser.org/docs/reference-entry-source.html#reference.entry.source.rights">copyright</a> and <a href="http://nightly.feedparser.org/docs/reference-entry-license.html">licensing</a> information is propagated to the
  38
+<li><p>Ensure that all <a href="http://pythonhosted.org/feedparser/reference-entry-source.html#reference.entry.source.rights">copyright</a> and <a href="http://pythonhosted.org/feedparser/reference-entry-source.html#reference.entry.source.rights/reference-entry-license.html">licensing</a> information is propagated to the
39 39
 combined feed(s) that you produce.</p></li>
40 40
 
41 41
 <li><p>Add no advertising.  Consider filtering out ads, lest you
2  docs/filters.html
@@ -96,7 +96,7 @@
96 96
 means that plugins are limited to Python and are run in-process.  Plugins
97 97
 therefore have direct access to planet internals like configuration and
98 98
 logging facitilies, as well as access to the bundled libraries like the
99  
-<a href="http://feedparser.org/docs/">Universal Feed Parser</a> and
  99
+<a href="http://pythonhosted.org/feedparser/">Universal Feed Parser</a> and
100 100
 <a href="http://code.google.com/p/html5lib/">html5lib</a>; but it also
101 101
 means that functions like <code>os.abort()</code> can't be recovered
102 102
 from.</li>
2  docs/index.html
@@ -35,7 +35,7 @@
35 35
 <li>Reference
36 36
 <ul>
37 37
 <li><a href="http://www.planetplanet.org/">Planet</a></li>
38  
-<li><a href="http://feedparser.org/docs/">Universal Feed Parser</a></li>
  38
+<li><a href="http://pythonhosted.org/feedparser">Universal Feed Parser</a></li>
39 39
 <li><a href="http://code.google.com/p/html5lib/">html5lib</a></li>
40 40
 <li><a href="http://htmltmpl.sourceforge.net/">htmltmpl</a></li>
41 41
 <li><a href="http://bitworking.org/projects/httplib2/">httplib2</a></li>
30  docs/normalization.html
@@ -10,7 +10,7 @@
10 10
 <body>
11 11
 <h2>Normalization</h2>
12 12
 <p>Venus builds on, and extends, the <a
13  
-href="http://www.feedparser.org/">Universal Feed Parser</a> and <a
  13
+href="http://pythonhosted.org/feedparser/">Universal Feed Parser</a> and <a
14 14
 href="http://code.google.com/p/html5lib/">html5lib</a> to
15 15
 convert all feeds into Atom 1.0, with well formed XHTML, and encoded as UTF-8,
16 16
 meaning that you don't have to worry about funky feeds, tag soup, or character
@@ -40,11 +40,11 @@
40 40
 <h3>HTML</h3>
41 41
 <p>A number of different normalizations of HTML are performed.  For starters,
42 42
 the HTML is
43  
-<a href="http://www.feedparser.org/docs/html-sanitization.html">sanitized</a>,
  43
+<a href="http://pythonhosted.org/feedparser/html-sanitization.html">sanitized</a>,
44 44
 meaning that HTML tags and attributes that could introduce javascript or
45 45
 other security risks are removed.</p>
46 46
 <p>Then,
47  
-<a href="http://www.feedparser.org/docs/resolving-relative-links.html">relative
  47
+<a href="http://pythonhosted.org/feedparser/resolving-relative-links.html">relative
48 48
 links are resolved</a> within the HTML.  This is also done for links
49 49
 in other areas in the feed too.</p>
50 50
 <p>Finally, unmatched tags are closed.  This is done with a
@@ -55,20 +55,20 @@
55 55
 is also supported.</p>
56 56
 <h3>Atom 1.0</h3>
57 57
 <p>The Universal Feed Parser also
58  
-<a href="http://www.feedparser.org/docs/content-normalization.html">normalizes the content of feeds</a>.  This involves a
59  
-<a href="http://www.feedparser.org/docs/reference.html">large number of elements</a>; the best place to start is to look at
60  
-<a href="http://www.feedparser.org/docs/annotated-examples.html">annotated examples</a>.  Among other things a wide variety of
61  
-<a href="http://www.feedparser.org/docs/date-parsing.html">date formats</a>
  58
+<a href="http://pythonhosted.org/feedparser/content-normalization.html">normalizes the content of feeds</a>.  This involves a
  59
+<a href="http://pythonhosted.org/feedparser/reference.html">large number of elements</a>; the best place to start is to look at
  60
+<a href="http://pythonhosted.org/feedparser/annotated-examples.html">annotated examples</a>.  Among other things a wide variety of
  61
+<a href="http://pythonhosted.org/feedparser/date-parsing.html">date formats</a>
62 62
 are converted into
63 63
 <a href="http://www.ietf.org/rfc/rfc3339.txt">RFC 3339</a> formatted dates.</p>
64  
-<p>If no <a href="http://www.feedparser.org/docs/reference-entry-id.html">ids</a> are found in entries, attempts are made to synthesize one using (in order):</p>
  64
+<p>If no <a href="http://pythonhosted.org/feedparser/reference-entry-id.html">ids</a> are found in entries, attempts are made to synthesize one using (in order):</p>
65 65
 <ul>
66  
-<li><a href="http://www.feedparser.org/docs/reference-entry-link.html">link</a></li>
67  
-<li><a href="http://www.feedparser.org/docs/reference-entry-title.html">title</a></li>
68  
-<li><a href="http://www.feedparser.org/docs/reference-entry-summary.html">summary</a></li>
69  
-<li><a href="http://www.feedparser.org/docs/reference-entry-content.html">content</a></li>
  66
+<li><a href="http://pythonhosted.org/feedparser/reference-entry-link.html">link</a></li>
  67
+<li><a href="http://pythonhosted.org/feedparser/reference-entry-title.html">title</a></li>
  68
+<li><a href="http://pythonhosted.org/feedparser/reference-entry-summary.html">summary</a></li>
  69
+<li><a href="http://pythonhosted.org/feedparser/reference-entry-content.html">content</a></li>
70 70
 </ul>
71  
-<p>If no <a href="http://www.feedparser.org/docs/reference-feed-
  71
+<p>If no <a href="http://pythonhosted.org/feedparser/reference-feed-
72 72
 updated.html">updated</a> dates are found in an entry, the updated date from
73 73
 the feed is used.  If no updated date is found in either the feed or
74 74
 the entry, the current time is substituted.</p>
@@ -84,10 +84,10 @@ <h3 id="overrides">Overrides</h3>
84 84
 <code>updated</code> or <code>xml:lang</code> values can't be trusted.</li>
85 85
 <li><code>title_type</code>, <code>summary_type</code>,
86 86
 <code>content_type</code> allow you to override the 
87  
-<a href="http://www.feedparser.org/docs/reference-entry-title_detail.html#reference.entry.title_detail.type"><code>type</code></a>
  87
+<a href="http://pythonhosted.org/feedparser/reference-entry-title_detail.html#reference.entry.title_detail.type"><code>type</code></a>
88 88
 attributes on these elements.</li>
89 89
 <li><code>name_type</code> does something similar for
90  
-<a href="http://www.feedparser.org/docs/reference-entry-author_detail.html#reference.entry.author_detail.name">author names</a></li>
  90
+<a href="http://pythonhosted.org/feedparser/reference-entry-author_detail.html#reference.entry.author_detail.name">author names</a></li>
91 91
 <li><code>future_dates</code> allows you to specify how to deal with dates which are in the future.
92 92
 <ul style="margin:0">
93 93
 <li><code>ignore_date</code> will cause the date to be ignored (and will therefore default to the time the entry was first seen) until the feed is updated and the time indicated is past, at which point the entry will be updated with the new date.</li>
98  docs/templates.html
@@ -33,22 +33,22 @@
33 33
 <blockquote>
34 34
 <table border="1" cellpadding="5" cellspacing="0">
35 35
 <tr><th>VAR</th><th>type</th><th>source</th></tr>
36  
-<tr><td>author</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-author.html">author</a></td></tr>
37  
-<tr><td>author_name</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-author_detail.html#reference.feed.author_detail.name">author_detail.name</a></td></tr>
38  
-<tr><td>generator</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-generator.html">generator</a></td></tr>
39  
-<tr><td>id</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-id.html">id</a></td></tr>
40  
-<tr><td>icon</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-icon.html">icon</a></td></tr>
41  
-<tr><td>last_updated_822</td><td>Rfc822</td><td><a href="http://feedparser.org/docs/reference-feed-icon.html">updated_parsed</a></td></tr>
42  
-<tr><td>last_updated_iso</td><td>Rfc3399</td><td><a href="http://feedparser.org/docs/reference-feed-icon.html">updated_parsed</a></td></tr>
43  
-<tr><td>last_updated</td><td>PlanetDate</td><td><a href="http://feedparser.org/docs/reference-feed-icon.html">updated_parsed</a></td></tr>
44  
-<tr><td>link</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-link.html">link</a></td></tr>
45  
-<tr><td>logo</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-logo.html">logo</a></td></tr>
46  
-<tr><td>rights</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-rights_detail.html#reference.feed.rights_detail.value">rights_detail.value</a></td></tr>
47  
-<tr><td>subtitle</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-subtitle_detail.html#reference.feed.subtitle_detail.value">subtitle_detail.value</a></td></tr>
48  
-<tr><td>title</td><td>String</td><td><a href="http://feedparser.org/docs/reference-feed-title_detail.html#reference.feed.title_detail.value">title_detail.value</a></td></tr>
49  
-<tr><td>title_plain</td><td>Plain</td><td><a href="http://feedparser.org/docs/reference-feed-title_detail.html#reference.feed.title_detail.value">title_detail.value</a></td></tr>
50  
-<tr><td rowspan="2">url</td><td rowspan="2">String</td><td><a href="http://feedparser.org/docs/reference-feed-links.html#reference.feed.links.href">links[rel='self'].href</a></td></tr>
51  
-<tr><td><a href="http://feedparser.org/docs/reference-headers.html">headers['location']</a></td></tr>
  36
+<tr><td>author</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-author.html">author</a></td></tr>
  37
+<tr><td>author_name</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-author_detail.html#reference.feed.author_detail.name">author_detail.name</a></td></tr>
  38
+<tr><td>generator</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-generator.html">generator</a></td></tr>
  39
+<tr><td>id</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-id.html">id</a></td></tr>
  40
+<tr><td>icon</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-icon.html">icon</a></td></tr>
  41
+<tr><td>last_updated_822</td><td>Rfc822</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-icon.html">updated_parsed</a></td></tr>
  42
+<tr><td>last_updated_iso</td><td>Rfc3399</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-icon.html">updated_parsed</a></td></tr>
  43
+<tr><td>last_updated</td><td>PlanetDate</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-icon.html">updated_parsed</a></td></tr>
  44
+<tr><td>link</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-link.html">link</a></td></tr>
  45
+<tr><td>logo</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-logo.html">logo</a></td></tr>
  46
+<tr><td>rights</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-rights_detail.html#reference.feed.rights_detail.value">rights_detail.value</a></td></tr>
  47
+<tr><td>subtitle</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-subtitle_detail.html#reference.feed.subtitle_detail.value">subtitle_detail.value</a></td></tr>
  48
+<tr><td>title</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-title_detail.html#reference.feed.title_detail.value">title_detail.value</a></td></tr>
  49
+<tr><td>title_plain</td><td>Plain</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-title_detail.html#reference.feed.title_detail.value">title_detail.value</a></td></tr>
  50
+<tr><td rowspan="2">url</td><td rowspan="2">String</td><td><a href="http://pythonhosted.org/feedparser/reference-feed-links.html#reference.feed.links.href">links[rel='self'].href</a></td></tr>
  51
+<tr><td><a href="http://pythonhosted.org/feedparser/reference-headers.html">headers['location']</a></td></tr>
52 52
 </table>
53 53
 </blockquote>
54 54
 
@@ -62,39 +62,39 @@
62 62
 <blockquote>
63 63
 <table border="1" cellpadding="5" cellspacing="0">
64 64
 <tr><th>VAR</th><th>type</th><th>source</th></tr>
65  
-<tr><td>author</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-author.html">author</a></td></tr>
66  
-<tr><td>author_email</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-author_detail.html#reference.entry.author_detail.email">author_detail.email</a></td></tr>
67  
-<tr><td>author_name</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-author_detail.html#reference.entry.author_detail.name">author_detail.name</a></td></tr>
68  
-<tr><td>author_uri</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-author_detail.html#reference.entry.author_detail.href">author_detail.href</a></td></tr>
69  
-<tr><td>content_language</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-content.html#reference.entry.content.language">content[0].language</a></td></tr>
70  
-<tr><td rowspan="2">content</td><td rowspan="2">String</td><td><a href="http://feedparser.org/docs/reference-entry-summary_detail.html#reference.entry.summary_detail.value">summary_detail.value</a></td></tr>
71  
-<tr><td><a href="http://feedparser.org/docs/reference-entry-content.html#reference.entry.content.value">content[0].value</a></td></tr>
72  
-<tr><td rowspan="2">date</td><td rowspan="2">PlanetDate</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
73  
-<tr><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
74  
-<tr><td rowspan="2">date_822</td><td rowspan="2">Rfc822</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
75  
-<tr><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
76  
-<tr><td rowspan="2">date_iso</td><td rowspan="2">Rfc3399</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
77  
-<tr><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
78  
-<tr><td><ins>enclosure_href</ins></td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-enclosures.html#reference.entry.enclosures.href">enclosures[0].href</a></td></tr>
79  
-<tr><td><ins>enclosure_length</ins></td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-enclosures.html#reference.entry.enclosures.length">enclosures[0].length</a></td></tr>
80  
-<tr><td><ins>enclosure_type</ins></td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-enclosures.html#reference.entry.enclosures.type">enclosures[0].type</a></td></tr>
  65
+<tr><td>author</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-author.html">author</a></td></tr>
  66
+<tr><td>author_email</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-author_detail.html#reference.entry.author_detail.email">author_detail.email</a></td></tr>
  67
+<tr><td>author_name</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-author_detail.html#reference.entry.author_detail.name">author_detail.name</a></td></tr>
  68
+<tr><td>author_uri</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-author_detail.html#reference.entry.author_detail.href">author_detail.href</a></td></tr>
  69
+<tr><td>content_language</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-content.html#reference.entry.content.language">content[0].language</a></td></tr>
  70
+<tr><td rowspan="2">content</td><td rowspan="2">String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-summary_detail.html#reference.entry.summary_detail.value">summary_detail.value</a></td></tr>
  71
+<tr><td><a href="http://pythonhosted.org/feedparser/reference-entry-content.html#reference.entry.content.value">content[0].value</a></td></tr>
  72
+<tr><td rowspan="2">date</td><td rowspan="2">PlanetDate</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  73
+<tr><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  74
+<tr><td rowspan="2">date_822</td><td rowspan="2">Rfc822</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  75
+<tr><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  76
+<tr><td rowspan="2">date_iso</td><td rowspan="2">Rfc3399</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  77
+<tr><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  78
+<tr><td><ins>enclosure_href</ins></td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-enclosures.html#reference.entry.enclosures.href">enclosures[0].href</a></td></tr>
  79
+<tr><td><ins>enclosure_length</ins></td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-enclosures.html#reference.entry.enclosures.length">enclosures[0].length</a></td></tr>
  80
+<tr><td><ins>enclosure_type</ins></td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-enclosures.html#reference.entry.enclosures.type">enclosures[0].type</a></td></tr>
81 81
 <tr><td><ins>guid_isPermaLink</ins></td><td>String</td><td><a href="http://blogs.law.harvard.edu/tech/rss#ltguidgtSubelementOfLtitemgt">isPermaLink</a></td></tr>
82  
-<tr><td>id</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-id.html">id</a></td></tr>
83  
-<tr><td>link</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-links.html#reference.entry.links.href">links[rel='alternate'].href</a></td></tr>
84  
-<tr><td>new_channel</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-id.html">id</a></td></tr>
85  
-<tr><td rowspan="2">new_date</td><td rowspan="2">NewDate</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
86  
-<tr><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
87  
-<tr><td>rights</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-rights_detail.html#reference.entry.rights_detail.value">rights_detail.value</a></td></tr>
88  
-<tr><td>title_language</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-title_detail.html#reference.entry.title_detail.language">title_detail.language</a></td></tr>
89  
-<tr><td>title_plain</td><td>Plain</td><td><a href="http://feedparser.org/docs/reference-entry-title_detail.html#reference.entry.title_detail.value">title_detail.value</a></td></tr>
90  
-<tr><td>title</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-title_detail.html#reference.entry.title_detail.value">title_detail.value</a></td></tr>
91  
-<tr><td>summary_language</td><td>String</td><td><a href="http://feedparser.org/docs/reference-entry-summary_detail.html#reference.entry.summary_detail.language">summary_detail.language</a></td></tr>
92  
-<tr><td>updated</td><td>PlanetDate</td><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
93  
-<tr><td>updated_822</td><td>Rfc822</td><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
94  
-<tr><td>updated_iso</td><td>Rfc3399</td><td><a href="http://feedparser.org/docs/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
95  
-<tr><td>published</td><td>PlanetDate</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
96  
-<tr><td>published_822</td><td>Rfc822</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
97  
-<tr><td>published_iso</td><td>Rfc3399</td><td><a href="http://feedparser.org/docs/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  82
+<tr><td>id</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-id.html">id</a></td></tr>
  83
+<tr><td>link</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-links.html#reference.entry.links.href">links[rel='alternate'].href</a></td></tr>
  84
+<tr><td>new_channel</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-id.html">id</a></td></tr>
  85
+<tr><td rowspan="2">new_date</td><td rowspan="2">NewDate</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  86
+<tr><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  87
+<tr><td>rights</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-rights_detail.html#reference.entry.rights_detail.value">rights_detail.value</a></td></tr>
  88
+<tr><td>title_language</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-title_detail.html#reference.entry.title_detail.language">title_detail.language</a></td></tr>
  89
+<tr><td>title_plain</td><td>Plain</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-title_detail.html#reference.entry.title_detail.value">title_detail.value</a></td></tr>
  90
+<tr><td>title</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-title_detail.html#reference.entry.title_detail.value">title_detail.value</a></td></tr>
  91
+<tr><td>summary_language</td><td>String</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-summary_detail.html#reference.entry.summary_detail.language">summary_detail.language</a></td></tr>
  92
+<tr><td>updated</td><td>PlanetDate</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  93
+<tr><td>updated_822</td><td>Rfc822</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  94
+<tr><td>updated_iso</td><td>Rfc3399</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-updated_parsed.html">updated_parsed</a></td></tr>
  95
+<tr><td>published</td><td>PlanetDate</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  96
+<tr><td>published_822</td><td>Rfc822</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
  97
+<tr><td>published_iso</td><td>Rfc3399</td><td><a href="http://pythonhosted.org/feedparser/reference-entry-published_parsed.html">published_parsed</a></td></tr>
98 98
 </table>
99 99
 </blockquote>
100 100
 <p>Note: variables above which start with
@@ -177,7 +177,7 @@
177 177
 <h3>genshi</h3>
178 178
 <p>Genshi approaches the power of XSLT, but with a syntax that many Python
179 179
 programmers find more natural, succinct and expressive.  Genshi templates
180  
-have access to the full range of <a href="http://feedparser.org/docs/reference.html">feedparser</a> values, with the following additions:</p>
  180
+have access to the full range of <a href="http://pythonhosted.org/feedparser/reference.html">feedparser</a> values, with the following additions:</p>
181 181
 <ul>
182 182
 <li>In addition to a <code>feed</code> element which describes the feed
183 183
 for your planet, there is also a <code>feeds</code> element which contains
2  planet/reconstitute.py
@@ -75,7 +75,7 @@ def id(xentry, entry):
75 75
         entry_id = entry.link
76 76
     elif entry.has_key("title") and entry.title:
77 77
         entry_id = (entry.title_detail.base + "/" +
78  
-            md5(entry.title).hexdigest())
  78
+            md5(entry.title.encode('utf-8')).hexdigest())
79 79
     elif entry.has_key("summary") and entry.summary:
80 80
         entry_id = (entry.summary_detail.base + "/" +
81 81
             md5(entry.summary).hexdigest())
8  planet/spider.py
@@ -45,10 +45,10 @@ def filename(directory, filename):
45 45
     filename = re_final_cruft.sub("", filename)
46 46
 
47 47
     # limit length of filename
48  
-    if len(filename)>250:
  48
+    if len(filename)>230:
49 49
         parts=filename.split(',')
50 50
         for i in range(len(parts),0,-1):
51  
-            if len(','.join(parts[:i])) < 220:
  51
+            if len(','.join(parts[:i])) < 200:
52 52
                 filename = ','.join(parts[:i]) + ',' + \
53 53
                     md5(','.join(parts[i:])).hexdigest()
54 54
                 break
@@ -226,7 +226,7 @@ def writeCache(feed_uri, feed_info, data):
226 226
 
227 227
         # apply any filters
228 228
         xdoc = reconstitute.reconstitute(data, entry)
229  
-        output = xdoc.toxml().encode('utf-8')
  229
+        output = xdoc.toxml("utf-8")
230 230
         xdoc.unlink()
231 231
         for filter in config.filters(feed_uri):
232 232
             output = shell.run(filter, output, mode="filter")
@@ -287,7 +287,7 @@ def writeCache(feed_uri, feed_info, data):
287 287
     xdoc=minidom.parseString('''<feed xmlns:planet="%s"
288 288
       xmlns="http://www.w3.org/2005/Atom"/>\n''' % planet.xmlns)
289 289
     reconstitute.source(xdoc.documentElement,data.feed,data.bozo,data.version)
290  
-    write(xdoc.toxml().encode('utf-8'), filename(sources, feed_uri))
  290
+    write(xdoc.toxml("utf-8"), filename(sources, feed_uri))
291 291
     xdoc.unlink()
292 292
 
293 293
 def httpThread(thread_index, input_queue, output_queue, log):
10  tests/data/reconstitute/title_nonascii.xml
... ...
@@ -0,0 +1,10 @@
  1
+<!--
  2
+Description:  title value
  3
+Expect:       title_detail.language == 'en-us'
  4
+-->
  5
+
  6
+<feed xmns="http://www.w3.org/2005/Atom">
  7
+  <entry>
  8
+    <title xml:lang="en-us">foo æøå. French: êèé </title>
  9
+  </entry>
  10
+</feed>
Commit_comment_tip

Tip: You can add notes to lines in a file. Hover to the left of a line to make a note

Something went wrong with that request. Please try again.