Added a simple plugin interface

This commit is contained in:
Stefan Ritter 2009-12-07 00:32:35 +01:00
parent 2f74887f62
commit e7d313cdc4
3 changed files with 30 additions and 0 deletions

View File

@ -101,6 +101,11 @@ except: errorpage('"staticpages_dir" is missing in configuration!')
if not os.path.exists(staticpages_dir): if not os.path.exists(staticpages_dir):
errorpage('"staticpages_dir" does not exist!') errorpage('"staticpages_dir" does not exist!')
try: plugins_dir = configuration.get('personal', 'plugins_dir')
except: errorpage('"plugins_dir" is missing in configuration!')
if not os.path.exists(plugins_dir):
errorpage('"plugins_dir" does not exist!')
try: style = configuration.get('look', 'style') try: style = configuration.get('look', 'style')
except: errorpage('"style" is missing in configuration!') except: errorpage('"style" is missing in configuration!')
@ -306,6 +311,12 @@ else:
print ' </head>' print ' </head>'
print ' <body>' print ' <body>'
print '' print ''
# Plugins
sys.path.append(plugins_dir)
for plugin in glob.glob(plugins_dir + '*.py'):
__import__ (plugin.split('/')[1].replace('.py', ''))
# Site header # Site header
print ' <div class="header">' print ' <div class="header">'
print ' <div class="header_title">' print ' <div class="header_title">'
@ -316,6 +327,7 @@ else:
print ' </div>' print ' </div>'
print ' </div>' print ' </div>'
print '' print ''
# RSS feed # RSS feed
print ' <div class="rss">' print ' <div class="rss">'
if os.path.exists('styles/' + style.replace('.css', '') + '_img/rss.jpg'): if os.path.exists('styles/' + style.replace('.css', '') + '_img/rss.jpg'):
@ -324,6 +336,7 @@ else:
print ' <a href="?feed=rss" class="rss_link">rss</a>' print ' <a href="?feed=rss" class="rss_link">rss</a>'
print ' </div>' print ' </div>'
print '' print ''
# Atom feed # Atom feed
print ' <div class="atom">' print ' <div class="atom">'
if os.path.exists('styles/' + style.replace('.css', '') + '_img/atom.jpg'): if os.path.exists('styles/' + style.replace('.css', '') + '_img/atom.jpg'):

View File

@ -6,6 +6,7 @@ keywords: please,change,me
entries_dir: entries/ entries_dir: entries/
entries_suffix: txt entries_suffix: txt
staticpages_dir: static/ staticpages_dir: static/
plugins_dir: plugins/
[look] [look]
style: blogthon_noir.css style: blogthon_noir.css

16
plugins/plugin_example.py Normal file
View File

@ -0,0 +1,16 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.
# Author: Stefan Ritter <xeno@thehappy.de>
# Description: Example plugin
print ' <span style="position: absolute; top: 0px; right: 0px; color: #666666; font-size: 10px;">'
print ' This blog is powered by Blogthon!&nbsp;'
print ' </span>'
print ''