From 48eeb55dded78f544289be3eca26cd397b546cb7 Mon Sep 17 00:00:00 2001 From: HiszpanInk Date: Sat, 6 Aug 2022 22:09:06 +0200 Subject: [PATCH] Finished searching, added action on non-existing vehicle --- .gitignore | 2 ++ ztm_vehicles_app.go | 84 +++++++++++++++++++++++++++------------------ 2 files changed, 53 insertions(+), 33 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a2cbea --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +fyne_metadata_init.go +ztm_vehicles_app.apk \ No newline at end of file diff --git a/ztm_vehicles_app.go b/ztm_vehicles_app.go index d8a0baa..6bbf326 100644 --- a/ztm_vehicles_app.go +++ b/ztm_vehicles_app.go @@ -2,7 +2,6 @@ package main import ( "fmt" - "strconv" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" @@ -23,40 +22,57 @@ type vehicle struct { equipment string } -func getVehicleByNum(vehicleNum int) string { - var retrievedData [10]string - - //get data from website and insert it into array - vehicleURL := fmt.Sprintf("https://www.ztm.waw.pl/baza-danych-pojazdow/?ztm_mode=2&ztm_vehicle=%d", vehicleNum) - // Instantiate default collector - c := colly.NewCollector( +func getVehicleByNum(vehicleNum string) string { + searchURL := fmt.Sprintf("https://www.ztm.waw.pl/baza-danych-pojazdow/?ztm_traction=&ztm_make=&ztm_model=&ztm_year=&ztm_registration=&ztm_vehicle_number=%s&ztm_carrier=&ztm_depot=", vehicleNum) + vehicleURL := "" + c2 := colly.NewCollector( // Visit only domains: colly.AllowedDomains("www.ztm.waw.pl"), ) - dataIndex := 0 - c.OnHTML(".vehicle-details-entry-value", func(e *colly.HTMLElement) { - text := e.Text - retrievedData[dataIndex] = text - dataIndex++ + c2.OnHTML(".grid-row-active", func(e *colly.HTMLElement) { + text := e.Attr("href") + vehicleURL = text }) - c.Visit(vehicleURL) + c2.Visit(searchURL) + if searchURL == "" { + return "" + } else { + var retrievedData [10]string + // Instantiate default collector + c := colly.NewCollector( + // Visit only domains: + colly.AllowedDomains("www.ztm.waw.pl"), + ) + dataIndex := 0 + c.OnHTML(".vehicle-details-entry-value", func(e *colly.HTMLElement) { + text := e.Text + retrievedData[dataIndex] = text + dataIndex++ + }) + c.Visit(vehicleURL) + retrievedVehicle := vehicle{ + producer: retrievedData[0], + model: retrievedData[1], + production_year: retrievedData[2], + traction_type: retrievedData[3], + vehicle_registration_plate: retrievedData[4], + vehicle_number: retrievedData[5], + operator: retrievedData[6], + garage: retrievedData[7], + ticket_machine: retrievedData[8], + equipment: retrievedData[9], + } - retrievedVehicle := vehicle{ - producer: retrievedData[0], - model: retrievedData[1], - production_year: retrievedData[2], - traction_type: retrievedData[3], - vehicle_registration_plate: retrievedData[4], - vehicle_number: retrievedData[5], - operator: retrievedData[6], - garage: retrievedData[7], - ticket_machine: retrievedData[8], - equipment: retrievedData[9], + output_string := fmt.Sprintf( + `%s %s + z roku %s, + w posiadaniu %s, + z zajezdni %s, + o rejestracji %s + `, retrievedVehicle.producer, retrievedVehicle.model, retrievedVehicle.production_year, retrievedVehicle.operator, retrievedVehicle.garage, retrievedVehicle.vehicle_registration_plate) + return output_string } - output_string := fmt.Sprintf( - `%s %s - `, retrievedVehicle.producer, retrievedVehicle.model) - return output_string + } func main() { @@ -70,10 +86,12 @@ func main() { {Text: "Podaj numer taborowy pojazdu:", Widget: entry}}, } form.OnSubmit = func() { - input, error := strconv.Atoi(entry.Text) - fmt.Println(error) - output.Text = getVehicleByNum(input) - + output_data := getVehicleByNum(entry.Text) + if output_data != "" { + output.Text = output_data + } else { + output.Text = "Nie znaleziono pojazdu o podanym numerze taborowym w bazie pojazdów WTP" + } output.Refresh() }