mirror of
https://github.com/Xevion/r2park.git
synced 2025-12-06 01:15:57 -06:00
61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func Scan() {
|
|
locations := GetLocations()
|
|
total := len(locations)
|
|
|
|
for i, location := range locations {
|
|
log.Debugf("[%6.2f] Fetching \"%s\" ", float64(i+1)/float64(total)*100, location.name)
|
|
|
|
body := fmt.Sprintf("propertyIdSelected=%d&propertySource=parking-snap", location.id)
|
|
req := BuildRequestWithBody("POST", "/register-get-vehicle-form", nil, bytes.NewBufferString(body))
|
|
SetTypicalHeaders(req, nil, nil, false)
|
|
res, _ := doRequest(req)
|
|
|
|
html, _ := io.ReadAll(res.Body)
|
|
|
|
html_path := filepath.Join("./forms", fmt.Sprintf("%d.html", location.id))
|
|
|
|
// Check that file exists and has more than 16 bytes
|
|
stats, err := os.Stat(html_path)
|
|
if err != nil && errors.Is(err, os.ErrNotExist) {
|
|
// File does not exist, create it
|
|
file, err := os.Create(html_path)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer file.Close()
|
|
|
|
_, err = file.Write(html)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
} else if stats.Size() < 16 {
|
|
// File exists, but is empty
|
|
file, err := os.OpenFile(html_path, os.O_WRONLY, 0644)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer file.Close()
|
|
|
|
_, err = file.Write(html)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
} else {
|
|
// File exists and is not empty, do nothing
|
|
}
|
|
}
|
|
}
|