| 318 | } |
| 319 | |
| 320 | void onCheckForUpdateNetworkFinish(const int httpStatusCode, const QString &responseData, const QString &errorData, |
| 321 | UserRequestCallback userRequestCallback) |
| 322 | { |
| 323 | auto logLevel = LOG_LEVEL; |
| 324 | if (logLevel >= LOG_DEBUG) { |
| 325 | obs_log(LOG_DEBUG, |
| 326 | "onCheckForUpdateNetworkFinish(httpStatusCode=%d, responseData='%s', errorData='%s', userRequestCallback=%s)", |
| 327 | httpStatusCode, QT_TO_UTF8(responseData), QT_TO_UTF8(errorData), |
| 328 | userRequestCallback ? "..." : "nullptr"); |
| 329 | } else { |
| 330 | obs_log(LOG_DEBUG, |
| 331 | "onCheckForUpdateNetworkFinish(httpStatusCode=%d, responseData=..., errorData='%s', userRequestCallback=%s)", |
| 332 | httpStatusCode, QT_TO_UTF8(errorData), userRequestCallback ? "..." : "nullptr"); |
| 333 | } |
| 334 | |
| 335 | auto pluginUpdateInfo = PluginUpdateInfo(httpStatusCode, responseData, errorData); |
| 336 | if (!pluginUpdateInfo.errorData.isEmpty()) { |
| 337 | obs_log(LOG_WARNING, |
| 338 | "WARN-417 - Update Check received a non-expected response. httpStatusCode=%d, errorData='%s'; ignoring response", |
| 339 | httpStatusCode, QT_TO_UTF8(pluginUpdateInfo.errorData)); |
| 340 | obs_log(LOG_DEBUG, |
| 341 | "onCheckForUpdateNetworkFinish: Error! httpStatusCode=%d, errorData='%s'; ignoring response", |
| 342 | httpStatusCode, QT_TO_UTF8(pluginUpdateInfo.errorData)); |
| 343 | if (userRequestCallback) { |
| 344 | userRequestCallback(pluginUpdateInfo); |
| 345 | } |
| 346 | return; |
| 347 | } |
| 348 | |
| 349 | obs_log(LOG_DEBUG, "onCheckForUpdateNetworkFinish: Success! httpStatusCode=%d", httpStatusCode); |
| 350 | obs_log(LOG_DEBUG, "onCheckForUpdateNetworkFinish: jsonDocument='%s'", |
| 351 | pluginUpdateInfo.jsonDocument.toJson().constData()); |
| 352 | obs_log(LOG_DEBUG, "onCheckForUpdateNetworkFinish: versionCurrent=%s", |
| 353 | QT_TO_UTF8(pluginUpdateInfo.versionCurrent.toString())); |
| 354 | obs_log(LOG_DEBUG, "onCheckForUpdateNetworkFinish: %sversionLatest=%s", |
| 355 | pluginUpdateInfo.fakeVersionLatest ? "FAKE " : "", |
| 356 | QT_TO_UTF8(pluginUpdateInfo.versionLatest.toString())); |
| 357 | |
| 358 | auto config = Config::Current(); |
| 359 | |
| 360 | auto minAutoUpdateCheckIntervalSeconds = pluginUpdateInfo.minAutoUpdateCheckIntervalSeconds; |
| 361 | config->MinAutoUpdateCheckIntervalSeconds(minAutoUpdateCheckIntervalSeconds); |
| 362 | |
| 363 | auto forceUpdate = Config::UpdateForce; |
| 364 | |
| 365 | if (userRequestCallback) { |
| 366 | // User requested update check ignores SkipUpdateVersion |
| 367 | userRequestCallback(pluginUpdateInfo); |
| 368 | } else { |
| 369 | // Non-user requested update check respects SkipUpdateVersion |
| 370 | auto versionSkip = config->SkipUpdateVersion(); |
| 371 | if (forceUpdate < 1 && pluginUpdateInfo.versionLatest == versionSkip) { |
| 372 | obs_log(LOG_DEBUG, |
| 373 | "onCheckForUpdateNetworkFinish: versionLatest == versionSkip(%s); ignoring update", |
| 374 | QT_TO_UTF8(versionSkip.toString())); |
| 375 | return; |
| 376 | } |
| 377 | } |
no test coverage detected