Switching the hook 'get_media_manager' to a more "directed" tuple-hook

By switching this to a tuple that includes the media type in the key
itself, this requires iteration and execution of functions that
"check" that they are the right type.

This commit sponsored by Greg Grossmeier.  Thanks buddy! :)
This commit is contained in:
Christopher Allan Webber 2013-07-12 17:04:08 -05:00
parent 91bee92e8e
commit 6403bc928b
8 changed files with 9 additions and 38 deletions

View File

@ -203,7 +203,7 @@ class MediaEntryMixin(GenerateSlugMixin):
Raises FileTypeNotSupported in case no such manager is enabled Raises FileTypeNotSupported in case no such manager is enabled
""" """
manager = hook_handle('get_media_manager', self.media_type) manager = hook_handle(('media_manager', self.media_type))
if manager: if manager:
return manager(self) return manager(self)

View File

@ -69,7 +69,7 @@ def sniff_media(media):
media_type = hook_handle('sniff_handler', media_file, media=media) media_type = hook_handle('sniff_handler', media_file, media=media)
if media_type: if media_type:
_log.info('{0} accepts the file'.format(media_type)) _log.info('{0} accepts the file'.format(media_type))
return media_type, hook_handle('get_media_managers', media_type) return media_type, hook_handle(('media_manager', media_type))
else: else:
_log.debug('{0} did not accept the file'.format(media_type)) _log.debug('{0} did not accept the file'.format(media_type))

View File

@ -34,11 +34,6 @@ class ASCIIMediaManager(MediaManagerBase):
default_thumb = "images/media_thumbs/ascii.jpg" default_thumb = "images/media_thumbs/ascii.jpg"
def get_media_manager(media_type):
if media_type == MEDIA_TYPE:
return ASCIIMediaManager
def get_media_type_and_manager(ext): def get_media_type_and_manager(ext):
if ext in ACCEPTED_EXTENSIONS: if ext in ACCEPTED_EXTENSIONS:
return MEDIA_TYPE, ASCIIMediaManager return MEDIA_TYPE, ASCIIMediaManager
@ -47,6 +42,6 @@ def get_media_type_and_manager(ext):
hooks = { hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'get_media_type_and_manager': get_media_type_and_manager, 'get_media_type_and_manager': get_media_type_and_manager,
('media_manager', MEDIA_TYPE): lambda: ASCIIMediaManager,
'sniff_handler': sniff_handler, 'sniff_handler': sniff_handler,
'get_media_manager': get_media_manager,
} }

View File

@ -33,11 +33,6 @@ class AudioMediaManager(MediaManagerBase):
display_template = "mediagoblin/media_displays/audio.html" display_template = "mediagoblin/media_displays/audio.html"
def get_media_manager(media_type):
if media_type == MEDIA_TYPE:
return AudioMediaManager
def get_media_type_and_manager(ext): def get_media_type_and_manager(ext):
if ext in ACCEPTED_EXTENSIONS: if ext in ACCEPTED_EXTENSIONS:
return MEDIA_TYPE, AudioMediaManager return MEDIA_TYPE, AudioMediaManager
@ -46,5 +41,5 @@ hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'get_media_type_and_manager': get_media_type_and_manager, 'get_media_type_and_manager': get_media_type_and_manager,
'sniff_handler': sniff_handler, 'sniff_handler': sniff_handler,
'get_media_manager': get_media_manager, ('media_manager', MEDIA_TYPE): lambda: AudioMediaManager,
} }

View File

@ -59,11 +59,6 @@ class ImageMediaManager(MediaManagerBase):
return None return None
def get_media_manager(media_type):
if media_type == MEDIA_TYPE:
return ImageMediaManager
def get_media_type_and_manager(ext): def get_media_type_and_manager(ext):
if ext in ACCEPTED_EXTENSIONS: if ext in ACCEPTED_EXTENSIONS:
return MEDIA_TYPE, ImageMediaManager return MEDIA_TYPE, ImageMediaManager
@ -73,5 +68,5 @@ hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'get_media_type_and_manager': get_media_type_and_manager, 'get_media_type_and_manager': get_media_type_and_manager,
'sniff_handler': sniff_handler, 'sniff_handler': sniff_handler,
'get_media_manager': get_media_manager, ('media_manager', MEDIA_TYPE): lambda: ImageMediaManager,
} }

View File

@ -34,18 +34,14 @@ class PDFMediaManager(MediaManagerBase):
default_thumb = "images/media_thumbs/pdf.jpg" default_thumb = "images/media_thumbs/pdf.jpg"
def get_media_manager(media_type):
if media_type == MEDIA_TYPE:
return PDFMediaManager
def get_media_type_and_manager(ext): def get_media_type_and_manager(ext):
if ext in ACCEPTED_EXTENSIONS: if ext in ACCEPTED_EXTENSIONS:
return MEDIA_TYPE, PDFMediaManager return MEDIA_TYPE, PDFMediaManager
hooks = { hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'get_media_type_and_manager': get_media_type_and_manager, 'get_media_type_and_manager': get_media_type_and_manager,
'sniff_handler': sniff_handler, 'sniff_handler': sniff_handler,
'get_media_manager': get_media_manager, ('media_manager', MEDIA_TYPE): lambda: PDFMediaManager,
} }

View File

@ -34,11 +34,6 @@ class STLMediaManager(MediaManagerBase):
default_thumb = "images/media_thumbs/video.jpg" default_thumb = "images/media_thumbs/video.jpg"
def get_media_manager(media_type):
if media_type == MEDIA_TYPE:
return STLMediaManager
def get_media_type_and_manager(ext): def get_media_type_and_manager(ext):
if ext in ACCEPTED_EXTENSIONS: if ext in ACCEPTED_EXTENSIONS:
return MEDIA_TYPE, STLMediaManager return MEDIA_TYPE, STLMediaManager
@ -47,5 +42,5 @@ hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'get_media_type_and_manager': get_media_type_and_manager, 'get_media_type_and_manager': get_media_type_and_manager,
'sniff_handler': sniff_handler, 'sniff_handler': sniff_handler,
'get_media_manager': get_media_manager, ('media_manager', MEDIA_TYPE): lambda: STLMediaManager,
} }

View File

@ -39,11 +39,6 @@ class VideoMediaManager(MediaManagerBase):
default_webm_type = 'video/webm; codecs="vp8, vorbis"' default_webm_type = 'video/webm; codecs="vp8, vorbis"'
def get_media_manager(media_type):
if media_type == MEDIA_TYPE:
return VideoMediaManager
def get_media_type_and_manager(ext): def get_media_type_and_manager(ext):
if ext in ACCEPTED_EXTENSIONS: if ext in ACCEPTED_EXTENSIONS:
return MEDIA_TYPE, VideoMediaManager return MEDIA_TYPE, VideoMediaManager
@ -52,5 +47,5 @@ hooks = {
'setup': setup_plugin, 'setup': setup_plugin,
'get_media_type_and_manager': get_media_type_and_manager, 'get_media_type_and_manager': get_media_type_and_manager,
'sniff_handler': sniff_handler, 'sniff_handler': sniff_handler,
'get_media_manager': get_media_manager, ('media_manager', MEDIA_TYPE): lambda: VideoMediaManager,
} }