diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-07-03 20:42:17 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-07-03 20:42:17 (GMT) |
commit | cc2b8884c02f70f7a086e3c9aeee0abd42c97135 (patch) | |
tree | bded521727e19d6b23449c5cccd28c6ce8469ff1 /sugar/util.py | |
parent | ddecddcb420a9f87b203d0f228c6e41b65af5e53 (diff) |
Be smarter when choosing one mime type from the targets offered.
Diffstat (limited to 'sugar/util.py')
-rw-r--r-- | sugar/util.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sugar/util.py b/sugar/util.py index 7b895be..497eb53 100644 --- a/sugar/util.py +++ b/sugar/util.py @@ -22,6 +22,8 @@ import random import binascii import string import os +import logging + from ConfigParser import ConfigParser from ConfigParser import NoOptionError @@ -125,3 +127,26 @@ def set_proc_title(title): return True except: return False + +def choose_most_significant_mime_type(mime_types): + logging.debug('Choosing between %r.' % mime_types) + if not mime_types: + return '' + + if 'text/uri-list' in mime_types: + return 'text/uri-list' + + for mime_category in ['image/', 'text/', 'application/']: + for mime_type in mime_types: + if mime_type.startswith(mime_category) and \ + not mime_type.split('/')[1].startswith('_'): + mime_type = mime_type.split(';')[0] + logging.debug('Choosed %r!' % mime_type) + return mime_type + + if 'STRING' in mime_types: + return 'text/plain' + + logging.debug('Returning first: %r.' % mime_types[0]) + return mime_types[0] + |