Assign a css-id to each source
This commit is contained in:
parent
bf0c7b736d
commit
1ce96ca53b
@ -50,6 +50,15 @@ def ncr2c(value):
|
|||||||
value=unichr(int(value))
|
value=unichr(int(value))
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
nonalpha=re.compile('\W+',re.UNICODE)
|
||||||
|
def cssid(name):
|
||||||
|
""" generate a css id from a name """
|
||||||
|
try:
|
||||||
|
name = nonalpha.sub('-',name.decode('utf-8')).lower().encode('utf-8')
|
||||||
|
except:
|
||||||
|
name = nonalpha.sub('-',name).lower()
|
||||||
|
return name.strip('-')
|
||||||
|
|
||||||
def normalize(text, bozo):
|
def normalize(text, bozo):
|
||||||
""" convert everything to well formed XML """
|
""" convert everything to well formed XML """
|
||||||
if text.has_key('type'):
|
if text.has_key('type'):
|
||||||
@ -198,6 +207,8 @@ def source(xsource, source, bozo, format):
|
|||||||
if not bozo == None: source['planet_bozo'] = bozo and 'true' or 'false'
|
if not bozo == None: source['planet_bozo'] = bozo and 'true' or 'false'
|
||||||
|
|
||||||
# propagate planet inserted information
|
# propagate planet inserted information
|
||||||
|
if source.has_key('planet_name') and not source.has_key('planet_css-id'):
|
||||||
|
source['planet_css-id'] = cssid(source['planet_name'])
|
||||||
for key, value in source.items():
|
for key, value in source.items():
|
||||||
if key.startswith('planet_'):
|
if key.startswith('planet_'):
|
||||||
createTextElement(xsource, key.replace('_',':',1), value)
|
createTextElement(xsource, key.replace('_',':',1), value)
|
||||||
|
@ -91,6 +91,7 @@ class SpiderTest(unittest.TestCase):
|
|||||||
self.assertEqual(['application/rss+xml'], [link.type
|
self.assertEqual(['application/rss+xml'], [link.type
|
||||||
for link in data.entries[0].source.links if link.rel=='self'])
|
for link in data.entries[0].source.links if link.rel=='self'])
|
||||||
self.assertEqual('three', data.entries[0].source.author_detail.name)
|
self.assertEqual('three', data.entries[0].source.author_detail.name)
|
||||||
|
self.assertEqual('three', data.entries[0].source['planet_css-id'])
|
||||||
|
|
||||||
def test_spiderPlanet(self):
|
def test_spiderPlanet(self):
|
||||||
config.load(configfile)
|
config.load(configfile)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||||
|
xmlns:fn="http://www.w3.org/2005/xpath-functions/"
|
||||||
xmlns:atom="http://www.w3.org/2005/Atom"
|
xmlns:atom="http://www.w3.org/2005/Atom"
|
||||||
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||||
xmlns:planet="http://planet.intertwingly.net/"
|
xmlns:planet="http://planet.intertwingly.net/"
|
||||||
@ -139,7 +140,7 @@
|
|||||||
</xsl:if>
|
</xsl:if>
|
||||||
|
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
<div class="news">
|
<div class="news {atom:source/planet:css-id}">
|
||||||
|
|
||||||
<xsl:if test="@xml:lang">
|
<xsl:if test="@xml:lang">
|
||||||
<xsl:attribute name="xml:lang">
|
<xsl:attribute name="xml:lang">
|
||||||
|
@ -159,7 +159,8 @@ function findEntries() {
|
|||||||
var date = localizeDate(span[i]);
|
var date = localizeDate(span[i]);
|
||||||
|
|
||||||
var parent = span[i];
|
var parent = span[i];
|
||||||
while (parent && parent.className != 'news') {
|
while (parent &&
|
||||||
|
(!parent.className || parent.className.split(' ')[0] != 'news')) {
|
||||||
parent = parent.parentNode;
|
parent = parent.parentNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user