MTR: Sort schedules by route
This commit is contained in:
		@@ -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( "  \\* " )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user