Compare commits
	
		
			3 Commits
		
	
	
		
			5d5b893948
			...
			72734c7faa
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 72734c7faa | |||
| 5deb037fe5 | |||
| 6e78235127 | 
| @ -16,7 +16,7 @@ | |||||||
| 
 | 
 | ||||||
|       vrnp-static = pkgs.buildGoModule { |       vrnp-static = pkgs.buildGoModule { | ||||||
|         pname = "vrnp"; |         pname = "vrnp"; | ||||||
|         version = "0.0.7"; |         version = "0.0.8"; | ||||||
|         vendorHash = null; |         vendorHash = null; | ||||||
| 
 | 
 | ||||||
|         # For building the package, we use only the files not ignored by Git as inputs. |         # For building the package, we use only the files not ignored by Git as inputs. | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								main.go
									
									
									
									
									
								
							| @ -51,6 +51,12 @@ type EFAClient interface { | |||||||
| 	BuildRequest(string) (*http.Request, error) | 	BuildRequest(string) (*http.Request, error) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | var allEfaClients []EFAClient = []EFAClient{ | ||||||
|  | 	BwegtEFAClient{}, | ||||||
|  | 	VRNEFAClient{}, | ||||||
|  | 	KVVEFAClient{}, | ||||||
|  | } | ||||||
|  | 
 | ||||||
| type VRNEFAClient struct { | type VRNEFAClient struct { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -181,7 +187,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 | 	Countdown int    `json:"-"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) { | func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, error) { | ||||||
| @ -240,15 +246,18 @@ func ParseDepartures(response DMResponse, allowedPlatform *string) (Departures, | |||||||
| func main() { | func main() { | ||||||
| 	password := os.Getenv("VRNP_PASSWORD") | 	password := os.Getenv("VRNP_PASSWORD") | ||||||
| 	if len(password) == 0 { | 	if len(password) == 0 { | ||||||
| 		panic("Required environment variable VRNP_PASSWORD is not set") | 		log.Fatal("Required environment variable VRNP_PASSWORD is not set") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	clientAllowlist := strings.Split(os.Getenv("VRNP_CLIENT_ALLOWLIST"), ",") | ||||||
|  | 
 | ||||||
| 	// Use round-robin to send incoming requests to different servers | 	// Use round-robin to send incoming requests to different servers | ||||||
| 	var efaClient atomic.Uint64 | 	var efaClient atomic.Uint64 | ||||||
| 	efaClients := []EFAClient{ | 	var efaClients []EFAClient | ||||||
| 		BwegtEFAClient{}, | 	for _, efaClient := range allEfaClients { | ||||||
| 		VRNEFAClient{}, | 		if len(clientAllowlist) != 0 && slices.Contains(clientAllowlist, efaClient.GetName()) { | ||||||
| 		KVVEFAClient{}, | 			efaClients = append(efaClients, efaClient) | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	http.HandleFunc("/departures", func(w http.ResponseWriter, r *http.Request) { | 	http.HandleFunc("/departures", func(w http.ResponseWriter, r *http.Request) { | ||||||
| @ -273,7 +282,6 @@ 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