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.Key = &this.RouteId
|
||||||
this.SearchData = &searchData
|
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 {
|
} else {
|
||||||
if 0 < len( *this.Schedules ) {
|
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 )
|
writeShortRoute( &this.Lang, &sb, busStop )
|
||||||
for _, bus := range buses.Buses {
|
for _, bus := range buses.Buses {
|
||||||
sb.WriteString( " \\* " )
|
sb.WriteString( " \\* " )
|
||||||
|
Loading…
Reference in New Issue
Block a user