node build fixed

This commit is contained in:
ra_ma
2025-09-20 14:08:38 +01:00
parent c6ebbe069d
commit 3d298fa434
1516 changed files with 535727 additions and 2 deletions

View File

@@ -0,0 +1,90 @@
package qbittorrent
import (
"errors"
"runtime"
"seanime/internal/util"
"time"
)
func (c *Client) getExecutableName() string {
switch runtime.GOOS {
case "windows":
return "qbittorrent.exe"
default:
return "qbittorrent"
}
}
func (c *Client) getExecutablePath() string {
if len(c.Path) > 0 {
return c.Path
}
switch runtime.GOOS {
case "windows":
return "C:/Program Files/qBittorrent/qbittorrent.exe"
case "linux":
return "/usr/bin/qbittorrent" // Default path for Client on most Linux distributions
case "darwin":
return "/Applications/qbittorrent.app/Contents/MacOS/qbittorrent" // Default path for Client on macOS
default:
return "C:/Program Files/qBittorrent/qbittorrent.exe"
}
}
func (c *Client) Start() error {
// If the path is empty, do not check if qBittorrent is running
if c.Path == "" {
return nil
}
name := c.getExecutableName()
if util.ProgramIsRunning(name) {
return nil
}
exe := c.getExecutablePath()
cmd := util.NewCmd(exe)
err := cmd.Start()
if err != nil {
return errors.New("failed to start qBittorrent")
}
time.Sleep(1 * time.Second)
return nil
}
func (c *Client) CheckStart() bool {
if c == nil {
return false
}
// If the path is empty, assume it's running
if c.Path == "" {
return true
}
_, err := c.Application.GetAppVersion()
if err == nil {
return true
}
err = c.Start()
timeout := time.After(30 * time.Second)
ticker := time.Tick(1 * time.Second)
for {
select {
case <-ticker:
_, err = c.Application.GetAppVersion()
if err == nil {
return true
}
case <-timeout:
return false
}
}
}