diff options
author | Emile <hanemile@protonmail.com> | 2019-09-14 23:08:14 +0200 |
---|---|---|
committer | Emile <hanemile@protonmail.com> | 2019-09-14 23:08:14 +0200 |
commit | bf6a7a9bec86b59bce753f51fee6be67e231017b (patch) | |
tree | e3417b5f7537287b0b59c8b341da2cf6f8653369 /http.go | |
parent | f54918bb664f12c3b237dd53a2fdac7a2c61356a (diff) |
working 0.1
Diffstat (limited to 'http.go')
-rw-r--r-- | http.go | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/http.go b/http.go index 7d551ae..84dc503 100644 --- a/http.go +++ b/http.go @@ -25,17 +25,22 @@ func dumpallHandler(w http.ResponseWriter, r *http.Request) { // the result to the categories slice content, err := ioutil.ReadFile("categories.txt") if err != nil { - log.Printf("%s", "could not read categories.txt file!") + log.Printf("%s\n", "could not read categories.txt file!") } lines := strings.Split(string(content), "\n") for _, line := range lines { - categories = append(categories, line) + if line != "" { + categories = append(categories, line) + } } // download all the categories to the data/<category name> directory for _, category := range categories { + fmt.Fprintf(w, "downloading %s... ", category) + log.Printf("downloading %s... ", category) downloadCategory(category) + fmt.Fprintf(w, "done.\n") } log.Println("[+] Done dumping all TLEs") @@ -46,20 +51,45 @@ func getHandler(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) // read the TLEs from the categories file + // TODO: Handle caching + // - dump all if not present + // - if old, fetch from celestrakc //content, err := ioutil.ReadFile("categories.txt") //if err != nil { // log.Println("Could note read categories.txt") //} + // open the file containing the data for the individual station + categoryPath := fmt.Sprintf("data/%s.txt", vars["station"]) + content, err := ioutil.ReadFile(categoryPath) + if err != nil { + log.Printf("Could not open %s", categoryPath) + } + + lines := strings.Split(string(content), "\n") + + // iterate over all lines searching for the satellite + var j int + for i, line := range lines { + if strings.Contains(line, vars["name"]) { + j = i + break + } + } + + RawTLE := strings.Join(lines[j:j+3], "\n") + + /* + RawTLE := `ISS (ZARYA) + 1 25544U 98067A 19229.39083552 .00000228 00000-0 11917-4 0 9993 + 2 25544 51.6447 57.6210 0007373 294.0868 138.8050 15.50381554184754` + */ + // handle the response according to the query parameter "format" // if ?format=json is given, return if r.URL.Query().Get("format") == "json" { w.Header().Set("Content-Type", "application/json") - RawTLE := `ISS (ZARYA) -1 25544U 98067A 19229.39083552 .00000228 00000-0 11917-4 0 9993 -2 25544 51.6447 57.6210 0007373 294.0868 138.8050 15.50381554184754` - JSONTLE, err := tle.NewTLE(RawTLE) if err != nil { fmt.Println(err) |