Finished searching, added action on non-existing vehicle

This commit is contained in:
HiszpanInk 2022-08-06 22:09:06 +02:00
parent 58173ba295
commit 48eeb55dde
2 changed files with 53 additions and 33 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
fyne_metadata_init.go
ztm_vehicles_app.apk

View file

@ -2,7 +2,6 @@ package main
import ( import (
"fmt" "fmt"
"strconv"
"fyne.io/fyne/v2/app" "fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container" "fyne.io/fyne/v2/container"
@ -23,40 +22,57 @@ type vehicle struct {
equipment string equipment string
} }
func getVehicleByNum(vehicleNum int) string { func getVehicleByNum(vehicleNum string) string {
var retrievedData [10]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 := ""
//get data from website and insert it into array c2 := colly.NewCollector(
vehicleURL := fmt.Sprintf("https://www.ztm.waw.pl/baza-danych-pojazdow/?ztm_mode=2&ztm_vehicle=%d", vehicleNum)
// Instantiate default collector
c := colly.NewCollector(
// Visit only domains: // Visit only domains:
colly.AllowedDomains("www.ztm.waw.pl"), colly.AllowedDomains("www.ztm.waw.pl"),
) )
dataIndex := 0 c2.OnHTML(".grid-row-active", func(e *colly.HTMLElement) {
c.OnHTML(".vehicle-details-entry-value", func(e *colly.HTMLElement) { text := e.Attr("href")
text := e.Text vehicleURL = text
retrievedData[dataIndex] = text
dataIndex++
}) })
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{ output_string := fmt.Sprintf(
producer: retrievedData[0], `%s %s
model: retrievedData[1], z roku %s,
production_year: retrievedData[2], w posiadaniu %s,
traction_type: retrievedData[3], z zajezdni %s,
vehicle_registration_plate: retrievedData[4], o rejestracji %s
vehicle_number: retrievedData[5], `, retrievedVehicle.producer, retrievedVehicle.model, retrievedVehicle.production_year, retrievedVehicle.operator, retrievedVehicle.garage, retrievedVehicle.vehicle_registration_plate)
operator: retrievedData[6], return output_string
garage: retrievedData[7],
ticket_machine: retrievedData[8],
equipment: retrievedData[9],
} }
output_string := fmt.Sprintf(
`%s %s
`, retrievedVehicle.producer, retrievedVehicle.model)
return output_string
} }
func main() { func main() {
@ -70,10 +86,12 @@ func main() {
{Text: "Podaj numer taborowy pojazdu:", Widget: entry}}, {Text: "Podaj numer taborowy pojazdu:", Widget: entry}},
} }
form.OnSubmit = func() { form.OnSubmit = func() {
input, error := strconv.Atoi(entry.Text) output_data := getVehicleByNum(entry.Text)
fmt.Println(error) if output_data != "" {
output.Text = getVehicleByNum(input) output.Text = output_data
} else {
output.Text = "Nie znaleziono pojazdu o podanym numerze taborowym w bazie pojazdów WTP"
}
output.Refresh() output.Refresh()
} }