Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-03 20:42:17 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-03 20:42:17 (GMT)
commitcc2b8884c02f70f7a086e3c9aeee0abd42c97135 (patch)
treebded521727e19d6b23449c5cccd28c6ce8469ff1 /sugar
parentddecddcb420a9f87b203d0f228c6e41b65af5e53 (diff)
Be smarter when choosing one mime type from the targets offered.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/util.py25
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]
+