- Fix url escape for webdav files

- Add support for bind address, url base
This commit is contained in:
Mukhtar Akere
2025-04-17 15:26:58 +01:00
parent b5b6f0ff73
commit 80615e06d1
10 changed files with 115 additions and 50 deletions

View File

@@ -8,9 +8,11 @@ import (
"github.com/sirrobot01/decypharr/pkg/qbit"
"github.com/sirrobot01/decypharr/pkg/server"
"github.com/sirrobot01/decypharr/pkg/service"
"github.com/sirrobot01/decypharr/pkg/version"
"github.com/sirrobot01/decypharr/pkg/web"
"github.com/sirrobot01/decypharr/pkg/webdav"
"github.com/sirrobot01/decypharr/pkg/worker"
"net/http"
"os"
"runtime/debug"
"strconv"
@@ -111,7 +113,7 @@ func startServices(ctx context.Context) error {
+-------------------------------------------------------+
| |
| ╔╦╗╔═╗╔═╗╦ ╦╔═╗╦ ╦╔═╗╦═╗╦═╗ |
| ║║║╣ ║ └┬┘╠═╝╠═╣╠═╣╠╦╝╠╦╝ |
| ║║║╣ ║ └┬┘╠═╝╠═╣╠═╣╠╦╝╠╦╝ (%s) |
| ═╩╝╚═╝╚═╝ ┴ ╩ ╩ ╩╩ ╩╩╚═╩╚═ |
| |
+-------------------------------------------------------+
@@ -119,11 +121,10 @@ func startServices(ctx context.Context) error {
+-------------------------------------------------------+
`
_log.Info().Msgf(asciiArt, cfg.LogLevel)
fmt.Printf(asciiArt, version.GetInfo(), cfg.LogLevel)
svc := service.New()
_qbit := qbit.New()
srv := server.New()
_webdav := webdav.New()
ui := web.New(_qbit).Routes()
@@ -131,9 +132,12 @@ func startServices(ctx context.Context) error {
qbitRoutes := _qbit.Routes()
// Register routes
srv.Mount("/", ui)
srv.Mount("/api/v2", qbitRoutes)
srv.Mount("/webdav", webdavRoutes)
handlers := map[string]http.Handler{
"/": ui,
"/api/v2": qbitRoutes,
"/webdav": webdavRoutes,
}
srv := server.New(handlers)
safeGo := func(f func() error) {
wg.Add(1)

View File

@@ -26,7 +26,7 @@ func main() {
config.SetConfigPath(configPath)
cfg := config.Get()
// Get port from environment variable or use default
qbitPort := getEnvOrDefault("QBIT_PORT", cfg.QBitTorrent.Port)
port := getEnvOrDefault("QBIT_PORT", cfg.Port)
webdavPath := ""
for _, debrid := range cfg.Debrids {
if debrid.UseWebDav {
@@ -47,18 +47,18 @@ func main() {
defer cancel()
// Check qBittorrent API
if checkQbitAPI(ctx, qbitPort) {
if checkQbitAPI(ctx, port) {
status.QbitAPI = true
}
// Check Web UI
if checkWebUI(ctx, qbitPort) {
if checkWebUI(ctx, port) {
status.WebUI = true
}
// Check WebDAV if enabled
if webdavPath != "" {
if checkWebDAV(ctx, qbitPort, webdavPath) {
if checkWebDAV(ctx, port, webdavPath) {
status.WebDAVService = true
}
} else {