From 825663acde5ac1a863bf1955e0263e6e597e14b0 Mon Sep 17 00:00:00 2001 From: sdvcrx Date: Thu, 19 Aug 2021 14:48:26 +0800 Subject: [PATCH] fix: compatible with new wakatime-cli --- utils/common.go | 2 +- utils/common_test.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/utils/common.go b/utils/common.go index 0bd392f..f873796 100644 --- a/utils/common.go +++ b/utils/common.go @@ -46,7 +46,7 @@ func Add(i, j int) int { } func ParseUserAgent(ua string) (string, string, error) { - re := regexp.MustCompile(`(?iU)^wakatime\/[\d+.]+\s\((\w+)-.*\)\s.+\s([^\/\s]+)-wakatime\/.+$`) + re := regexp.MustCompile(`(?iU)^wakatime\/v?[\d+.]+\s\((\w+)-.*\)\s.+\s([^\/\s]+)-wakatime\/.+$`) groups := re.FindAllStringSubmatch(ua, -1) if len(groups) == 0 || len(groups[0]) != 3 { return "", "", errors.New("failed to parse user agent string") diff --git a/utils/common_test.go b/utils/common_test.go index d1807fc..884d033 100644 --- a/utils/common_test.go +++ b/utils/common_test.go @@ -37,6 +37,12 @@ func TestCommon_ParseUserAgent(t *testing.T) { "", errors.New(""), }, + { + "wakatime/v1.18.11 (linux-5.13.8-200.fc34.x86_64-x86_64) go1.16.7 emacs-wakatime/1.0.2", + "linux", + "emacs", + nil, + }, } for _, test := range tests {