diff --git a/gopher/gopher.go b/gopher/gopher.go index 41cca9a..82bedea 100644 --- a/gopher/gopher.go +++ b/gopher/gopher.go @@ -95,7 +95,7 @@ func Visit(addr, openhttp string) (View, error) { return View{}, fmt.Errorf("") } - } + } text, err := Retrieve(u) if err != nil { diff --git a/gopher/url.go b/gopher/url.go index cb80f2a..c94f020 100644 --- a/gopher/url.go +++ b/gopher/url.go @@ -3,6 +3,7 @@ package gopher import ( "errors" "regexp" + "strings" ) //------------------------------------------------\\ @@ -76,6 +77,10 @@ func MakeUrl(u string) (Url, error) { out.Gophertype = "0" } + if out.Gophertype == "7" && strings.Contains(out.Resource, "\t") { + out.Gophertype = "1" + } + switch out.Gophertype { case "1", "0", "h", "7": out.IsBinary = false diff --git a/gopher/view.go b/gopher/view.go index 3afb745..813f4ca 100644 --- a/gopher/view.go +++ b/gopher/view.go @@ -46,9 +46,8 @@ func (v *View) ParseMap() { } else { title = "" } - if len(line[0]) > 0 && string(line[0][0]) == "i" { + if len(line) > 1 && len(line[0]) > 0 && string(line[0][0]) == "i" { v.Content[i] = " " + string(title) - continue } else if len(line) >= 4 { fulllink := fmt.Sprintf("%s:%s/%s%s", line[2], line[3], string(line[0][0]), line[1]) v.Links = append(v.Links, fulllink)