From 02762c812ccd692d61328bc76029b9cc01ed8bb4 Mon Sep 17 00:00:00 2001
From: davy wybiral <davy.wybiral@gmail.com>
Date: Thu, 8 Aug 2019 05:34:53 -0500
Subject: [PATCH] added better feed url defaults (#18)

---
 pkg/app/app.go | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/pkg/app/app.go b/pkg/app/app.go
index 7199c84..1f6b769 100644
--- a/pkg/app/app.go
+++ b/pkg/app/app.go
@@ -9,6 +9,7 @@ import (
 	"net"
 	"net/http"
 	"net/url"
+	"os"
 	"path"
 	"strconv"
 	"time"
@@ -94,6 +95,7 @@ func (a *App) Run() error {
 			if err != nil {
 				return err
 			}
+			a.Tor.OnionKey = key
 		}
 		onion, err := key.Onion()
 		if err != nil {
@@ -233,10 +235,21 @@ func (a *App) rssHandler(w http.ResponseWriter, r *http.Request) {
 	var externalURL string
 	if len(cfg.ExternalURL) > 0 {
 		externalURL = cfg.ExternalURL
+	} else if a.Tor != nil {
+		onion, err := a.Tor.OnionKey.Onion()
+		if err != nil {
+			return
+		}
+		externalURL = fmt.Sprintf("http://%s.onion", onion.ServiceID)
 	} else {
-		host := a.Config.Server.Host
-		port := a.Config.Server.Port
-		externalURL = fmt.Sprintf("http://%s:%d", host, port)
+		hostname, err := os.Hostname()
+		if err != nil {
+			host := a.Config.Server.Host
+			port := a.Config.Server.Port
+			externalURL = fmt.Sprintf("http://%s:%d", host, port)
+		} else {
+			externalURL = fmt.Sprintf("http://%s", hostname)
+		}
 	}
 	for _, v := range a.Library.Playlist() {
 		u, err := url.Parse(externalURL)