diff --git a/utils/url.go b/utils/url.go index 8d29d91..dea69ec 100644 --- a/utils/url.go +++ b/utils/url.go @@ -36,11 +36,10 @@ func ValidateFolderURL(url string) (string, error) { } func ValidateWikiURL(url string) (string, string, error) { - // reg := regexp.MustCompile("^https://[\\w-.]+/wiki/settings/([a-zA-Z0-9]+)") - reg := regexp.MustCompile(`^(https://[\w-.]+)/wiki/settings/([a-zA-Z0-9]+)$`) + reg := regexp.MustCompile(`^(https://[\w-.]+)/wiki/(?:space|settings)/([a-zA-Z0-9]+)$`) matchResult := reg.FindStringSubmatch(url) if matchResult == nil || len(matchResult) != 3 { - return "", "", errors.Errorf("Invalid feishu/larksuite folder URL pattern") + return "", "", errors.Errorf("Invalid feishu/larksuite wiki URL pattern") } prefixURL := matchResult[1] wikiToken := matchResult[2] diff --git a/utils/url_test.go b/utils/url_test.go index ec28ed5..d2216bb 100644 --- a/utils/url_test.go +++ b/utils/url_test.go @@ -112,6 +112,13 @@ func TestValidWikiURL(t *testing.T) { token: "doccnByZP6puODElAYySJkPIfUb", noErr: true, }, + { + name: "validate larksuite wiki space success", + url: "https://sample.sg.larksuite.com/wiki/space/doccnByZP6puODElAYySJkPIfUb", + prefix: "https://sample.sg.larksuite.com", + token: "doccnByZP6puODElAYySJkPIfUb", + noErr: true, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {