| 147 | } |
| 148 | |
| 149 | func (a *App) subscriptionRequestMetadata() subscriptionRequestMetadata { |
| 150 | settings := config.DefaultConfig().Settings |
| 151 | if a.config != nil { |
| 152 | settings = a.config.GetConfig().Settings |
| 153 | } |
| 154 | info := system.SubscriptionDeviceInfo() |
| 155 | userAgent := strings.TrimSpace(settings.SubscriptionUserAgent) |
| 156 | if userAgent == "" { |
| 157 | platform := strings.TrimSpace(info.Platform) |
| 158 | if platform == "" { |
| 159 | platform = runtime.GOOS |
| 160 | } |
| 161 | uaPlatform := platform |
| 162 | if strings.EqualFold(platform, "windows") { |
| 163 | uaPlatform = "Windows" |
| 164 | } |
| 165 | uaVersion := strings.TrimSpace(info.OSVersion) |
| 166 | if uaVersion == "" { |
| 167 | uaVersion = runtime.GOOS + "_" + runtime.GOARCH |
| 168 | } |
| 169 | userAgent = fmt.Sprintf("ResultV/%s/%s/%s", productVersionFromWailsJSON(), uaPlatform, sanitizeUserAgentSegment(uaVersion)) |
| 170 | } |
| 171 | return subscriptionRequestMetadata{ |
| 172 | UserAgent: userAgent, |
| 173 | Platform: firstNonEmpty(strings.TrimSpace(info.Platform), runtime.GOOS), |
| 174 | OSVersion: firstNonEmpty(strings.TrimSpace(info.OSVersion), runtime.GOOS+"_"+runtime.GOARCH), |
| 175 | Model: firstNonEmpty(strings.TrimSpace(info.Model), runtime.GOOS+"_"+runtime.GOARCH), |
| 176 | SendHWID: settings.EffectiveSubscriptionSendHWID(), |
| 177 | } |
| 178 | } |
| 179 | |
| 180 | func sanitizeUserAgentSegment(s string) string { |
| 181 | s = strings.TrimSpace(s) |