Example #1
0
    def get_mimetype(self, uri):
        g_file = self._get_g_file(uri)

        info = g_file.query_info(FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)
        content_type = info.get_attribute_as_string(
                            FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)
        return content_type_get_mime_type(content_type)
Example #2
0
def get_file_mime():
    file = "./data/2946117692.01.180"
    gio_file = gio.File(file)

    # gio_file_info = gio_file.query_info(",".join([
    # gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
    # gio.FILE_ATTRIBUTE_STANDARD_TYPE,
    # gio.FILE_ATTRIBUTE_STANDARD_NAME,
    # gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
    # gio.FILE_ATTRIBUTE_STANDARD_SIZE,
    # gio.FILE_ATTRIBUTE_STANDARD_ICON,
    # gio.FILE_ATTRIBUTE_TIME_MODIFIED,
    # gio.FILE_ATTRIBUTE_TIME_CHANGED,]))

    gio_file_info = gio_file.query_info(",".join([
        gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
    ]))

    info_attr = gio_file_info.get_attribute_as_string(
        gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)

    type_description = gio.content_type_get_description(info_attr)
    #print type_description

    mime_tye = gio.content_type_get_mime_type(info_attr)
    print mime_tye
	def __init__(self, uri):
		_gtk.Builder.__init__(self)
		gfile = _gio.File(uri=uri)
		self.path = gfile.get_path()
		self.add_from_file(_os.path.join(_os.environ["FILEMANAGER_PATH"], "file-properties-dialog.builder"))
		self.dialog = self.get_object("FilePropertiesDialog")
		self.name_entry = self.get_object("name_entry")
		self.type_info = self.get_object("type_info")
		self.size_notebook = self.get_object("size_notebook")
		self.size_info = self.get_object("size_info")
		self.find_size = self.get_object("find_size")
		self.location_info = self.get_object("location_info")
		self.accessed_info = self.get_object("accessed_info")
		self.modified_info = self.get_object("modified_info")
		self.exec_column = self.get_object("Exec")
		self.permissions_model = self.get_object("PermissionsModel")
		self.read_renderer = self.get_object("read-renderer")
		self.write_renderer = self.get_object("write-renderer")
		self.exec_renderer = self.get_object("exec-renderer")
		self.name_entry.connect("activate", self.change_filename)
		self.name_entry.set_text(_os.path.basename(self.path))
		fileinfo = gfile.query_info("standard::content-type")
		mime_type = _gio.content_type_get_mime_type(fileinfo.get_content_type())
		description = _gnomevfs.mime_get_description(mime_type)
		if description:
			self.type_info.set_text("%s (%s)" % (description, mime_type))
		else:
			self.type_info.set_text("%s" % mime_type)
		if _os.path.isdir(self.path):
			self.exec_column.set_title("Acceso")
			self.size_notebook.set_current_page(1)
			self.find_size.connect("clicked", self.find_dir_size, self.path)
		else:
			self.size_notebook.set_current_page(0)
			self.size_info.set_text(_file_size.get_file_size(self.path))
		if gfile.get_uri_scheme() != "file":
			self.location_info.set_text(uri)
		else:
			self.location_info.set_text(self.path)
		stat = _os.stat(self.path)
		self.accessed_info.set_text(_time.ctime(stat.st_atime))
		self.modified_info.set_text(_time.ctime(stat.st_mtime))
		permissions = oct(_stat.S_IMODE(stat.st_mode))[1:]
		owner = bin(int(permissions[0]))[2:]
		while len(owner) != 3:
			owner = "0"+owner
		self.permissions_model.append(["Propietario", bool(int(owner[0])), bool(int(owner[1])), bool(int(owner[2]))])
		group = bin(int(permissions[1]))[2:]
		while len(group) != 3:
			group = "0"+group
		self.permissions_model.append(["Grupo", bool(int(group[0])), bool(int(group[1])), bool(int(group[2]))])
		others = bin(int(permissions[2]))[2:]
		while len(others) != 3:
			others = "0"+others
		self.permissions_model.append(["Otros", bool(int(others[0])), bool(int(others[1])), bool(int(others[2]))])
		self.read_renderer.connect("toggled", self.permissions_toggled)
		self.write_renderer.connect("toggled", self.permissions_toggled)
		self.exec_renderer.connect("toggled", self.permissions_toggled)
Example #4
0
    def install(self, uri_string):       
        """
        Install handler
        
        Basically copys the handlers into the user's handler dir
        and L{deskbar.Watcher} does the rest.
        
        The following MIME types are supported:
            * application/x-bzip-compressed-tar
            * application/x-compressed-tar
            * application/x-tar
            * application/zip
            * text/x-python
        
        @param uri_string: URI of file that should be installed
        @type uri_string: str
        """
        do_cleanup = False
        self._reset()
        
        if (uri_string.startswith("file://")):
            gfile = gio.File(uri=uri_string)
            handlers_path = join(deskbar.USER_HANDLERS_DIR[0], gfile.get_basename())
            self.local_path = gfile.get_path()
            if handlers_path == join(deskbar.USER_HANDLERS_DIR[0], self.local_path):
                # Source and destination are the same, nothing to do here
                return
            
            fileinfo = gfile.query_info ("standard::content-type")
            mime_type = gio.content_type_get_mime_type (fileinfo.get_content_type())
            if (mime_type == "text/x-python"):
                shutil.copy(self.local_path, deskbar.USER_HANDLERS_DIR[0])
                return
        else:
            gfile = gio.File(path=uri_string)
            handlers_path = join(deskbar.USER_HANDLERS_DIR[0], gfile.get_basename())
            urllib.urlretrieve(uri_string, handlers_path)
            self.local_path = handlers_path
            do_cleanup = True

        decompresser = Decompresser(self, self.local_path, deskbar.USER_HANDLERS_DIR[0])
        decompresser.start()
        # Wait for Decompresser to finish
        decompresser.join()
        
        if self.error != None:
            raise self.error[0](self.error[1])
        
        if do_cleanup:
            self.cleanup()
Example #5
0
class Decompresser(threading.Thread):
    
    def __init__(self, parent, path, dest_dir):
        """
        @type parent: Thread that called Decompresser
        @param path: path pointing to archive
        @param dest_dir: Folder to extract contents to        
        """
        threading.Thread.__init__(self)
        
        self.parent = parent
        self.path = path
        self.dest_dir = dest_dir
    
    def run(self):
        """
        Extract the contents of the file to C{self.dest_dir}
        @raise FormatNotSupportedError:
        """
        gfile = gio.File(path=self.path)
        try:
            fileinfo = gfile.query_info("standard::content-type")
        except Exception, e:
            self.parent_error = (Exception, e.message)
            return
        
        mime_type = gio.content_type_get_mime_type (fileinfo.get_content_type())
        if mime_type == 'application/x-bzip-compressed-tar':
            extracter = Bzip2Extracter
        elif mime_type == 'application/x-compressed-tar':
            extracter = GzipExtracter
        elif mime_type == 'application/zip':
            extracter = ZipExtracter
        elif mime_type == 'application/x-tar':
            extracter = TarExtracter
        elif mime_type == 'text/x-python':
            self.parent.delete_original = False
            return
        else:
            self.parent.error = (FormatNotSupportedError, mime_type+" is not supported")
            return
        
        extracter.extract(self.path, self.dest_dir)
Example #6
0
def get_file_icon_from_name(name):
	gfile = _gio.File(name)
	fileinfo = gfile.query_info("standard::content-type")
	mime_type = _gio.content_type_get_mime_type(fileinfo.get_content_type())
	icon = _gio.content_type_get_icon(mime_type).get_names()
	index = 0
	icon_name = None
	pixbuf = None
	if "image-x-generic" in icon:
		try:
			pixbuf = _gtk.gdk.pixbuf_new_from_file_at_size(name, 64, 64)
		except:
			pixbuf = None
	if not pixbuf:
		while not (icon[index] in icons):
			index += 1
			if index >= len(icon):
				icon_name = "unknown"
				break
		if not icon_name:
			icon_name = icon[index]
	return pixbuf, icon_name
Example #7
0
def get_file_icon_from_name(name):
    gfile = _gio.File(name)
    fileinfo = gfile.query_info("standard::content-type")
    mime_type = _gio.content_type_get_mime_type(fileinfo.get_content_type())
    icon = _gio.content_type_get_icon(mime_type).get_names()
    index = 0
    icon_name = None
    pixbuf = None
    if "image-x-generic" in icon:
        try:
            pixbuf = _gtk.gdk.pixbuf_new_from_file_at_size(name, 64, 64)
        except:
            pixbuf = None
    if not pixbuf:
        while not (icon[index] in icons):
            index += 1
            if index >= len(icon):
                icon_name = "unknown"
                break
        if not icon_name:
            icon_name = icon[index]
    return pixbuf, icon_name
Example #8
0
def get_file_mime():
    file = "./data/2946117692.01.180"
    gio_file = gio.File(file)

    # gio_file_info = gio_file.query_info(",".join([
    # gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
    # gio.FILE_ATTRIBUTE_STANDARD_TYPE,
    # gio.FILE_ATTRIBUTE_STANDARD_NAME,
    # gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
    # gio.FILE_ATTRIBUTE_STANDARD_SIZE,
    # gio.FILE_ATTRIBUTE_STANDARD_ICON,
    # gio.FILE_ATTRIBUTE_TIME_MODIFIED,
    # gio.FILE_ATTRIBUTE_TIME_CHANGED,]))

    gio_file_info = gio_file.query_info(",".join([
    gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,]))

    info_attr = gio_file_info.get_attribute_as_string(gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)

    type_description = gio.content_type_get_description(info_attr)
    #print type_description

    mime_tye = gio.content_type_get_mime_type(info_attr)
    print mime_tye
Example #9
0
 def __init__(self, type):
     self._type = type
     self.mimeType = gio.content_type_get_mime_type(type)
     self.description = gio.content_type_get_description(type)
Example #10
0
	def __init__(self, uri):
		_gtk.Builder.__init__(self)
		gfile = _gio.File(uri=uri)
		self.path = gfile.get_path()
		self.add_from_file(_os.path.join(_os.environ["FILEMANAGER_PATH"], "file-properties-dialog.builder"))
		self.dialog = self.get_object("FilePropertiesDialog")
		self.dialog.set_title(_("Properties"))
		self.get_object("name_label").set_text(_("Name: "))
		self.name_entry = self.get_object("name_entry")
		self.get_object("type_label").set_text(_("Type: "))
		self.type_info = self.get_object("type_info")
		self.get_object("size_label").set_text(_("Size: "))
		self.size_notebook = self.get_object("size_notebook")
		self.size_info = self.get_object("size_info")
		self.find_size = self.get_object("find_size")
		self.find_size.set_label(_("Calculate"))
		self.get_object("location_label").set_text(_("Location: "))
		self.location_info = self.get_object("location_info")
		self.get_object("accessed_label").set_text(_("Accessed: "))
		self.accessed_info = self.get_object("accessed_info")
		self.get_object("modified_label").set_text(_("Modified: "))
		self.modified_info = self.get_object("modified_info")
		self.get_object("permissions_label").set_text(_("Permissions: "))
		self.get_object("Read").set_title(_("Read"))
		self.get_object("Write").set_title(_("Write"))
		self.exec_column = self.get_object("Exec")
		self.exec_column.set_title(_("Execution"))
		self.permissions_model = self.get_object("PermissionsModel")
		self.read_renderer = self.get_object("read-renderer")
		self.write_renderer = self.get_object("write-renderer")
		self.exec_renderer = self.get_object("exec-renderer")
		self.name_entry.connect("activate", self.change_filename)
		self.name_entry.set_text(_os.path.basename(self.path))
		fileinfo = gfile.query_info("standard::content-type")
		mime_type = _gio.content_type_get_mime_type(fileinfo.get_content_type())
		description = _gnomevfs.mime_get_description(mime_type)
		if description:
			self.type_info.set_text("%s (%s)" % (description, mime_type))
		else:
			self.type_info.set_text("%s" % mime_type)
		if _os.path.isdir(self.path):
			self.exec_column.set_title(_("Access"))
			self.size_notebook.set_current_page(1)
			self.find_size.connect("clicked", self.find_dir_size, self.path)
		else:
			self.size_notebook.set_current_page(0)
			self.size_info.set_text(_file_size.get_file_size(self.path))
		if gfile.get_uri_scheme() != "file":
			self.location_info.set_text(uri)
		else:
			self.location_info.set_text(self.path)
		stat = _os.stat(self.path)
		self.accessed_info.set_text(_time.ctime(stat.st_atime))
		self.modified_info.set_text(_time.ctime(stat.st_mtime))
		permissions = oct(_stat.S_IMODE(stat.st_mode))[1:]
		owner = bin(int(permissions[0]))[2:]
		while len(owner) != 3:
			owner = "0"+owner
		self.permissions_model.append([_("Owner"), bool(int(owner[0])), bool(int(owner[1])), bool(int(owner[2]))])
		group = bin(int(permissions[1]))[2:]
		while len(group) != 3:
			group = "0"+group
		self.permissions_model.append([_("Group"), bool(int(group[0])), bool(int(group[1])), bool(int(group[2]))])
		others = bin(int(permissions[2]))[2:]
		while len(others) != 3:
			others = "0"+others
		self.permissions_model.append([_("Others"), bool(int(others[0])), bool(int(others[1])), bool(int(others[2]))])
		self.read_renderer.connect("toggled", self.permissions_toggled)
		self.write_renderer.connect("toggled", self.permissions_toggled)
		self.exec_renderer.connect("toggled", self.permissions_toggled)