MTR: Sort schedules by route
This commit is contained in:
parent
a062e37a4c
commit
55d4ac4adc
@ -47,3 +47,16 @@ func ( this *BusStop ) Reload() {
|
||||
this.Key = &this.RouteId
|
||||
this.SearchData = &searchData
|
||||
}
|
||||
|
||||
type ByRoute [] *BusStop
|
||||
|
||||
func (a ByRoute) Len() int { return len(a) }
|
||||
func (a ByRoute) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
func (a ByRoute) Less(i, j int) bool {
|
||||
_a := *a[i]
|
||||
_b := *a[j]
|
||||
if _a.RouteId == _b.RouteId {
|
||||
return _a.Direction < _b.Direction
|
||||
}
|
||||
return _a.RouteId < _b.RouteId
|
||||
}
|
||||
|
@ -115,7 +115,18 @@ func ( this QueryResult ) Message() ( string, error ) {
|
||||
}
|
||||
} else {
|
||||
if 0 < len( *this.Schedules ) {
|
||||
for busStop, buses := range *this.Schedules {
|
||||
|
||||
busStops := [] *BusStop{}
|
||||
|
||||
for b, _ := range *this.Schedules {
|
||||
busStops = append( busStops, b )
|
||||
}
|
||||
|
||||
sort.Sort( ByRoute( busStops ) )
|
||||
|
||||
for _, busStop := range busStops {
|
||||
buses := (*this.Schedules)[ busStop ]
|
||||
|
||||
writeShortRoute( &this.Lang, &sb, busStop )
|
||||
for _, bus := range buses.Buses {
|
||||
sb.WriteString( " \\* " )
|
||||
|
Loading…
Reference in New Issue
Block a user