aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/plugins/sampleplugin/main.py
diff options
context:
space:
mode:
authorWill Kahn-Greene <willg@bluesock.org>2012-03-12 21:17:08 -0400
committerWill Kahn-Greene <willg@bluesock.org>2012-05-13 00:00:08 -0400
commit29b6f91740e68d804612ff68295020f6cfa16071 (patch)
tree8812f0d9e1fd3894c097c56e5778c21e22d1fa61 /mediagoblin/plugins/sampleplugin/main.py
parentf10c3bb8e5fc44b6d580261a05f1e4b4639e0949 (diff)
downloadmediagoblin-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.py42
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