diff --git a/feeds.py b/feeds.py
index 2ee5d51..5c34b85 100644
--- a/feeds.py
+++ b/feeds.py
@@ -343,6 +343,15 @@ class FeedItem(FeedBase):
description = desc = FeedDescriptor('desc')
content = FeedDescriptor('content')
+ def pushContent(self, value, clip=False):
+ if not self.desc and self.content:
+ self.desc = self.content
+
+ if self.desc and clip:
+ self.content = self.desc + "
* * *
" + value
+ else:
+ self.content = value
+
def remove(self):
self.xml.getparent().remove(self.xml)
diff --git a/morss.py b/morss.py
index 952559b..c67cf6a 100644
--- a/morss.py
+++ b/morss.py
@@ -61,22 +61,6 @@ def countWord(txt):
else:
return 0
-def makeDesc(txt, length, suffix='...'):
- ' '.join(txt.split()[:length]) + suffix
-
-def setContent(item, txt):
- if not item.desc:
- if item.content:
- log('content alone')
- item.desc = item.content
- item.content = txt
- else:
- log('empty')
- item.desc = makeDesc(txt, 30)
- item.content = txt
- else:
- item.content = txt
-
def parseOptions():
url = ''
options = []
@@ -264,7 +248,7 @@ def decodeHTML(data, con=None):
log(enc)
return data.decode(enc, 'replace')
-def Fill(item, cache, feedurl='/', fast=False):
+def Fill(item, cache, feedurl='/', fast=False, clip=False):
""" Returns True when it has done its best """
if not item.link:
@@ -328,7 +312,7 @@ def Fill(item, cache, feedurl='/', fast=False):
log('old error')
else:
log('cached')
- setContent(item, cache.get(link))
+ item.pushContent(cache.get(link), clip)
return True
# super-fast mode
@@ -354,7 +338,7 @@ def Fill(item, cache, feedurl='/', fast=False):
out = readability.Document(data, url=con.url).summary(True)
if countWord(out) > max(count_content, count_desc) > 0:
- setContent(item, out)
+ item.pushContent(out, clip)
cache.set(link, out)
else:
log('not bigger enough')