This file is indexed.

/usr/share/nautilus-python/extensions/emblems.py is in nautilus-emblems 0.3.1-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import os

from gi.repository import Gtk, GdkPixbuf, Nautilus, GObject
try:
    from gi._glib import GError
except ImportError:
    from gi.repository.GLib import GError  # flake8: noqa

__version__ = 0.3


class Emblems(GObject.GObject, Nautilus.PropertyPageProvider):
    def __init__(self, clear_icon_name='gtk-remove'):
        self.clear_icon_name = clear_icon_name

    def get_property_pages(self, files):
        self.files = files
        actual_emblems = self.get_actual_emblems(files)
        property_page = self.create_property_page()
        self.fill_emblems(actual_emblems)
        self.connect_signals()
        return property_page

    def create_property_page(self):
        property_label = Gtk.Label('Emblems')
        property_label.show()

        # Save the icon, name & full-name
        self.list_store = Gtk.ListStore(GdkPixbuf.Pixbuf, str, str)

        self.icon_view = Gtk.IconView()
        self.icon_view.set_model(self.list_store)
        self.icon_view.set_pixbuf_column(0)
        self.icon_view.set_text_column(1)
        #self.icon_view.set_selection_mode(Gtk.SelectionMode.MULTIPLE)
        self.icon_view.show()

        scroll = Gtk.ScrolledWindow()
        scroll.add(self.icon_view)
        scroll.show()

        return Nautilus.PropertyPage(name="NautilusPython::emblems",
                                     label=property_label,
                                     page=scroll),

    def connect_signals(self):
        self.icon_view.connect('selection-changed', self.on_selection_changed)

    def on_selection_changed(self, widget):
        clear_emblems = lambda partial_cmd: os.system(
            '%s unset metadata::emblems' % partial_cmd
        )

        for file in self.files:
            partial_cmd = 'gvfs-set-attribute "%s" -t' % file.get_uri()

            emblem = ''.join(
                widget.get_model()[item][2]
                for item in widget.get_selected_items()
            )
            if emblem == '':
                file.add_emblem(emblem)
            elif emblem == self.clear_icon_name:
                clear_emblems(partial_cmd)
                widget.unselect_all()
            else:
                clear_emblems(partial_cmd)
                # Add new emblems
                os.system(
                    '%s stringv metadata::emblems %s' % (partial_cmd, emblem)
                )
                # The add_emblem is called too to see the emblem just in the
                # moment, if not, a nautilus refresh will be needed
                # file.add_emblem(emblem)

    def get_actual_emblems(self, files):
        return []

    @staticmethod
    def get_icon_name(name):
        """Returns the name human readable.

        >>> Emblems.get_icon_name('emblem-test-name-emblem')
        Test name

        """
        name = name.replace('-emblem', '')
        name = name.replace('emblem-', '')
        name = name.replace('-', ' ')
        return name[0].upper() + name[1:]

    def fill_emblems(self, actual_emblems):
        """Fill the list of icons with all of them with a name like *emblem*.
        Add a first icon too that will be the one that is going to clear the
        emblems.

        """
        theme = Gtk.IconTheme.get_default()

        self.list_store.append([
            theme.load_icon(self.clear_icon_name, 48, 0),
            'Clear emblems',
            self.clear_icon_name
        ])

        icons = theme.list_icons(None)
        for icon in icons:
            if 'emblem' in icon:
                try:
                    pixbuf = theme.load_icon(icon, 48, 0)
                except GError:
                    # This exception is to avoid bug #4 at github:
                    # https://github.com/agonzalezro/gnome3-emblems/issues/4
                    pass
                else:
                    self.list_store.append(
                        [pixbuf, self.get_icon_name(icon), icon]
                    )