59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package kmb
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
query "github.com/tgckpg/golifehk/query"
|
|
utils "github.com/tgckpg/golifehk/utils"
|
|
)
|
|
|
|
type QueryResult struct {
|
|
Lang string
|
|
Error error
|
|
Query *query.QueryObject
|
|
}
|
|
|
|
func ( this *QueryResult ) Message() ( string, error ) {
|
|
|
|
if this.Error != nil {
|
|
return "", this.Error
|
|
}
|
|
|
|
sb := strings.Builder{}
|
|
|
|
if 0 < len( *this.Query.Results ) {
|
|
// Print Stop Name, the print the list of routes
|
|
if this.Query.Key == "" {
|
|
for _, item := range *this.Query.Results {
|
|
var b *BusStop
|
|
b = any( item ).( *BusStop )
|
|
|
|
if b.Routes == nil {
|
|
continue
|
|
}
|
|
|
|
utils.WriteMDv2Text( &sb, (*b.Name)[ this.Lang ] )
|
|
sb.WriteString( "\n " )
|
|
for _, route := range *b.Routes {
|
|
utils.WriteMDv2Text( &sb, route.RouteId )
|
|
if route.Direction == "O" {
|
|
sb.WriteString( "↑" )
|
|
} else if route.Direction == "I" {
|
|
sb.WriteString( "↓" )
|
|
}
|
|
if route.ServiceType != "1" {
|
|
utils.WriteMDv2Text( &sb, utils.ToPower( route.ServiceType ) )
|
|
}
|
|
sb.WriteString( " " )
|
|
}
|
|
sb.WriteString( "\n" )
|
|
}
|
|
}
|
|
fmt.Print( this.Query.Key )
|
|
} else {
|
|
}
|
|
|
|
return sb.String(), nil
|
|
}
|