shithub: hell

Download patch

ref: 00a84c4e2dc9760c97b93bb873e6d894f62d8d27
parent: 8e4a1df8f038603be96312a15bef6e8aa23833ed
author: penny <penny@limitedideas.org>
date: Tue Sep 30 15:24:13 EDT 2025

image preview command is set in preferences

--- a/config.go
+++ b/config.go
@@ -15,6 +15,7 @@
 	Apidelay float32 `json:"apidelay"`
 	Save_Location string `json:"save_location"`
 	Browser string `json:"browser"`
+	ImageViewer string `json:"image_viewer"`
 }
 
 type account struct {
@@ -49,6 +50,10 @@
 		prefs.Browser = defaultprefs.Browser
 		fixed = true
 	}
+	if prefs.ImageViewer == "" {
+		prefs.ImageViewer = defaultprefs.ImageViewer
+		fixed = true
+	}
 	return prefs, fixed
 }
 
@@ -57,6 +62,7 @@
 		Apidelay: 2,
 		Save_Location: "~/Downloads",
 		Browser: "xdg-open '%s'",
+		ImageViewer: "xdg-open %s",
 	}
 	return *prefs
 }
--- a/filehandler.go
+++ b/filehandler.go
@@ -8,6 +8,7 @@
 	"os"
 	"os/exec"
 	"path"
+	"strings"
 
 	"codeberg.org/penny64/hellclient-go-mastodon"
 	"github.com/google/shlex"
@@ -21,23 +22,12 @@
 		return
 	}
 	cmd := exec.Command(cmdargv[0], cmdargv[1:]...)
+	cmd.Stdout = os.Stdout
+	cmd.Stderr = os.Stdout
 	cmd.Run()
 	return
 }
 func (hc *Hellclient) previewPostImages(target *mastodon.Status, commandstring string) (err error) {
-
-	var command string
-
-	args, err := shlex.Split(commandstring)
-
-	if len(args) < 0 {
-		//No command
-		return
-	}
-
-	command = args[0]
-	args = args[1:]
-
 	_, pathnames, err := downloadPostImages(target)
 
 	if len(pathnames) == 0 {
@@ -44,17 +34,9 @@
 		//We tolerate failing to download some items but if we have none then error out
 		return
 	}
-	for file := range pathnames {
-		defer os.Remove(pathnames[file])
-	}
-
-	args = append(args, pathnames...)
-
-	cmd := exec.Command(command, args...)
-	cmd.Stdout = os.Stdout
 	//Let go of the lock while we wait for return
 	hc.unlock()
-	err = cmd.Run()
+	openItemInOS(commandstring, strings.Join(pathnames, " "))
 	hc.lock()
 	return
 
--- a/main.go
+++ b/main.go
@@ -266,7 +266,7 @@
 				openItemInOS(hc.preferences.Browser, hc.urlMap[index][urlindex-1])
 				return
 			case "preview":
-				err := hc.previewPostImages(postItem, "open -W -a \"Quick Look\"")
+				err := hc.previewPostImages(postItem, hc.preferences.ImageViewer)
 				if err != nil {
 					fmt.Printf("Image preview failed: %v\n", err)
 				}
--