Compare commits
	
		
			2 Commits
		
	
	
		
			addc90d856
			...
			f3120905fe
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f3120905fe | |||
| 4a73099460 | 
| @ -176,14 +176,19 @@ void logic_loop() { | |||||||
| 
 | 
 | ||||||
|       int line = 0; |       int line = 0; | ||||||
|       for (JsonVariant departure : departures["departures"].as<JsonArray>()) { |       for (JsonVariant departure : departures["departures"].as<JsonArray>()) { | ||||||
|         const char *directionStr = departure["direction"].as<const char *>(); |  | ||||||
| 
 |  | ||||||
|         display.setCursor(MAIN_X, MAIN_Y + (CY + 3) * line); |         display.setCursor(MAIN_X, MAIN_Y + (CY + 3) * line); | ||||||
|         display.printf("%2s %-15.15s %6s", |         display.printf("%2s %-15.15s ", | ||||||
|           departure["symbol"].as<const char*>(), |           departure["symbol"].as<const char*>(), | ||||||
|           directionStr, |           departure["direction"].as<const char *>() | ||||||
|           departure["leaving"].as<const char*>() |  | ||||||
|         ); |         ); | ||||||
|  |         if (departure["leaving"].as<String>().equals("sofort")) { | ||||||
|  |           int16_t x = display.getCursorX(); | ||||||
|  |           int16_t y = display.getCursorY(); | ||||||
|  |           display.drawBitmap(x + 6 * CX - tiny_train_dims[0], y, tiny_train[0], tiny_train_dims[0], tiny_train_dims[1], COLOR_TEXT); | ||||||
|  |         } else { | ||||||
|  |           display.printf("%6s", departure["leaving"].as<const char*>()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         line++; |         line++; | ||||||
|       } |       } | ||||||
|        |        | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								main.go
									
									
									
									
									
								
							| @ -1,5 +1,6 @@ | |||||||
| package main | package main | ||||||
| 
 | 
 | ||||||
|  | import "cmp" | ||||||
| import "encoding/json" | import "encoding/json" | ||||||
| import "errors" | import "errors" | ||||||
| import "fmt" | import "fmt" | ||||||
| @ -97,6 +98,7 @@ func (c KVVEFAClient) BuildRequest(stopId string) (*http.Request, error) { | |||||||
| 	form.Set("useRealtime", "1") | 	form.Set("useRealtime", "1") | ||||||
| 	form.Set("limit", "10") | 	form.Set("limit", "10") | ||||||
| 	form.Set("mode", "direct") | 	form.Set("mode", "direct") | ||||||
|  | 	form.Set("useRealtime", "1") | ||||||
| 	form.Set("outputFormat", "json") | 	form.Set("outputFormat", "json") | ||||||
| 	body := strings.NewReader(form.Encode()) | 	body := strings.NewReader(form.Encode()) | ||||||
| 
 | 
 | ||||||
| @ -179,6 +181,7 @@ type Departure struct { | |||||||
| 	Symbol    string `json:"symbol"` | 	Symbol    string `json:"symbol"` | ||||||
| 	Direction string `json:"direction"` | 	Direction string `json:"direction"` | ||||||
| 	Leaving   string `json:"leaving"` | 	Leaving   string `json:"leaving"` | ||||||
|  | 	Countdown int | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) { | func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) { | ||||||
| @ -223,9 +226,14 @@ func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, | |||||||
| 			d.ServingLine.Symbol, | 			d.ServingLine.Symbol, | ||||||
| 			direction, | 			direction, | ||||||
| 			leaving, | 			leaving, | ||||||
|  | 			countdown, | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	slices.SortFunc(ds, func(a Departure, b Departure) int { | ||||||
|  | 		return cmp.Compare(a.Countdown, b.Countdown) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
| 	return Departures{ds}, nil | 	return Departures{ds}, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -265,6 +273,7 @@ func main() { | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		c := efaClients[(efaClient.Add(1) - 1) % uint64(len(efaClients))] | 		c := efaClients[(efaClient.Add(1) - 1) % uint64(len(efaClients))] | ||||||
|  | 		log.Print(c.GetName()) | ||||||
| 		ds, err := FetchDepartures(c, stopId) | 		ds, err := FetchDepartures(c, stopId) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			http.Error(w, err.Error(), http.StatusInternalServerError) | 			http.Error(w, err.Error(), http.StatusInternalServerError) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user