mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-18 22:54:24 +01:00
fix: added url encoding and decoding for goose recipe url (#2845)
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -3514,6 +3514,7 @@ dependencies = [
|
|||||||
"tracing",
|
"tracing",
|
||||||
"tracing-appender",
|
"tracing-appender",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
|
"urlencoding",
|
||||||
"webbrowser 1.0.4",
|
"webbrowser 1.0.4",
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ http = "1.0"
|
|||||||
webbrowser = "1.0"
|
webbrowser = "1.0"
|
||||||
|
|
||||||
indicatif = "0.17.11"
|
indicatif = "0.17.11"
|
||||||
|
urlencoding = "2"
|
||||||
|
|
||||||
[target.'cfg(target_os = "windows")'.dependencies]
|
[target.'cfg(target_os = "windows")'.dependencies]
|
||||||
winapi = { version = "0.3", features = ["wincred"] }
|
winapi = { version = "0.3", features = ["wincred"] }
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ pub fn handle_deeplink(recipe_name: &str) -> Result<()> {
|
|||||||
style("✓").green().bold(),
|
style("✓").green().bold(),
|
||||||
recipe.title
|
recipe.title
|
||||||
);
|
);
|
||||||
println!("goose://recipe?config={}", deeplink);
|
let url_safe = urlencoding::encode(&deeplink);
|
||||||
|
println!("goose://recipe?config={}", url_safe);
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -254,9 +254,10 @@ app.on('open-url', async (_event, url) => {
|
|||||||
if (parsedUrl.hostname === 'bot' || parsedUrl.hostname === 'recipe') {
|
if (parsedUrl.hostname === 'bot' || parsedUrl.hostname === 'recipe') {
|
||||||
let recipeConfig = null;
|
let recipeConfig = null;
|
||||||
const configParam = parsedUrl.searchParams.get('config');
|
const configParam = parsedUrl.searchParams.get('config');
|
||||||
|
const base64 = decodeURIComponent(configParam || '');
|
||||||
if (configParam) {
|
if (configParam) {
|
||||||
try {
|
try {
|
||||||
recipeConfig = JSON.parse(Buffer.from(configParam, 'base64').toString('utf-8'));
|
recipeConfig = JSON.parse(Buffer.from(base64, 'base64').toString('utf-8'));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Failed to parse bot config:', e);
|
console.error('Failed to parse bot config:', e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user