Fixed incorrect humanumarts links

This commit is contained in:
2026-03-02 04:17:00 +08:00
parent 8bd60a58bb
commit a396a381b5
2 changed files with 23 additions and 10 deletions

View File

@@ -27,10 +27,11 @@ func getCUHARTSUrlForChar(c string) string {
func SParams(p string) string {
s1 := "-"
bestMatch := 0
for _, x := range SING_MOU_S1 {
if strings.HasPrefix(p, x) {
if bestMatch < len(x) && strings.HasPrefix(p, x) {
s1 = x
break
bestMatch = len(x)
}
}
@@ -43,15 +44,13 @@ func SParams(p string) string {
}
s2 := ""
bestMatch := 0
bestMatch = 0
for _, x := range WAN_MOU_S2 {
if strings.HasSuffix(strings.TrimSuffix(strings.TrimPrefix(p, s1), s3), x) {
if bestMatch < len(x) {
if bestMatch < len(x) && strings.HasSuffix(strings.TrimSuffix(strings.TrimPrefix(p, s1), s3), x) {
s2 = x
bestMatch = len(x)
}
}
}
return fmt.Sprintf("s1=%s&s2=%s&s3=%s", s1, s2, s3)
}

View File

@@ -10,7 +10,21 @@ func TestCUHARTLinks(t *testing.T) {
t.Errorf("Faild to encode Big5 string: %A7r", err)
}
if SParams("caang4") != "s1=c&s2=aang&s3=4" {
t.Error("Faild to parse s params for: caang4")
expect := "s1=c&s2=aang&s3=4"
actual := SParams("caang4")
if actual != expect {
t.Errorf("SParams failed: expect %s, go %s", expect, actual)
}
expect = "s1=ng&s2=aau&s3=4"
actual = SParams("ngaau4")
if actual != expect {
t.Errorf("SParams failed: expect %s, go %s", expect, actual)
}
expect = "s1=gw&s2=ong&s3=1"
actual = SParams("gwong1")
if actual != expect {
t.Errorf("SParams failed: expect %s, go %s", expect, actual)
}
}