The gopher integration was not setting host or port, causing all links to break.

This will derive the host from the configured host by stripping the protocol from the URI
pull/426/head
funkyduck 4 years ago
parent 53ea85dc86
commit 6c1ab93717
  1. 10
      gopher.go

@ -14,6 +14,7 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"io" "io"
"regexp"
"strings" "strings"
"github.com/prologic/go-gopher" "github.com/prologic/go-gopher"
@ -28,6 +29,11 @@ func initGopher(apper Apper) {
gopher.ListenAndServe(fmt.Sprintf(":%d", apper.App().Config().Server.GopherPort), nil) gopher.ListenAndServe(fmt.Sprintf(":%d", apper.App().Config().Server.GopherPort), nil)
} }
// Utility function to strip the URL from the hostname provided by app.cfg.App.Host
func stripHostProtocol(app *App) string {
return string(regexp.MustCompile("^.*://").ReplaceAll([]byte(app.cfg.App.Host), []byte("")))
}
func handleGopher(app *App, w gopher.ResponseWriter, r *gopher.Request) error { func handleGopher(app *App, w gopher.ResponseWriter, r *gopher.Request) error {
parts := strings.Split(r.Selector, "/") parts := strings.Split(r.Selector, "/")
if app.cfg.App.SingleUser { if app.cfg.App.SingleUser {
@ -51,6 +57,8 @@ func handleGopher(app *App, w gopher.ResponseWriter, r *gopher.Request) error {
for _, c := range *colls { for _, c := range *colls {
w.WriteItem(&gopher.Item{ w.WriteItem(&gopher.Item{
Host: stripHostProtocol(app),
Port: app.cfg.Server.GopherPort,
Type: gopher.DIRECTORY, Type: gopher.DIRECTORY,
Description: c.DisplayTitle(), Description: c.DisplayTitle(),
Selector: "/" + c.Alias + "/", Selector: "/" + c.Alias + "/",
@ -99,6 +107,8 @@ func handleGopherCollection(app *App, w gopher.ResponseWriter, r *gopher.Request
for _, p := range *posts { for _, p := range *posts {
w.WriteItem(&gopher.Item{ w.WriteItem(&gopher.Item{
Port: app.cfg.Server.GopherPort,
Host: stripHostProtocol(app),
Type: gopher.FILE, Type: gopher.FILE,
Description: p.CreatedDate() + " - " + p.DisplayTitle(), Description: p.CreatedDate() + " - " + p.DisplayTitle(),
Selector: baseSel + p.Slug.String, Selector: baseSel + p.Slug.String,

Loading…
Cancel
Save