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