commit b251e35be4de4b0fdeeeb5924404326daba278c7
| author | 斟酌 鵬兄 <tgckpg@gmail.com> |
| date | 2022-09-16T22:42:49Z |
| subject | Added direction notes |
commit b251e35be4de4b0fdeeeb5924404326daba278c7
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date: 2022-09-16T22:42:49Z
Added direction notes
---
datasources/kmb/QueryResult.go | 11 +++++++++++
datasources/kmb/query_test.go | 13 ++++++++++++-
query/query.go | 11 +++++++++--
utils/env.go | 6 +++++-
utils/shortcuts.go | 7 +++++++
5 files changed, 44 insertions(+), 4 deletions(-)
diff --git a/datasources/kmb/QueryResult.go b/datasources/kmb/QueryResult.go
index 48ecce3..8217bdd 100644
--- a/datasources/kmb/QueryResult.go
+++ b/datasources/kmb/QueryResult.go
@@ -1,6 +1,7 @@
package kmb
import (
+ "fmt"
"strings"
query "github.com/tgckpg/golifehk/query"
@@ -36,11 +37,21 @@ func ( this *QueryResult ) Message() ( string, error ) {
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
diff --git a/datasources/kmb/query_test.go b/datasources/kmb/query_test.go
index 08250b1..e99628b 100644
--- a/datasources/kmb/query_test.go
+++ b/datasources/kmb/query_test.go
@@ -6,5 +6,16 @@ import (
)
func TestQuerySchedule( t *testing.T ) {
- fmt.Print( Query( "zh", "大欖" ).Message() )
+ qo := Query( "zh-Hant", "68X" )
+ mesg, err := qo.Message()
+ if err != nil {
+ t.Errorf( "Unexpected Error: %s", err )
+ }
+ fmt.Println( mesg )
+
+ qo = Query( "zh-Hant", "K66 朗屏" )
+ mesg, err = qo.Message()
+ if err == nil {
+ t.Errorf( "Expected Error: %s, got \"\" instead", mesg )
+ }
}
diff --git a/query/query.go b/query/query.go
index cdfa05d..640744b 100644
--- a/query/query.go
+++ b/query/query.go
@@ -58,14 +58,21 @@ func Parse( line string, entries *[] ISearchable ) ( *QueryObject, error ) {
return &QueryObject{ Key: Key, Results: &matches, SearchTerms: &terms }, nil
} else if 0 < len( terms ) {
for _, entry := range *entries {
+ anyFailed := false
for _, term := range terms {
if term.IsKey {
continue
}
- if ( Key == "" || Key == *entry.GetKey() ) && entry.Test( term.Value ) {
- matches = append( matches, entry )
+
+ if !( ( Key == "" || Key == *entry.GetKey() ) && entry.Test( term.Value ) ) {
+ anyFailed = true
+ break
}
}
+
+ if !anyFailed {
+ matches = append( matches, entry )
+ }
}
return &QueryObject{ Key: Key, Results: &matches, SearchTerms: &terms }, nil
}
diff --git a/utils/env.go b/utils/env.go
index 85aa0c0..f563748 100644
--- a/utils/env.go
+++ b/utils/env.go
@@ -9,4 +9,8 @@ var WORKDIR string = TryGetEnv( "GOLIFEHK_WORKDIR", filepath.Join( os.TempDir(),
var BOM string = bytes.NewBuffer([]byte{ 0xEF, 0xBB, 0xBF }).String()
-const KEY_CHARS string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-"
+var POWER_NUMBERS map[string] string = map[string] string {
+ "0": "⁰", "1": "¹", "2": "²", "3": "³",
+ "4": "⁴", "5": "⁵", "6": "⁶", "7": "⁷",
+ "8": "⁸", "9": "⁹",
+}
diff --git a/utils/shortcuts.go b/utils/shortcuts.go
index 23995f4..bb9b23b 100644
--- a/utils/shortcuts.go
+++ b/utils/shortcuts.go
@@ -16,6 +16,13 @@ func WriteMDv2Text( sb *strings.Builder, t string ) {
sb.WriteString( t )
}
+func ToPower( t string ) string {
+ for s, r := range POWER_NUMBERS {
+ t = strings.ReplaceAll( t, s, r )
+ }
+ return t
+}
+
func TryGetEnv[T any]( name string, fallback T ) T {
v := os.Getenv( name )