diff options
author | Will Kahn-Greene <willg@bluesock.org> | 2012-03-12 21:17:08 -0400 |
---|---|---|
committer | Will Kahn-Greene <willg@bluesock.org> | 2012-05-13 00:00:08 -0400 |
commit | 29b6f91740e68d804612ff68295020f6cfa16071 (patch) | |
tree | 8812f0d9e1fd3894c097c56e5778c21e22d1fa61 /mediagoblin/plugins/sampleplugin/main.py | |
parent | f10c3bb8e5fc44b6d580261a05f1e4b4639e0949 (diff) | |
download | mediagoblin-29b6f91740e68d804612ff68295020f6cfa16071.tar.lz mediagoblin-29b6f91740e68d804612ff68295020f6cfa16071.tar.xz mediagoblin-29b6f91740e68d804612ff68295020f6cfa16071.zip |
401. Plugin infrastructure
* implements installing, loading and setup for plugins
* codifies configuration
* has a sample plugin
* docs
* tests
Diffstat (limited to 'mediagoblin/plugins/sampleplugin/main.py')
-rw-r--r-- | mediagoblin/plugins/sampleplugin/main.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/mediagoblin/plugins/sampleplugin/main.py b/mediagoblin/plugins/sampleplugin/main.py new file mode 100644 index 00000000..67cc70a5 --- /dev/null +++ b/mediagoblin/plugins/sampleplugin/main.py @@ -0,0 +1,42 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import logging +from mediagoblin.tools.pluginapi import Plugin, get_config + + +_log = logging.getLogger(__name__) + + +class SamplePlugin(Plugin): + """ + This is a sample plugin class. It automatically registers itself + with mediagoblin when this module is imported. + + The setup_plugin method prints configuration for this plugin if + it exists. + """ + def __init__(self): + self._setup_plugin_called = 0 + + def setup_plugin(self): + _log.info('Sample plugin set up!') + config = get_config('mediagoblin.plugins.sampleplugin') + if config: + _log.info('%r' % config) + else: + _log.info('There is no configuration set.') + self._setup_plugin_called += 1 |