diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | gopherproxy.go | 62 |
2 files changed, 32 insertions, 32 deletions
@@ -5,7 +5,7 @@ by proxying standard Web HTTP requests to Gopher requests of the target server. | |||
5 | 5 | ||
6 | gopherproxy is a fork of [https://github.com/prologic/gopherproxy](https://github.com/prologic/gopherproxy). | 6 | gopherproxy is a fork of [https://github.com/prologic/gopherproxy](https://github.com/prologic/gopherproxy). |
7 | 7 | ||
8 | Demo: https://gopher.feuerfuchs.dev/ | 8 | Demo: https://gopher.vulpes.one/ |
9 | 9 | ||
10 | 10 | ||
11 | ## Requirements | 11 | ## Requirements |
diff --git a/gopherproxy.go b/gopherproxy.go index 0b3279c..a9396ef 100644 --- a/gopherproxy.go +++ b/gopherproxy.go | |||
@@ -86,12 +86,12 @@ func renderDirectory(w http.ResponseWriter, tpl *template.Template, assetList As | |||
86 | } | 86 | } |
87 | 87 | ||
88 | return tpl.Execute(w, struct { | 88 | return tpl.Execute(w, struct { |
89 | Title string | 89 | Title string |
90 | URI string | 90 | URI string |
91 | Assets AssetList | 91 | Assets AssetList |
92 | Lines []Item | 92 | Lines []Item |
93 | RawText string | 93 | RawText string |
94 | Error bool | 94 | Error bool |
95 | }{title, fmt.Sprintf("%s/%s", hostport, uri), assetList, out, "", false}) | 95 | }{title, fmt.Sprintf("%s/%s", hostport, uri), assetList, out, "", false}) |
96 | } | 96 | } |
97 | 97 | ||
@@ -126,12 +126,12 @@ func GopherHandler(tpl *template.Template, robotsdata *robotstxt.RobotsData, ass | |||
126 | uri, err := url.QueryUnescape(strings.Join(parts[1:], "/")) | 126 | uri, err := url.QueryUnescape(strings.Join(parts[1:], "/")) |
127 | if err != nil { | 127 | if err != nil { |
128 | tpl.Execute(w, struct { | 128 | tpl.Execute(w, struct { |
129 | Title string | 129 | Title string |
130 | URI string | 130 | URI string |
131 | Assets AssetList | 131 | Assets AssetList |
132 | RawText string | 132 | RawText string |
133 | Lines []Item | 133 | Lines []Item |
134 | Error bool | 134 | Error bool |
135 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, fmt.Sprintf("Error: %s", err), nil, true}) | 135 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, fmt.Sprintf("Error: %s", err), nil, true}) |
136 | return | 136 | return |
137 | } | 137 | } |
@@ -147,12 +147,12 @@ func GopherHandler(tpl *template.Template, robotsdata *robotstxt.RobotsData, ass | |||
147 | 147 | ||
148 | if err != nil { | 148 | if err != nil { |
149 | tpl.Execute(w, struct { | 149 | tpl.Execute(w, struct { |
150 | Title string | 150 | Title string |
151 | URI string | 151 | URI string |
152 | Assets AssetList | 152 | Assets AssetList |
153 | RawText string | 153 | RawText string |
154 | Lines []Item | 154 | Lines []Item |
155 | Error bool | 155 | Error bool |
156 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, fmt.Sprintf("Error: %s", err), nil, true}) | 156 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, fmt.Sprintf("Error: %s", err), nil, true}) |
157 | return | 157 | return |
158 | } | 158 | } |
@@ -160,17 +160,17 @@ func GopherHandler(tpl *template.Template, robotsdata *robotstxt.RobotsData, ass | |||
160 | if res.Body != nil { | 160 | if res.Body != nil { |
161 | if len(parts) < 2 { | 161 | if len(parts) < 2 { |
162 | io.Copy(w, res.Body) | 162 | io.Copy(w, res.Body) |
163 | } else if parts[1] == "0" { //strings.HasSuffix(uri, ".txt") || strings.HasSuffix(uri, ".md") { | 163 | } else if parts[1] == "0" && !strings.HasSuffix(uri, ".xml") && !strings.HasSuffix(uri, ".asc") { //strings.HasSuffix(uri, ".txt") || strings.HasSuffix(uri, ".md") { |
164 | // handle .txt files | 164 | // handle .txt files |
165 | buf := new(bytes.Buffer) | 165 | buf := new(bytes.Buffer) |
166 | buf.ReadFrom(res.Body) | 166 | buf.ReadFrom(res.Body) |
167 | tpl.Execute(w, struct { | 167 | tpl.Execute(w, struct { |
168 | Title string | 168 | Title string |
169 | URI string | 169 | URI string |
170 | Assets AssetList | 170 | Assets AssetList |
171 | RawText string | 171 | RawText string |
172 | Lines []Item | 172 | Lines []Item |
173 | Error bool | 173 | Error bool |
174 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, buf.String(), nil, false}) | 174 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, buf.String(), nil, false}) |
175 | } else if parts[1] == "T" { | 175 | } else if parts[1] == "T" { |
176 | _, _, err = vips.NewTransform(). | 176 | _, _, err = vips.NewTransform(). |
@@ -186,12 +186,12 @@ func GopherHandler(tpl *template.Template, robotsdata *robotstxt.RobotsData, ass | |||
186 | } else { | 186 | } else { |
187 | if err := renderDirectory(w, tpl, assetList, uri, hostport, res.Dir); err != nil { | 187 | if err := renderDirectory(w, tpl, assetList, uri, hostport, res.Dir); err != nil { |
188 | tpl.Execute(w, struct { | 188 | tpl.Execute(w, struct { |
189 | Title string | 189 | Title string |
190 | URI string | 190 | URI string |
191 | Assets AssetList | 191 | Assets AssetList |
192 | RawText string | 192 | RawText string |
193 | Lines []Item | 193 | Lines []Item |
194 | Error bool | 194 | Error bool |
195 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, fmt.Sprintf("Error: %s", err), nil, true}) | 195 | }{uri, fmt.Sprintf("%s/%s", hostport, uri), assetList, fmt.Sprintf("Error: %s", err), nil, true}) |
196 | return | 196 | return |
197 | } | 197 | } |