penguin/golifehk

@golifehk bot in Telegram

datasources/mtr/bus/QueryResult.go

raw ยท 1033 bytes

package bus

import (
    "fmt"
    "strings"
)

type QueryResult struct {
    Schedules *map[BusStop] *BusStopBuses
    Lang string
    Error error
}

func ( result QueryResult ) Message() string {

    if result.Error != nil {
        return fmt.Sprintf( "%s", result.Error )
    }

    sb := strings.Builder{}

    for busStop, buses := range *result.Schedules {

        if busStop.PrevStop() != nil {
            sb.WriteString( (*busStop.PrevStop().Name)[ result.Lang ] )
            sb.WriteString( " > *" )
        }

        sb.WriteString( (*busStop.Name)[ result.Lang ] )
        sb.WriteString( "*" )

        if busStop.NextStop() != nil {
            sb.WriteString( " > " )
            sb.WriteString( (*busStop.NextStop().Name)[ result.Lang ] )
        }

        sb.WriteString( "\n" )
        for _, bus := range buses.Buses {
            sb.WriteString( "  * " )
            sb.WriteString( bus.ETAText )
            sb.WriteString( "\n" )
        }

        sb.WriteString( "\n" )
    }

    return sb.String()
}