diff --git a/.env.example b/.env.example index 233bb25..d3d2147 100644 --- a/.env.example +++ b/.env.example @@ -33,9 +33,6 @@ WHATSAPP_DATASTORE_URI=file:dbs/WhatsApp.db?_pragma=foreign_keys(1) WHATSAPP_CLIENT_PROXY_URL="" -WHATSAPP_USER_AGENT_NAME="Go WhatsApp Multi-Device REST" -WHATSAPP_USER_AGENT_TYPE="chrome" - WHATSAPP_MEDIA_IMAGE_COMPRESSION=true WHATSAPP_MEDIA_IMAGE_CONVERT_WEBP=true diff --git a/go.mod b/go.mod index b7838f9..d89abc5 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,10 @@ go 1.19 require ( github.com/PuerkitoBio/goquery v1.8.1 github.com/SporkHubr/echo-http-cache v0.0.0-20200706100054-1d7ae9f38029 - github.com/go-playground/validator/v10 v10.15.5 + github.com/go-playground/validator/v10 v10.16.0 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/joho/godotenv v1.5.1 - github.com/labstack/echo/v4 v4.11.2 + github.com/labstack/echo/v4 v4.11.3 github.com/lib/pq v1.10.9 github.com/nickalie/go-webpbin v0.0.0-20220110095747-f10016bf2dc1 github.com/robfig/cron/v3 v3.0.1 @@ -17,7 +17,7 @@ require ( github.com/sunshineplan/imgconv v1.1.5 github.com/swaggo/echo-swagger v1.4.1 github.com/swaggo/swag v1.16.2 - go.mau.fi/whatsmeow v0.0.0-20231016102050-3a30a129b626 + go.mau.fi/whatsmeow v0.0.0-20231110185952-cfd1bea9628a google.golang.org/protobuf v1.31.0 modernc.org/sqlite v1.17.0 ) diff --git a/go.sum b/go.sum index 9ef9f4d..b6770cc 100644 --- a/go.sum +++ b/go.sum @@ -65,8 +65,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= -github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqRRkz6M78GuJAfGE= +github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/cache/v8 v8.0.0-beta.11/go.mod h1:4wxD/neK+Uw+SteOR+AXtlyQYMBlI/D1u7UahfDCBAI= github.com/go-redis/redis/v8 v8.0.0-beta.2/go.mod h1:o1M7JtsgfDYyv3o+gBn/jJ1LkqpnCrmil7PSppZGBak= github.com/go-redis/redis/v8 v8.0.0-beta.5/go.mod h1:Mm9EH/5UMRx680UIryN6rd5XFn/L7zORPqLV+1D5thQ= @@ -127,8 +127,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labstack/echo/v4 v4.1.16/go.mod h1:awO+5TzAjvL8XpibdsfXxPgHr+orhtXZJZIQCVjogKI= -github.com/labstack/echo/v4 v4.11.2 h1:T+cTLQxWCDfqDEoydYm5kCobjmHwOwcv4OJAPHilmdE= -github.com/labstack/echo/v4 v4.11.2/go.mod h1:UcGuQ8V6ZNRmSweBIJkPvGfwCMIlFmiqrPqiEBfPYws= +github.com/labstack/echo/v4 v4.11.3 h1:Upyu3olaqSHkCjs1EJJwQ3WId8b8b1hxbogyommKktM= +github.com/labstack/echo/v4 v4.11.3/go.mod h1:UcGuQ8V6ZNRmSweBIJkPvGfwCMIlFmiqrPqiEBfPYws= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= @@ -244,8 +244,8 @@ go.mau.fi/libsignal v0.1.0 h1:vAKI/nJ5tMhdzke4cTK1fb0idJzz1JuEIpmjprueC+c= go.mau.fi/libsignal v0.1.0/go.mod h1:R8ovrTezxtUNzCQE5PH30StOQWWeBskBsWE55vMfY9I= go.mau.fi/util v0.2.0 h1:AMGBEdg9Ya/smb/09dljo9wBwKr432EpfjDWF7aFQg0= go.mau.fi/util v0.2.0/go.mod h1:AxuJUMCxpzgJ5eV9JbPWKRH8aAJJidxetNdUj7qcb84= -go.mau.fi/whatsmeow v0.0.0-20231016102050-3a30a129b626 h1:uqurXYTURlhbpEHldNqP8EC15EIP1zWuUABRL2Xqkbs= -go.mau.fi/whatsmeow v0.0.0-20231016102050-3a30a129b626/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= +go.mau.fi/whatsmeow v0.0.0-20231110185952-cfd1bea9628a h1:nipJj69icB7lSXZ64rsfzthzw9r2cNiY4uhyteEHY5o= +go.mau.fi/whatsmeow v0.0.0-20231110185952-cfd1bea9628a/go.mod h1:u557d2vph8xcLrk3CKTBknUHoB6icUpqazA4w+binRU= go.opentelemetry.io/otel v0.5.0/go.mod h1:jzBIgIzK43Iu1BpDAXwqOd6UPsSAk+ewVZ5ofSXw4Ek= go.opentelemetry.io/otel v0.6.0/go.mod h1:jzBIgIzK43Iu1BpDAXwqOd6UPsSAk+ewVZ5ofSXw4Ek= go.opentelemetry.io/otel v0.7.0/go.mod h1:aZMyHG5TqDOXEgH2tyLiXSUKly1jT3yqE9PmrzIeCdo= diff --git a/pkg/whatsapp/whatsapp.go b/pkg/whatsapp/whatsapp.go index 77f6086..e9bb4a3 100644 --- a/pkg/whatsapp/whatsapp.go +++ b/pkg/whatsapp/whatsapp.go @@ -32,8 +32,6 @@ var WhatsAppClient = make(map[string]*whatsmeow.Client) var ( WhatsAppClientProxyURL string - WhatsAppUserAgentName string - WhatsAppUserAgentType string ) func init() { @@ -56,16 +54,6 @@ func init() { WhatsAppClientProxyURL, _ = env.GetEnvString("WHATSAPP_CLIENT_PROXY_URL") - WhatsAppUserAgentName, err = env.GetEnvString("WHATSAPP_USER_AGENT_NAME") - if err != nil { - log.Print(nil).Fatal("Error Parse Environment Variable for WhatsApp Client User Agent Name") - } - - WhatsAppUserAgentType, err = env.GetEnvString("WHATSAPP_USER_AGENT_TYPE") - if err != nil { - log.Print(nil).Fatal("Error Parse Environment Variable for WhatsApp Client User Agent Type") - } - WhatsAppDatastore = datastore } @@ -79,8 +67,8 @@ func WhatsAppInitClient(device *store.Device, jid string) { } // Set Client Properties - store.DeviceProps.Os = proto.String(WhatsAppUserAgentName) - store.DeviceProps.PlatformType = WhatsAppGetUserAgent(WhatsAppUserAgentType).Enum() + store.DeviceProps.Os = proto.String(WhatsAppGetUserOS()) + store.DeviceProps.PlatformType = WhatsAppGetUserAgent("chrome").Enum() store.DeviceProps.RequireFullSync = proto.Bool(false) // Set Client Versions @@ -157,49 +145,14 @@ func WhatsAppGetUserAgent(agentType string) waproto.DeviceProps_PlatformType { } } -func WhatsAppGetPairAgent(agentType string) whatsmeow.PairClientType { - switch strings.ToLower(agentType) { - case "ie": - return whatsmeow.PairClientIE - case "edge": - return whatsmeow.PairClientEdge - case "chrome": - return whatsmeow.PairClientChrome - case "safari": - return whatsmeow.PairClientSafari - case "firefox": - return whatsmeow.PairClientFirefox - case "opera": - return whatsmeow.PairClientOpera - case "uwp": - return whatsmeow.PairClientUWP - default: - return whatsmeow.PairClientOtherWebClient - } -} - -func WhatsAppGetPairName(agentType string) string { - var prefix string - switch agentType { - case "ie": - prefix = "Internet Explorer" - case "edge": - prefix = "Microsoft Edge" - case "uwp": - prefix = "UWP" - default: - prefix = strings.Title(agentType) - } - +func WhatsAppGetUserOS() string { switch runtime.GOOS { case "windows": - return prefix + " (Windows)" - case "darwin": - return prefix + " (macOS)" + return "Windows" case "linux": - return prefix + " (Linux)" + return "Linux" default: - return prefix + " (" + WhatsAppUserAgentName + ")" + return "Mac OS" } } @@ -278,7 +231,7 @@ func WhatsAppLoginPair(jid string) (string, int, error) { } // Request Pairing Code - code, err := WhatsAppClient[jid].PairPhone(jid, true, WhatsAppGetPairAgent(WhatsAppUserAgentType), WhatsAppGetPairName(WhatsAppUserAgentType)) + code, err := WhatsAppClient[jid].PairPhone(jid, true, whatsmeow.PairClientChrome, "Google Chrome ("+WhatsAppGetUserOS()+")") if err != nil { return "", 0, err }