Skip to content

Commit 24af6f6

Browse files
authored
Merge branch 'plugin_api_v2' into WantChane-patch-1
2 parents b9fb71e + 785bd86 commit 24af6f6

9 files changed

+369
-290
lines changed

ci/src/test-python.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,36 @@ def get_all_python_plugins(manifest: dict) -> list:
8181
return [plugin for plugin in manifest if plugin["Language"].lower() == "python"]
8282

8383
def run_plugin(plugin_name: str, plugin_path: str, execute_path: str) -> bool:
84-
"""Run plugin and check output. Returns true if test successfull else false"""
84+
"""Run plugin and check output. Returns true if test successful else false"""
8585
os.chdir(plugin_path)
8686
default_settings = init_settings(plugin_name, plugin_path)
8787
args = json.dumps(
8888
{"method": "query", "parameters": [""], "Settings": default_settings}
8989
)
90-
full_args = ["python", "-S", Path(plugin_path, execute_path), args]
90+
9191
# Older Flox used environmental variable to locate Images directory
9292
os.environ["PYTHONPATH"] = str(USER_PATH.joinpath("PythonEmbeddable"))
93+
94+
# Compose the sys.path setup and runpy logic as Flow Launcher does in
95+
# https://github.com/Flow-Launcher/Flow.Launcher/blob/dfe96160ed44684810bcdf853f86fda4305122d6/Flow.Launcher.Core/Plugin/PythonPlugin.cs#L69-L81
96+
sys_path_setup = (
97+
f"import sys; "
98+
f"sys.path.append(r'{plugin_path}'); "
99+
f"sys.path.append(r'{plugin_path}\\lib'); "
100+
f"sys.path.append(r'{plugin_path}\\lib\\win32\\lib'); "
101+
f"sys.path.append(r'{plugin_path}\\lib\\win32'); "
102+
f"sys.path.append(r'{plugin_path}\\plugin'); "
103+
f"import runpy; "
104+
f"runpy.run_path(r'{Path(plugin_path, execute_path)}', None, '__main__')"
105+
)
106+
107+
full_args = [
108+
"python",
109+
"-S",
110+
"-c",
111+
sys_path_setup,
112+
args
113+
]
93114
print_section("Input", full_args)
94115
p = Popen(full_args, text=True, stdout=PIPE, stderr=PIPE)
95116
stdout, stderr = p.communicate()
@@ -104,7 +125,7 @@ def run_plugin(plugin_name: str, plugin_path: str, execute_path: str) -> bool:
104125
return True
105126
else:
106127
print_section(f"{plugin['Name']} test FAILED!", "")
107-
print(f'Plugin returned a non-zero exit code: {max(exit_code, 1)}')
128+
print(f'Plugin has returned a non-zero exit code: {max(exit_code, 1)}')
108129
if stderr != "":
109130
print_section('Trace', stderr)
110131
if json_msg:

etags.json

Lines changed: 265 additions & 263 deletions
Large diffs are not rendered by default.

plugins.json

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -828,13 +828,13 @@
828828
"Name": "LinkOpener",
829829
"Description": "Allows you to open URLs using keywords set in the settings",
830830
"Author": "Exarilo",
831-
"Version": "1.3.0",
831+
"Version": "1.3.1",
832832
"Language": "csharp",
833833
"Website": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener",
834-
"UrlDownload": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener/releases/download/v1.3.0/Flow.Launcher.Plugin.LinkOpener.zip",
834+
"UrlDownload": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener/releases/download/v1.3.1/Flow.Launcher.Plugin.LinkOpener.zip",
835835
"UrlSourceCode": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener",
836836
"IcoPath": "https://cdn.jsdelivr.net/gh/Exarilo/Flow.Launcher.Plugin.LinkOpener@main/Images/app.png",
837-
"LatestReleaseDate": "2025-06-08T19:37:21Z",
837+
"LatestReleaseDate": "2025-07-23T19:43:06Z",
838838
"DateAdded": "2024-08-08T09:19:45Z"
839839
},
840840
{
@@ -1114,6 +1114,20 @@
11141114
"DateAdded": "2023-05-12T12:05:40Z",
11151115
"LatestReleaseDate": "2024-03-05T17:48:48Z"
11161116
},
1117+
{
1118+
"ID": "2F2C2193E9A54437AA69B846121976D8",
1119+
"Name": "rip",
1120+
"Description": "a plugin for ripping videos like CDs",
1121+
"Author": "iivinn",
1122+
"Version": "1.0.1",
1123+
"Language": "csharp",
1124+
"Website": "https://github.com/iivinn/rip",
1125+
"UrlDownload": "https://github.com/iivinn/rip/releases/download/v1.0.1/Flow.Launcher.Plugin.Rip.zip",
1126+
"UrlSourceCode": "https://github.com/iivinn/rip/tree/main",
1127+
"IcoPath": "https://cdn.jsdelivr.net/gh/iivinn/rip@main/Flow.Launcher.Plugin.Rip/assets/icon.png",
1128+
"LatestReleaseDate": "2025-08-01T21:46:28Z",
1129+
"DateAdded": "2025-08-01T02:25:46Z"
1130+
},
11171131
{
11181132
"ID": "5314722CF6AA4EBF86666C693412A276",
11191133
"Name": "Steam Account Switcher",
@@ -2063,6 +2077,20 @@
20632077
"DateAdded": "2023-08-31T22:46:40Z",
20642078
"LatestReleaseDate": "2025-05-21T19:02:15Z"
20652079
},
2080+
{
2081+
"ID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
2082+
"Name": "Kubernetes Context Switcher",
2083+
"Description": "Switch between Kubernetes contexts quickly using Flow Launcher. View current context, list all available contexts, and switch between them with ease.",
2084+
"Author": "Robin Hermann",
2085+
"Version": "1.0.1",
2086+
"Language": "csharp",
2087+
"Website": "https://github.com/r-studio/Flow.Launcher.Plugin.KubernetesContextSwitcher",
2088+
"UrlDownload": "https://github.com/R-Studio/Flow.Launcher.Plugin.KubernetesContextSwitcher/releases/download/v1.0.1/Flow.Launcher.Plugin.KubernetesContextSwitcher.zip",
2089+
"UrlSourceCode": "https://github.com/R-Studio/Flow.Launcher.Plugin.KubernetesContextSwitcher/tree/main",
2090+
"IcoPath": "https://cdn.jsdelivr.net/gh/R-Studio/Flow.Launcher.Plugin.KubernetesContextSwitcher@main/images/k8s.png",
2091+
"DateAdded": "2025-07-16T12:53:34Z",
2092+
"LatestReleaseDate": "2025-07-09T20:54:16Z"
2093+
},
20662094
{
20672095
"ID": "d13e69b5-048a-4dce-a950-cbdd5f61f3be",
20682096
"Name": "Window Manager",
@@ -2312,13 +2340,13 @@
23122340
"Name": "MultiTranslate",
23132341
"Description": "A Flow-Launcher plugin that translates text using multiple translation services.",
23142342
"Author": "Lu-Jiejie",
2315-
"Version": "0.2.0",
2343+
"Version": "0.2.1",
23162344
"Language": "typescript",
23172345
"Website": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate",
2318-
"UrlDownload": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate/releases/download/v0.2.0/MultiTranslate-0.2.0.zip",
2346+
"UrlDownload": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate/releases/download/v0.2.1/MultiTranslate-0.2.1.zip",
23192347
"UrlSourceCode": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate/tree/main",
23202348
"IcoPath": "https://cdn.jsdelivr.net/gh/lu-jiejie/flow-launcher-multi-translate@main/assets/icon.png",
2321-
"LatestReleaseDate": "2025-07-12T18:48:43Z",
2349+
"LatestReleaseDate": "2025-07-25T17:23:18Z",
23222350
"DateAdded": "2025-06-26T06:35:56Z"
23232351
},
23242352
{
@@ -3151,13 +3179,13 @@
31513179
"Name": "Uninstaller+",
31523180
"Description": "Easily uninstall desktop and Microsoft store programs based on Bulk-Crap-Uninstaller",
31533181
"Author": "Jack251970",
3154-
"Version": "1.2.1",
3182+
"Version": "1.2.2",
31553183
"Language": "csharp",
31563184
"Website": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus",
3157-
"UrlDownload": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/releases/download/v1.2.1/Uninstaller%2B-1.2.1.zip",
3185+
"UrlDownload": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/releases/download/v1.2.2/Uninstaller%2B-1.2.2.zip",
31583186
"UrlSourceCode": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/tree/master",
31593187
"IcoPath": "https://cdn.jsdelivr.net/gh/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/src/Flow.Launcher.Plugin.UninstallerPlus/Images/icon.png",
3160-
"LatestReleaseDate": "2025-06-10T10:05:46Z",
3188+
"LatestReleaseDate": "2025-07-28T07:18:20Z",
31613189
"DateAdded": "2025-06-05T03:49:32Z"
31623190
},
31633191
{
@@ -3366,13 +3394,13 @@
33663394
"Name": "Roblox Docs",
33673395
"Description": "Search Roblox API documentation using Flow Launcher.",
33683396
"Author": "Censor",
3369-
"Version": "1.0.1",
3397+
"Version": "1.1.0",
33703398
"Language": "csharp",
33713399
"Website": "https://github.com/Cens-r/flow-roblox-docs",
33723400
"IcoPath": "https://cdn.jsdelivr.net/gh/Cens-r/flow-roblox-docs/Flow.Launcher.Plugin.RobloxDocs/plugin-icon.png",
3373-
"UrlDownload": "https://github.com/Cens-r/flow-roblox-docs/releases/download/v1.0.1/Flow.Launcher.Plugin.RobloxDocs-1.0.1.zip",
3401+
"UrlDownload": "https://github.com/Cens-r/flow-roblox-docs/releases/download/v1.1.0/Flow.Launcher.Plugin.RobloxDocs-1.1.0.zip",
33743402
"UrlSourceCode": "https://github.com/Cens-r/flow-roblox-docs/tree/master",
3375-
"LatestReleaseDate": "2025-06-04T09:25:34Z",
3403+
"LatestReleaseDate": "2025-07-16T03:53:05Z",
33763404
"DateAdded": "2025-06-06T01:55:32Z"
33773405
},
33783406
{
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"ID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
3+
"Name": "Kubernetes Context Switcher",
4+
"Description": "Switch between Kubernetes contexts quickly using Flow Launcher. View current context, list all available contexts, and switch between them with ease.",
5+
"Author": "Robin Hermann",
6+
"Version": "1.0.1",
7+
"Language": "csharp",
8+
"Website": "https://github.com/r-studio/Flow.Launcher.Plugin.KubernetesContextSwitcher",
9+
"UrlDownload": "https://github.com/R-Studio/Flow.Launcher.Plugin.KubernetesContextSwitcher/releases/download/v1.0.1/Flow.Launcher.Plugin.KubernetesContextSwitcher.zip",
10+
"UrlSourceCode": "https://github.com/R-Studio/Flow.Launcher.Plugin.KubernetesContextSwitcher/tree/main",
11+
"IcoPath": "https://cdn.jsdelivr.net/gh/R-Studio/Flow.Launcher.Plugin.KubernetesContextSwitcher@main/images/k8s.png",
12+
"DateAdded": "2025-07-16T12:53:34Z",
13+
"LatestReleaseDate": "2025-07-09T20:54:16Z"
14+
}

plugins/LinkOpener-4905edc2-7feb-4036-bfae-b06efc60c879.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"Name": "LinkOpener",
44
"Description": "Allows you to open URLs using keywords set in the settings",
55
"Author": "Exarilo",
6-
"Version": "1.3.0",
6+
"Version": "1.3.1",
77
"Language": "csharp",
88
"Website": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener",
9-
"UrlDownload": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener/releases/download/v1.3.0/Flow.Launcher.Plugin.LinkOpener.zip",
9+
"UrlDownload": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener/releases/download/v1.3.1/Flow.Launcher.Plugin.LinkOpener.zip",
1010
"UrlSourceCode": "https://github.com/Exarilo/Flow.Launcher.Plugin.LinkOpener",
1111
"IcoPath": "https://cdn.jsdelivr.net/gh/Exarilo/Flow.Launcher.Plugin.LinkOpener@main/Images/app.png",
12-
"LatestReleaseDate": "2025-06-08T19:37:21Z",
12+
"LatestReleaseDate": "2025-07-23T19:43:06Z",
1313
"DateAdded": "2024-08-08T09:19:45Z"
1414
}

plugins/MultiTranslate-82df0b26-6ed3-1c0d-460f-99789fd5d0c4.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"Name": "MultiTranslate",
44
"Description": "A Flow-Launcher plugin that translates text using multiple translation services.",
55
"Author": "Lu-Jiejie",
6-
"Version": "0.2.0",
6+
"Version": "0.2.1",
77
"Language": "typescript",
88
"Website": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate",
9-
"UrlDownload": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate/releases/download/v0.2.0/MultiTranslate-0.2.0.zip",
9+
"UrlDownload": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate/releases/download/v0.2.1/MultiTranslate-0.2.1.zip",
1010
"UrlSourceCode": "https://github.com/Lu-Jiejie/flow-launcher-multi-translate/tree/main",
1111
"IcoPath": "https://cdn.jsdelivr.net/gh/lu-jiejie/flow-launcher-multi-translate@main/assets/icon.png",
12-
"LatestReleaseDate": "2025-07-12T18:48:43Z",
12+
"LatestReleaseDate": "2025-07-25T17:23:18Z",
1313
"DateAdded": "2025-06-26T06:35:56Z"
1414
}

plugins/Roblox Docs-968c2551-5b24-4bab-9a6c-5f8cff6ca0ef.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"Name": "Roblox Docs",
44
"Description": "Search Roblox API documentation using Flow Launcher.",
55
"Author": "Censor",
6-
"Version": "1.0.1",
6+
"Version": "1.1.0",
77
"Language": "csharp",
88
"Website": "https://github.com/Cens-r/flow-roblox-docs",
99
"IcoPath": "https://cdn.jsdelivr.net/gh/Cens-r/flow-roblox-docs/Flow.Launcher.Plugin.RobloxDocs/plugin-icon.png",
10-
"UrlDownload": "https://github.com/Cens-r/flow-roblox-docs/releases/download/v1.0.1/Flow.Launcher.Plugin.RobloxDocs-1.0.1.zip",
10+
"UrlDownload": "https://github.com/Cens-r/flow-roblox-docs/releases/download/v1.1.0/Flow.Launcher.Plugin.RobloxDocs-1.1.0.zip",
1111
"UrlSourceCode": "https://github.com/Cens-r/flow-roblox-docs/tree/master",
12-
"LatestReleaseDate": "2025-06-04T09:25:34Z",
12+
"LatestReleaseDate": "2025-07-16T03:53:05Z",
1313
"DateAdded": "2025-06-06T01:55:32Z"
1414
}

plugins/Uninstaller+-dd2fd217-e332-4fbd-9012-4940e08d41a7.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"Name": "Uninstaller+",
44
"Description": "Easily uninstall desktop and Microsoft store programs based on Bulk-Crap-Uninstaller",
55
"Author": "Jack251970",
6-
"Version": "1.2.1",
6+
"Version": "1.2.2",
77
"Language": "csharp",
88
"Website": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus",
9-
"UrlDownload": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/releases/download/v1.2.1/Uninstaller%2B-1.2.1.zip",
9+
"UrlDownload": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/releases/download/v1.2.2/Uninstaller%2B-1.2.2.zip",
1010
"UrlSourceCode": "https://github.com/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/tree/master",
1111
"IcoPath": "https://cdn.jsdelivr.net/gh/Jack251970/Flow.Launcher.Plugin.UninstallerPlus/src/Flow.Launcher.Plugin.UninstallerPlus/Images/icon.png",
12-
"LatestReleaseDate": "2025-06-10T10:05:46Z",
12+
"LatestReleaseDate": "2025-07-28T07:18:20Z",
1313
"DateAdded": "2025-06-05T03:49:32Z"
1414
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"ID": "2F2C2193E9A54437AA69B846121976D8",
3+
"Name": "rip",
4+
"Description": "a plugin for ripping videos like CDs",
5+
"Author": "iivinn",
6+
"Version": "1.0.1",
7+
"Language": "csharp",
8+
"Website": "https://github.com/iivinn/rip",
9+
"UrlDownload": "https://github.com/iivinn/rip/releases/download/v1.0.1/Flow.Launcher.Plugin.Rip.zip",
10+
"UrlSourceCode": "https://github.com/iivinn/rip/tree/main",
11+
"IcoPath": "https://cdn.jsdelivr.net/gh/iivinn/rip@main/Flow.Launcher.Plugin.Rip/assets/icon.png",
12+
"LatestReleaseDate": "2025-08-01T21:46:28Z",
13+
"DateAdded": "2025-08-01T02:25:46Z"
14+
}

0 commit comments

Comments
 (0)