33 lines
723 B
Go
33 lines
723 B
Go
package cjlookup
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net/url"
|
|
|
|
"golang.org/x/text/encoding/traditionalchinese"
|
|
)
|
|
|
|
var CUHARTS_FACE = "[%s](https://humanum.arts.cuhk.edu.hk/Lexis/lexi-can/search.php?q=%s)"
|
|
var ZDIC_FACE = "[%s](https://www.zdic.net/hans/%s)"
|
|
|
|
func getCUHARTSUrlForChar(c string) string {
|
|
b, err := Big5UrlParam(c)
|
|
if err != nil {
|
|
log.Printf("Failed to encode:", c, err)
|
|
return fmt.Sprintf(ZDIC_FACE, c, c)
|
|
}
|
|
return fmt.Sprintf(CUHARTS_FACE, c, b)
|
|
}
|
|
|
|
func Big5UrlParam(input string) (string, error) {
|
|
enc := traditionalchinese.Big5.NewEncoder()
|
|
encodedBytes, err := enc.Bytes([]byte(input))
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
urlEncoded := url.PathEscape(string(encodedBytes))
|
|
return urlEncoded, nil
|
|
}
|