documenting the new media_type plugins and available hooks
authorRodney Ewing <ewing.rj@gmail.com>
Fri, 12 Jul 2013 18:57:16 +0000 (11:57 -0700)
committerRodney Ewing <ewing.rj@gmail.com>
Fri, 12 Jul 2013 21:35:43 +0000 (14:35 -0700)
docs/source/index.rst
docs/source/pluginwriter/media_type_hooks.rst [new file with mode: 0644]
docs/source/siteadmin/media-types.rst

index c8a3f040ccb56955daef5a13e07e350f22cc3727..de6c9c0d7795362ac5ba957602264fad0b741ef7 100644 (file)
@@ -74,6 +74,7 @@ This guide covers writing new GNU MediaGoblin plugins.
    pluginwriter/database
    pluginwriter/api
    pluginwriter/tests
+   pluginwriter/media_type_hooks
 
 
 Part 4: Developer's Zone
diff --git a/docs/source/pluginwriter/media_type_hooks.rst b/docs/source/pluginwriter/media_type_hooks.rst
new file mode 100644 (file)
index 0000000..0dfbbaf
--- /dev/null
@@ -0,0 +1,27 @@
+==================
+ Media Type hooks
+==================
+
+This documents the hooks that are currently available for ``media_type`` plugins.
+
+What hooks are available?
+=========================
+
+'sniff_handler'
+---------------
+
+This hook is used by ``sniff_media`` in ``mediagoblin.media_types.__init__``.
+Your media type should return its ``sniff_media`` method when this hook is
+called.
+
+.. Note::
+    Your ``sniff_media`` method should return either the ``media_type`` or
+    ``None``.
+
+'get_media_type_and_manager'
+----------------------------
+
+This hook is used by ``get_media_type_and_manager`` in
+``mediagoblin.media_types.__init__``. When this hook is called, your media type
+plugin should check if it can handle the given extension. If so, your media
+type plugin should return the media type and media manager.
index 1527bc70528616e8cd2ff4123b149a012134b799..3e8a94e9e5ade4156ed9c8188330dd009e067986 100644 (file)
@@ -18,16 +18,18 @@ Media Types
 ====================
 
 In the future, there will be all sorts of media types you can enable,
-but in the meanwhile there are three additional media types: video, audio
-and ascii art.
+but in the meanwhile there are five additional media types: video, audio,
+ascii art, STL/3d models, PDF and Document.
 
 First, you should probably read ":doc:`configuration`" to make sure
 you know how to modify the mediagoblin config file.
 
-
 Enabling Media Types
 ====================
 
+.. note::
+    Media types are now plugins
+
 Media types are enabled in your mediagoblin configuration file, typically it is
 created by copying ``mediagoblin.ini`` to ``mediagoblin_local.ini`` and then
 applying your changes to ``mediagoblin_local.ini``. If you don't already have a
@@ -37,11 +39,13 @@ Most media types have additional dependencies that you will have to install.
 You will find descriptions on how to satisfy the requirements of each media type
 on this page.
 
-To enable a media type, edit the ``media_types`` list in your
-``mediagoblin_local.ini``. For example, if your system supported image and
-video media types, then the list would look like this::
+To enable a media type, add the the media type under the ``[plugins]`` section
+in you ``mediagoblin_local.ini``. For example, if your system supported image
+and video media types, then it would look like this::
 
-    media_types = mediagoblin.media_types.image, mediagoblin.media_types.video
+    [plugins]
+    [[mediagoblin.media_types.image]]
+    [[mediagoblin.media_types.video]]
 
 Note that after enabling new media types, you must run dbupdate like so::
 
@@ -83,8 +87,8 @@ good/bad/ugly).  On Debianoid systems
         gstreamer0.10-ffmpeg
 
 
-Add ``mediagoblin.media_types.video`` to the ``media_types`` list in your
-``mediagoblin_local.ini`` and restart MediaGoblin.
+Add ``[[mediagoblin.media_types.video]]`` under the ``[plugins]`` section in
+your ``mediagoblin_local.ini`` and restart MediaGoblin.
 
 Run
 
@@ -133,7 +137,7 @@ Then install ``scikits.audiolab`` for the spectrograms::
 
     ./bin/pip install scikits.audiolab
 
-Add ``mediagoblin.media_types.audio`` to the ``media_types`` list in your
+Add ``[[mediagoblin.media_types.audio]]`` under the ``[plugins]`` section in your
 ``mediagoblin_local.ini`` and restart MediaGoblin.
 
 Run
@@ -158,13 +162,8 @@ library, which is necessary for creating thumbnails of ascii art
 
 
 Next, modify (and possibly copy over from ``mediagoblin.ini``) your
-``mediagoblin_local.ini``.  In the ``[mediagoblin]`` section, add
-``mediagoblin.media_types.ascii`` to the ``media_types`` list.
-
-For example, if your system supported image and ascii art media types, then
-the list would look like this::
-
-    media_types = mediagoblin.media_types.image, mediagoblin.media_types.ascii
+``mediagoblin_local.ini``.  In the ``[plugins]`` section, add
+``[[mediagoblin.media_types.ascii]]``.
 
 Run
 
@@ -184,7 +183,7 @@ your execution path.  This feature has been tested with Blender 2.63.
 It may work on some earlier versions, but that is not guaranteed (and
 is surely not to work prior to Blender 2.5X).
 
-Add ``mediagoblin.media_types.stl`` to the ``media_types`` list in your
+Add ``[[mediagoblin.media_types.stl]]`` under the ``[plugins]`` section in your
 ``mediagoblin_local.ini`` and restart MediaGoblin. 
 
 Run
@@ -233,7 +232,7 @@ This feature has been tested on Fedora with:
 
 It may work on some earlier versions, but that is not guaranteed.
 
-Add ``mediagoblin.media_types.pdf`` to the ``media_types`` list in your
+Add ``[[mediagoblin.media_types.pdf]]`` under the ``[plugins]`` section in your
 ``mediagoblin_local.ini`` and restart MediaGoblin. 
 
 Run