Ejemplo n.º 1
0
    def on_event(self, event: PreferencesUpdateEvent, extension: Extension):
        """Update extension preferences when the user saves new ones from the UI.

        Args:
            event (PreferencesUpdateEvent): The PreferencesUpdateEvent triggered when the user clicks SAVE in the Extension preference's page (docs.ulauncher.io/en/latest/extensions/events.html?highlight=PreferencesUpdateEvent#preferencesupdateevent).
            extension (Extension): The extension.
        """
        if event.id in NUMERIC_PREFERENCES:
            if float(event.new_value).is_integer():
                # Don't do the typical try/catch cause 4.2 (not "4.2") would be truncated to 4 and silently change the value to 4, instead of throwing an error.
                extension.preferences[event.id] = int(event.new_value)
                logger.info(
                    f"{event.id} changed from {event.old_value} to {event.new_value}."
                )
            else:
                extension.preferences[event.id] = int(event.old_value)
                logger.info(
                    f"{event.id} failed to change. Reverting to previous value of {event.old_value}. Given: {event.new_value}. Try an integer."
                )
        elif event.id == "reset_to_default" and event.new_value == "Reset":
            for id_, val in DEFAULT_PREFERENCES.items():
                old_val = extension.preferences[id_]
                extension.preferences[id_] = val
                logger.info(
                    f"{id_} was reset from {old_val} to its default value of {val}."
                )
        else:
            extension.preferences[event.id] = event.new_value
            logger.info(
                f"{event.id} changed from {event.old_value} to {event.new_value}."
            )
Ejemplo n.º 2
0
    def on_event(self, event: PreferencesEvent, extension: Extension):
        """Set this session's preferences to those of the last session, except for the reset toggle, which is reset to the default.

        Args:
            event (PreferencesEvent): The PreferencesEvent triggered once when the application starts (docs.ulauncher.io/en/latest/extensions/events.html?highlight=PreferencesEvent#preferencesevent).
            extension (Extension): The Extension.
        """
        extension.preferences.update(event.preferences)
        extension.preferences["reset_to_default"] = "-"
Ejemplo n.º 3
0
    def get_extensions(self):
        extensions = []
        for dir in os.listdir(EXT_DIR):
            manifest_dir = EXT_DIR + dir + "/manifest.json"

            with open(manifest_dir) as manifest:
                data = json.load(manifest)
                for pref in data["preferences"]:
                    if pref["type"] == "keyword" and pref["id"] != "exlist":
                        extensions.append(
                            Extension(pref["name"], data["description"],
                                      pref["default_value"] + " ",
                                      EXT_DIR + dir + "/" + data["icon"]))
        return extensions
Ejemplo n.º 4
0
    def on_event(self, event: KeywordQueryEvent,
                 extension: Extension) -> RenderResultListAction:
        """Handle the user calling the extension via ulauncher.

        Args:
            event (KeywordQueryEvent): The KeywordQueryEvent generated by the user (docs.ulauncher.io/en/latest/extensions/events.html?highlight=KeywordQueryEvent).
            extension (Extension): The Extension.

        Returns:
            RenderResultListAction: Results ready to be displayed by ulauncher.
        """

        word = event.get_argument()
        logger.info(f"word={word}")

        if not RAE.need_online_check(word):
            logger.info(f"{word=} doesn't need online check.")
            items = extension.handle_offline(word)
        else:
            logger.info(f"{word=} needs online check.")
            items = extension.handle_online(word)

        return RenderResultListAction(items)
Ejemplo n.º 5
0
                packages[pkg_num].append(description)
                packages[pkg_num].append(repo)
                pkg_num += 1
                i += 2

            del packages[len(packages) - 1]

            items = []
            for q in packages:
                if always_use_helper == true or q[2] == "aur":
                    items.append(
                        ExtensionResultItem(
                            icon='icon.png',
                            name=q[0] + "  (" + q[2] + ")",
                            description=q[1],
                            on_enter=CopyToClipboardAction("yay -S " + q[0])))
                else:
                    items.append(
                        ExtensionResultItem(
                            icon='icon.png',
                            name=q[0] + "  (" + q[2] + ")",
                            description=q[1],
                            on_enter=CopyToClipboardAction("sudo pacman -S " +
                                                           q[0])))

            return RenderResultListAction(items)


if __name__ == '__main__':
    Extension().run()
Ejemplo n.º 6
0
    def on_event(self, event: KeywordQueryEvent, extension: Extension):
        """ Handles the event """
        query = event.get_argument() or ""

        return extension.get_projects(query)
Ejemplo n.º 7
0
 def extension(self):
     return Extension()
Ejemplo n.º 8
0
 def extension(self, client):
     return Extension()