summary refs log tree commit diff
path: root/funcs.go
diff options
context:
space:
mode:
Diffstat (limited to 'funcs.go')
-rw-r--r--funcs.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/funcs.go b/funcs.go
new file mode 100644
index 0000000..5ab913c
--- /dev/null
+++ b/funcs.go
@@ -0,0 +1,41 @@
+package main
+
+import (
+	"fmt"
+	"io/ioutil"
+	"log"
+	"net/http"
+	"os"
+)
+
+// downloadCategory downloads the given category from celestrack
+func downloadCategory(categoryName string) {
+
+	// define where to download the TLEs from
+	base := "https://celestrak.com/NORAD/elements/"
+	downloadURL := fmt.Sprintf("%s%s.txt", base, categoryName)
+
+	// define the HTTP GET request and make it
+	resp, err := http.Get(downloadURL)
+	if err != nil {
+		log.Printf("Could not download %s", categoryName)
+	}
+	defer resp.Body.Close()
+
+	// read the respose from the GET request
+	body, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		log.Printf("Could not read the category %s", categoryName)
+	}
+
+	// write the response to the corresponding file
+	filename := fmt.Sprintf("data/%s.txt", categoryName)
+	f, err := os.Create(filename) // creating the file
+	if err != nil {
+		fmt.Printf("Could not create file data/%s.txt", categoryName)
+	}
+	_, err = f.WriteString(string(body)) // writing the TLE to the file
+	if err != nil {
+		fmt.Printf("Could not write to file data/%s.txt", categoryName)
+	}
+}