about summary refs log tree commit diff
path: root/http.go
diff options
context:
space:
mode:
Diffstat (limited to 'http.go')
-rw-r--r--http.go62
1 files changed, 62 insertions, 0 deletions
diff --git a/http.go b/http.go
index 4c77fcb..9808f07 100644
--- a/http.go
+++ b/http.go
@@ -68,5 +68,67 @@ func getHandler(w http.ResponseWriter, r *http.Request) {
 		fmt.Println("error: ", err)
 	}
 	fmt.Fprintf(w, string(b))
+}
+
+func printAllHandler(w http.ResponseWriter, r *http.Request) {
+	r.ParseForm()
+	dumpall()
+	w.Header().Set("Content-Type", "application/json")
+
+	// read the name of the categories from the categories.txt file and write
+	// the result to the categories slice
+	content, err := ioutil.ReadFile("categories.txt")
+	if err != nil {
+		log.Printf("%s\n", "could not read categories.txt file!")
+	}
+	lines := strings.Split(string(content), "\n")
+
+	for _, line := range lines {
+		if line != "" {
+			categories = append(categories, line)
+		}
+	}
+
+	fmt.Fprintf(w, "[")
 
+	// read the content of all files
+	for j, category := range categories {
+
+		// define where the file containing the spoecified categories lies
+		categoryPath := fmt.Sprintf("data/%s.txt", category)
+
+		// this will only download the category if the file does not exist or if it
+		// is to old
+		downloadCategory(category)
+
+		// open the file containing the data for the individual station
+		content, err := ioutil.ReadFile(categoryPath)
+		if err != nil {
+			log.Printf("Could not open %s", categoryPath)
+		}
+
+		lines := strings.Split(string(content), "\n")
+
+		for i := 0; i < len(lines)-3; i += 3 {
+			RawTLE := strings.Join(lines[i:i+3], "\n")
+
+			JSONTLE, err := tle.NewTLE(RawTLE)
+			if err != nil {
+				fmt.Println(err)
+			}
+
+			// convert the TLE to json
+			b, err := json.MarshalIndent(JSONTLE, "", " ")
+			if err != nil {
+				fmt.Println("error: ", err)
+			}
+
+			if i == len(lines)-4 && j == len(categories)-1 {
+				fmt.Fprintf(w, "%s", string(b))
+			} else {
+				fmt.Fprintf(w, "%s,", string(b))
+			}
+		}
+	}
+	fmt.Fprintf(w, "]")
 }