65 lines
2 KiB
Python
Executable file
65 lines
2 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Manage plnt
|
|
~~~~~~~~~~~
|
|
|
|
This script manages the plnt application.
|
|
|
|
:copyright: (c) 2009 by the Werkzeug Team, see AUTHORS for more details.
|
|
:license: BSD, see LICENSE for more details.
|
|
"""
|
|
import os
|
|
from werkzeug import script
|
|
|
|
|
|
def make_app():
|
|
"""Helper function that creates a plnt app."""
|
|
from plnt import Plnt
|
|
database_uri = os.environ.get('PLNT_DATABASE_URI')
|
|
app = Plnt(database_uri or 'sqlite:////tmp/plnt.db')
|
|
app.bind_to_context()
|
|
return app
|
|
|
|
|
|
action_runserver = script.make_runserver(make_app, use_reloader=True)
|
|
action_shell = script.make_shell(lambda: {'app': make_app()})
|
|
|
|
|
|
def action_initdb():
|
|
"""Initialize the database"""
|
|
from plnt.database import Blog, session
|
|
make_app().init_database()
|
|
# and now fill in some python blogs everybody should read (shamelessly
|
|
# added my own blog too)
|
|
blogs = [
|
|
Blog('Armin Ronacher', 'http://lucumr.pocoo.org/',
|
|
'http://lucumr.pocoo.org/cogitations/feed/'),
|
|
Blog('Georg Brandl', 'http://pyside.blogspot.com/',
|
|
'http://pyside.blogspot.com/feeds/posts/default'),
|
|
Blog('Ian Bicking', 'http://blog.ianbicking.org/',
|
|
'http://blog.ianbicking.org/feed/'),
|
|
Blog('Amir Salihefendic', 'http://amix.dk/',
|
|
'http://feeds.feedburner.com/amixdk'),
|
|
Blog('Christopher Lenz', 'http://www.cmlenz.net/blog/',
|
|
'http://www.cmlenz.net/blog/atom.xml'),
|
|
Blog('Frederick Lundh', 'http://online.effbot.org/',
|
|
'http://online.effbot.org/rss.xml')
|
|
]
|
|
# okay. got tired here. if someone feels that he is missing, drop me
|
|
# a line ;-)
|
|
for blog in blogs:
|
|
session.add(blog)
|
|
session.commit()
|
|
print 'Initialized database, now run manage-plnt.py sync to get the posts'
|
|
|
|
|
|
def action_sync():
|
|
"""Sync the blogs in the planet. Call this from a cronjob."""
|
|
from plnt.sync import sync
|
|
make_app().bind_to_context()
|
|
sync()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
script.run()
|