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-appender",
|
||||
"tracing-subscriber",
|
||||
"urlencoding",
|
||||
"webbrowser 1.0.4",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
@@ -64,6 +64,7 @@ http = "1.0"
|
||||
webbrowser = "1.0"
|
||||
|
||||
indicatif = "0.17.11"
|
||||
urlencoding = "2"
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
winapi = { version = "0.3", features = ["wincred"] }
|
||||
|
||||
@@ -47,7 +47,8 @@ pub fn handle_deeplink(recipe_name: &str) -> Result<()> {
|
||||
style("✓").green().bold(),
|
||||
recipe.title
|
||||
);
|
||||
println!("goose://recipe?config={}", deeplink);
|
||||
let url_safe = urlencoding::encode(&deeplink);
|
||||
println!("goose://recipe?config={}", url_safe);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -254,9 +254,10 @@ app.on('open-url', async (_event, url) => {
|
||||
if (parsedUrl.hostname === 'bot' || parsedUrl.hostname === 'recipe') {
|
||||
let recipeConfig = null;
|
||||
const configParam = parsedUrl.searchParams.get('config');
|
||||
const base64 = decodeURIComponent(configParam || '');
|
||||
if (configParam) {
|
||||
try {
|
||||
recipeConfig = JSON.parse(Buffer.from(configParam, 'base64').toString('utf-8'));
|
||||
recipeConfig = JSON.parse(Buffer.from(base64, 'base64').toString('utf-8'));
|
||||
} catch (e) {
|
||||
console.error('Failed to parse bot config:', e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user