diff --git a/atomstrom.py b/atomstrom.py index 8c1dfcd..e3d9b2c 100755 --- a/atomstrom.py +++ b/atomstrom.py @@ -49,6 +49,13 @@ def get_entry_text(entry): text = 'no text, sorry' return text +def truncate_text(content, length=100, suffix='...'): + content = " ".join(content.split()) + if len(content) <= length: + return content + else: + return content[:length].rsplit(' ', 1)[0]+suffix + def mail_daily_digest(session, sender, receiver, prefix): print 'mailing daily digest...' entries = session.query(Feed, Feedinfo, Entry).\ @@ -69,7 +76,7 @@ def mail_daily_digest(session, sender, receiver, prefix): try: body = body + '=> %s - %s\n' % (entry.firstfetched.strftime('%y%m%d-%H%M'), feedinfo.title) body = body + ' %s\n' % entry.title - body = body + '%s\n' % get_entry_text(entry)[0:100] + body = body + '%s\n' % truncate_text(get_entry_text(entry), 250) body = body + '%s\n\n' % link except: print 'ERROR processing entry %s' % entry.id;