commit 58680473757236d39a1915352eb170189dcd4fe8
parent 0b14a407c4eec123cb153d3475abb3e16b888b5f
Author: Andrew Laack <andrew@laack.co>
Date: Tue, 28 Apr 2026 01:39:51 -0500
Scaffolding
Diffstat:
| M | main.go | | | 56 | ++++++++++++++++++++++++++++++++++++++++++++++---------- |
1 file changed, 46 insertions(+), 10 deletions(-)
diff --git a/main.go b/main.go
@@ -3,18 +3,18 @@ package main
import (
"fmt"
"io"
+ "os"
"strings"
+ "net/url"
"github.com/makeworld-the-better-one/go-gemini"
)
-func main() {
- resp, err := gemini.Fetch("gemini://laack.co/")
+func index(url string) (string, []string) {
+ resp, err := gemini.Fetch(url)
if err != nil {
- // TODO: Make this more informative; the lib gives more than this.
- fmt.Println(err)
- panic("Failed to fetch resource")
+ panic(err)
}
bodyBytes, err := io.ReadAll(resp.Body)
@@ -22,9 +22,7 @@ func main() {
body := string(bodyBytes)
if err != nil {
- // TODO: Why might this happen?
- fmt.Println(err)
- panic("Failed to read body")
+ panic(err)
}
lines := strings.Split(body, "\n")
@@ -52,11 +50,49 @@ func main() {
}
if strings.Compare(item[:9], "gemini://") == 0 {
geminiLinks = append(geminiLinks, item)
- fmt.Println(item[:indexOfSpace])
}
if strings.Contains(item, "://") == false {
geminiLinks = append(geminiLinks, item)
- fmt.Println(item[:indexOfSpace])
}
}
+
+ return body, geminiLinks
+
+}
+
+func main() {
+ currentUrl := "gemini://tlgs.one/known-hosts"
+ body, forwardGeminiLinks := index(currentUrl)
+
+ fmt.Println("\n=== Body ===\n")
+ fmt.Println(body)
+ fmt.Println("\n=== Body ===\n")
+
+
+ fmt.Println("\n=== Links ===\n")
+ for index, link := range(forwardGeminiLinks) {
+ fmt.Printf("%d: %s\n", index, link)
+ }
+ fmt.Println("\n=== Links ===\n")
+
+ err := os.WriteFile(url.PathEscape(currentUrl), []byte(body), 0644)
+
+ if err != nil {
+ panic(err)
+ }
+
+ f, err := os.OpenFile("links.txt", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
+ if err != nil {
+ panic(err)
+ }
+
+ defer f.Close()
+
+ for _, link := range forwardGeminiLinks {
+ if _, err = f.WriteString(link + "\n"); err != nil {
+ panic(err)
+ }
+ }
+
+
}