aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2013-03-19 12:42:28 +0100
committerElrond <elrond+mediagoblin.org@samba-tng.org>2013-04-17 12:09:30 +0200
commit95dab599daa6f3ed33eec5678ff6a653f9f9a836 (patch)
treeef12e4caeac4438d42c51c615b61429d9d8ee846
parent6d37733a3f7e4180a3f8d97c8b3bb0ba57b85848 (diff)
downloadmediagoblin-95dab599daa6f3ed33eec5678ff6a653f9f9a836.tar.lz
mediagoblin-95dab599daa6f3ed33eec5678ff6a653f9f9a836.tar.xz
mediagoblin-95dab599daa6f3ed33eec5678ff6a653f9f9a836.zip
Add sniff_handler method to mediamanagers.
The MediaManagerBase gets a fallback "return False" one. The Compat-Manager checks in the dict and calls that one or returns False.
-rw-r--r--mediagoblin/media_types/__init__.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py
index 91e3443b..20e1918e 100644
--- a/mediagoblin/media_types/__init__.py
+++ b/mediagoblin/media_types/__init__.py
@@ -38,6 +38,10 @@ class MediaManagerBase(object):
# Please override in actual media managers
media_fetch_order = None
+ @staticmethod
+ def sniff_handler(*args, **kwargs):
+ return False
+
def __init__(self, entry):
self.entry = entry
@@ -68,6 +72,12 @@ class CompatMediaManager(object):
def media_fetch_order(self):
return self.mm_dict.get('media_fetch_order')
+ def sniff_handler(self, *args, **kwargs):
+ func = self.mm_dict.get("sniff_handler", None)
+ if func is not None:
+ return func(*args, **kwargs)
+ return False
+
def __getattr__(self, i):
return self.mm_dict[i]
@@ -90,8 +100,7 @@ def sniff_media(media):
for media_type, manager in get_media_managers():
_log.info('Sniffing {0}'.format(media_type))
- if 'sniff_handler' in manager and \
- manager.sniff_handler(media_file, media=media):
+ if manager.sniff_handler(media_file, media=media):
_log.info('{0} accepts the file'.format(media_type))
return media_type, manager
else: