""" Mime helper library. """ import mimetypes, gtk mimetypes.init() class MimeType: _defaultIcon = "gnome-mime-text" def __init__(self, filename): self.filename = filename self.type, self.encoding = mimetypes.guess_type(self.filename) self.icon = self._getIcon() def _getIcon(self): if not self.type: return self._defaultIcon has = gtk.icon_theme_get_default().has_icon full = self.type.replace('/', '-') base = self.type.split('/')[0] if has("gnome-mime-" + full): return "gnome-mime-" +full elif has("gnome-mime-" + base): return "gnome-mime-" +base else: return self._defaultIcon def __repr__(self): return '' % (self.filename, self.type, self.icon) directory = MimeType('') directory.type = 'directory' directory.icon = 'gnome-fs-directory' volume = MimeType('') volume.type = 'volume' volume.icon = 'gtk-harddisk' if __name__ == '__main__': import fsutil, sys if len(sys.argv) > 1: path = sys.argv[1] else: path = '.' files = fsutil.paths_to_list(path) for file in files: m = MimeType(file) print repr(m)