penguin/golifehk

@golifehk bot in Telegram

datasources/cjlookup/humanumarts.go

raw ยท 723 bytes

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
}