Feeds:
* Added Preview of Blogpost in Atom/RSS Feeds * Added feed_preview in configuration to set the length of BlogPostPreview in Lines
This commit is contained in:
parent
6f50460eda
commit
6c4970adff
40
blogthon.cgi
40
blogthon.cgi
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
# Authors: Stefan Ritter <xeno@thehappy.de>
|
# Authors: Stefan Ritter <xeno@thehappy.de>
|
||||||
# Adrian Vondendriesch <disco-stu@disco-stu.de>
|
# Adrian Vondendriesch <disco-stu@disco-stu.de>
|
||||||
|
# Pascal Turbing <pascal@turbing.de>
|
||||||
# Description: A simple blogging software
|
# Description: A simple blogging software
|
||||||
|
|
||||||
import cgi, os, time, glob, re, md5, sys, random, smtplib
|
import cgi, os, time, glob, re, md5, sys, random, smtplib
|
||||||
@ -116,6 +117,9 @@ except: errorpage('"mail_to" is missing in configuration!')
|
|||||||
try: smtp_host = configuration.get('smtp', 'smtp_host')
|
try: smtp_host = configuration.get('smtp', 'smtp_host')
|
||||||
except: errorpage('"smtp_host" is missing in configuration!')
|
except: errorpage('"smtp_host" is missing in configuration!')
|
||||||
|
|
||||||
|
try: feed_preview = configuration.get('feed', 'feed_preview')
|
||||||
|
except: errorpage('"feed_preview" is missing or empty in configuration')
|
||||||
|
|
||||||
# Read POST Variables
|
# Read POST Variables
|
||||||
action = cgi.FieldStorage()
|
action = cgi.FieldStorage()
|
||||||
month_display = action.getvalue('m')
|
month_display = action.getvalue('m')
|
||||||
@ -197,10 +201,8 @@ else:
|
|||||||
|
|
||||||
# Generate atom feed
|
# Generate atom feed
|
||||||
if feed_display == "atom":
|
if feed_display == "atom":
|
||||||
title = str(entries[0][1]).replace('entries/', '', 1).replace('.' + entries_suffix, '')
|
|
||||||
date = entries[0][0]
|
date = entries[0][0]
|
||||||
blog_title_md5sum = generate_uuid(blog_title)
|
blog_title_md5sum = generate_uuid(blog_title)
|
||||||
title_md5sum = generate_uuid(title)
|
|
||||||
|
|
||||||
# Append 0 to the beginning if len of integer is 1 (value<10)
|
# Append 0 to the beginning if len of integer is 1 (value<10)
|
||||||
month = '%(#)02d' % {'#': int(date[1])}
|
month = '%(#)02d' % {'#': int(date[1])}
|
||||||
@ -218,12 +220,26 @@ if feed_display == "atom":
|
|||||||
print ' <id>urn:uuid:' + blog_title_md5sum + '</id>'
|
print ' <id>urn:uuid:' + blog_title_md5sum + '</id>'
|
||||||
print ' <updated>' + str(date[0]) + '-' + month + '-' + day + 'T' + hour + ':' + min + ':' + sec + 'Z</updated>'
|
print ' <updated>' + str(date[0]) + '-' + month + '-' + day + 'T' + hour + ':' + min + ':' + sec + 'Z</updated>'
|
||||||
print ''
|
print ''
|
||||||
print ' <entry>'
|
j = len(entries)
|
||||||
print ' <title>' + title + '</title>'
|
if j > 10: j = 10
|
||||||
print ' <link href="' + blog_url + '"/>'
|
for i in xrange(0, j):
|
||||||
print ' <id>urn:uuid:' + title_md5sum + '</id>'
|
title = str(entries[i][1]).replace('entries/', '', 1).replace('.' + entries_suffix, '')
|
||||||
print ' <updated>' + str(date[0]) + '-' + month + '-' + day + 'T' + hour + ':' + min + ':' + sec + 'Z</updated>'
|
date = time.strftime("%a, %d %b %Y %H:%M:%S %z", time.gmtime(time.mktime(entries[i][0])))
|
||||||
print ' </entry>'
|
title_md5sum = generate_uuid(title)
|
||||||
|
print ' <entry>'
|
||||||
|
print ' <title>' + title + '</title>'
|
||||||
|
print ' <link href="' + blog_url + '?p=' + title + '"/>'
|
||||||
|
print ' <id>urn:uuid:' + title_md5sum + '</id>'
|
||||||
|
print ' <updated>' + date + '</updated>'
|
||||||
|
print ' <summary>'
|
||||||
|
content = open(str(entries[i][1]), 'r')
|
||||||
|
for h in xrange(0, int(feed_preview)):
|
||||||
|
rss_line = content.readline().strip()
|
||||||
|
if rss_line != '':
|
||||||
|
print ' ' + rss_line
|
||||||
|
content.close()
|
||||||
|
print ' </summary>'
|
||||||
|
print ' </entry>'
|
||||||
print '</feed>'
|
print '</feed>'
|
||||||
|
|
||||||
# Generate rss 2.0 feed
|
# Generate rss 2.0 feed
|
||||||
@ -247,6 +263,14 @@ elif feed_display == "rss":
|
|||||||
print ' <link>' + blog_url + '?p=' + title + '</link>'
|
print ' <link>' + blog_url + '?p=' + title + '</link>'
|
||||||
print ' <guid>' + title_md5sum + '</guid>'
|
print ' <guid>' + title_md5sum + '</guid>'
|
||||||
print ' <pubDate>' + date + '</pubDate>'
|
print ' <pubDate>' + date + '</pubDate>'
|
||||||
|
print ' <description>'
|
||||||
|
content = open(str(entries[i][1]), 'r')
|
||||||
|
for h in xrange(0, int(feed_preview)):
|
||||||
|
rss_line = content.readline().strip()
|
||||||
|
if rss_line != '':
|
||||||
|
print ' ' + rss_line
|
||||||
|
content.close()
|
||||||
|
print ' </description>'
|
||||||
print ' </item>'
|
print ' </item>'
|
||||||
print ' </channel>'
|
print ' </channel>'
|
||||||
print '</rss>'
|
print '</rss>'
|
||||||
|
@ -14,10 +14,13 @@ staticpages: True
|
|||||||
monthlist: True
|
monthlist: True
|
||||||
linklist: True
|
linklist: True
|
||||||
permalinks: True
|
permalinks: True
|
||||||
comments: True
|
comments:
|
||||||
newest_first: True
|
newest_first: True
|
||||||
|
|
||||||
[smtp]
|
[smtp]
|
||||||
new_comment_mail: False
|
new_comment_mail: False
|
||||||
mail_to: please@change.me!!!
|
mail_to: please@change.me!!!
|
||||||
smtp_host: localhost
|
smtp_host: localhost
|
||||||
|
|
||||||
|
[feed]
|
||||||
|
feed_preview: 10
|
||||||
|
Loading…
Reference in New Issue
Block a user