aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/mixin.py
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2013-07-12 16:24:36 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2013-07-12 16:24:36 -0500
commit5305fee13b9f0a2b8f5ebe61f12c09c9cada3cca (patch)
tree7ffa78df3fbac665d32238d151fe76d07f4d995e /mediagoblin/db/mixin.py
parentac08a9acaffbafdcb99506495a192b1eaa508544 (diff)
parent4259ad5bf1680896090290e7327b49a053a8447b (diff)
downloadmediagoblin-5305fee13b9f0a2b8f5ebe61f12c09c9cada3cca.tar.lz
mediagoblin-5305fee13b9f0a2b8f5ebe61f12c09c9cada3cca.tar.xz
mediagoblin-5305fee13b9f0a2b8f5ebe61f12c09c9cada3cca.zip
Merge branch 'rodney757-media_plugins'
Conflicts: mediagoblin.ini mediagoblin/tests/test_mgoblin_app.ini
Diffstat (limited to 'mediagoblin/db/mixin.py')
-rw-r--r--mediagoblin/db/mixin.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py
index 1b32d838..ee8525c2 100644
--- a/mediagoblin/db/mixin.py
+++ b/mediagoblin/db/mixin.py
@@ -29,15 +29,14 @@ real objects.
import uuid
import re
-import datetime
-
from datetime import datetime
from werkzeug.utils import cached_property
from mediagoblin import mg_globals
-from mediagoblin.media_types import get_media_managers, FileTypeNotSupported
+from mediagoblin.media_types import FileTypeNotSupported
from mediagoblin.tools import common, licenses
+from mediagoblin.tools.pluginapi import hook_handle
from mediagoblin.tools.text import cleaned_markdown_conversion
from mediagoblin.tools.url import slugify
@@ -204,14 +203,14 @@ class MediaEntryMixin(GenerateSlugMixin):
Raises FileTypeNotSupported in case no such manager is enabled
"""
- # TODO, we should be able to make this a simple lookup rather
- # than iterating through all media managers.
- for media_type, manager in get_media_managers():
- if media_type == self.media_type:
- return manager(self)
+ manager = hook_handle('get_media_manager', self.media_type)
+ if manager:
+ return manager(self)
+
# Not found? Then raise an error
raise FileTypeNotSupported(
- "MediaManager not in enabled types. Check media_types in config?")
+ "MediaManager not in enabled types. Check media_type plugins are"
+ " enabled in config?")
def get_fail_exception(self):
"""