Fetch .json from URL
This commit is contained in:
		
							parent
							
								
									c8569db91a
								
							
						
					
					
						commit
						0e84f0460a
					
				
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@ -1,3 +1,5 @@
 | 
				
			|||||||
module git.freifunk-rhein-sieg.net/Freifunk-Troisdorf/ubnt-freifunk-map-api
 | 
					module git.freifunk-rhein-sieg.net/Freifunk-Troisdorf/ubnt-freifunk-map-api
 | 
				
			||||||
 | 
					
 | 
				
			||||||
go 1.16
 | 
					go 1.16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require git.nils.zone/nils/prettify v0.0.4
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								go.sum
									
									
									
									
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					git.nils.zone/nils/prettify v0.0.4 h1:y014Ejp0yhFAc9vu5U0nJRFxtXN6k6eWW6LiUkwn4NQ=
 | 
				
			||||||
 | 
					git.nils.zone/nils/prettify v0.0.4/go.mod h1:q4ydEhSvXuywHe5U6uSEoEeS9f2Upz/n8z0MJylLz5c=
 | 
				
			||||||
 | 
					github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2 h1:ZBbLwSJqkHBuFDA6DUhhse0IGJ7T5bemHyNILUjvOq4=
 | 
				
			||||||
 | 
					github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2/go.mod h1:VSw57q4QFiWDbRnjdX8Cb3Ow0SFncRw+bA/ofY6Q83w=
 | 
				
			||||||
 | 
					github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
 | 
				
			||||||
 | 
					github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
 | 
				
			||||||
 | 
					github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e h1:0aewS5NTyxftZHSnFaJmWE5oCCrj4DyEXkAiMa1iZJM=
 | 
				
			||||||
 | 
					github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI=
 | 
				
			||||||
 | 
					github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
 | 
				
			||||||
 | 
					github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 | 
				
			||||||
 | 
					github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
 | 
				
			||||||
 | 
					github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=
 | 
				
			||||||
 | 
					github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
 | 
				
			||||||
 | 
					golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
				
			||||||
 | 
					golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4=
 | 
				
			||||||
 | 
					golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
				
			||||||
							
								
								
									
										24
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								main.go
									
									
									
									
									
								
							@ -10,10 +10,11 @@ import (
 | 
				
			|||||||
	"log"
 | 
						"log"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"net/http/cookiejar"
 | 
						"net/http/cookiejar"
 | 
				
			||||||
	"os"
 | 
					 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						_ "git.nils.zone/nils/prettify"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// types
 | 
					// types
 | 
				
			||||||
@ -45,6 +46,7 @@ func main() {
 | 
				
			|||||||
	if *ucUser == "" {
 | 
						if *ucUser == "" {
 | 
				
			||||||
		log.Fatalln("Please specify an API User via the flag '-ucUser'")
 | 
							log.Fatalln("Please specify an API User via the flag '-ucUser'")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						//getFile()
 | 
				
			||||||
	// start API processing (runs in a loop)
 | 
						// start API processing (runs in a loop)
 | 
				
			||||||
	go processAPIs()
 | 
						go processAPIs()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -280,22 +282,24 @@ func processAPIs() {
 | 
				
			|||||||
		log.Println("...done")
 | 
							log.Println("...done")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					func getFile(url string) []byte {
 | 
				
			||||||
 | 
						resp, err := http.Get(url)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							fmt.Printf("error")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						data := resp.Body
 | 
				
			||||||
 | 
						byteValue, _ := ioutil.ReadAll(data)
 | 
				
			||||||
 | 
						return byteValue
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
func getDevices(file string) (devices, error) {
 | 
					func getDevices(file string) (devices, error) {
 | 
				
			||||||
	// get devices from JSON file
 | 
						// get devices from JSON file
 | 
				
			||||||
	jsonFile, err := os.Open(file)
 | 
						jsonFile := getFile("https://git.freifunk-rhein-sieg.net/Freifunk-Troisdorf/ubnt-freifunk-map-api/raw/branch/master/" + file)
 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return devices{}, errors.New("can't open devices.json")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	defer jsonFile.Close()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// read file to bytes
 | 
						// read file to bytes
 | 
				
			||||||
	byteValue, _ := ioutil.ReadAll(jsonFile)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// variable for d
 | 
						// variable for d
 | 
				
			||||||
	var d devices
 | 
						var d devices
 | 
				
			||||||
	// unmarshal to struct
 | 
						// unmarshal to struct
 | 
				
			||||||
	json.Unmarshal(byteValue, &d)
 | 
						json.Unmarshal(jsonFile, &d)
 | 
				
			||||||
	return d, nil
 | 
						return d, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user