Private/Test-JavlibraryCf.ps1
function Test-JavlibraryCf { param ( [PSObject]$Settings, [PSObject]$CfSession ) $ProgressPreference = 'SilentlyContinue' if (!($CfSession)) { try { Invoke-WebRequest -Uri $Settings.'javlibrary.baseurl' -MaximumRetryCount 0 -Verbose:$false | Out-Null } catch { try { $CfSession = Get-CfSession -cf_chl_2:$Settings.'javlibrary.cookie.cf_chl_2' -cf_chl_prog:$Settings.'javlibrary.cookie.cf_chl_prog' -cf_clearance:$Settings.'javlibrary.cookie.cf_clearance' -UserAgent:$Settings.'javlibrary.browser.useragent' -BaseUrl $Settings.'javlibrary.baseurl' # Testing with the newly created session sometimes fails if there is no wait time Start-Sleep -Seconds 1 Invoke-WebRequest -Uri $Settings.'javlibrary.baseurl' -WebSession $CfSession -UserAgent $CfSession.UserAgent -MaximumRetryCount 0 -Verbose:$false | Out-Null } catch { Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Warning -Message "[$($MyInvocation.MyCommand.Name)] Unable reach Javlibrary, enter JAVLibrary cookies and browser useragent to use the scraper" $CfSession = Get-CfSession -BaseUrl $Settings.'javlibrary.baseurl' # Testing with the newly created session sometimes fails if there is no wait time Start-Sleep -Seconds 1 try { Invoke-WebRequest -Uri $Settings.'javlibrary.baseurl' -WebSession $CfSession -UserAgent $CfSession.UserAgent -MaximumRetryCount 0 -Verbose:$false | Out-Null if ($CfSession) { $originalSettingsContent = Get-Content -Path $SettingsPath $cookies = $CfSession.Cookies.GetCookies($Settings.'javlibrary.baseurl') $cf_clearance = ($cookies | Where-Object { $_.Name -eq 'cf_clearance' }).Value $cf_chl_2 = ($cookies | Where-Object { $_.Name -eq 'cf_chl_2' }).Value $cf_chl_prog = ($cookies | Where-Object { $_.Name -eq 'cf_chl_prog' }).Value $userAgent = $CfSession.UserAgent $settingsContent = $OriginalSettingsContent $settingsContent = $settingsContent -replace '"javlibrary\.cookie\.cf_chl_2": ".*"', "`"javlibrary.cookie.cf_chl_2`": `"$cf_chl_2`"" $settingsContent = $settingsContent -replace '"javlibrary\.cookie\.cf_chl_prog": ".*"', "`"javlibrary.cookie.cf_chl_prog`": `"$cf_chl_prog`"" $settingsContent = $settingsContent -replace '"javlibrary\.cookie\.cf_clearance": ".*"', "`"javlibrary.cookie.cf_clearance`": `"$cf_clearance`"" $settingsContent = $settingsContent -replace '"javlibrary\.browser\.useragent": ".*"', "`"javlibrary.browser.useragent`": `"$userAgent`"" $settingsContent | Out-File -FilePath $SettingsPath Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Warning -Message "[$($MyInvocation.MyCommand.Name)] Replaced Javlibrary settings with updated values in [$SettingsPath]" } } catch { Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Error -Message "[$($MyInvocation.MyCommand.Name)] Unable reach Javlibrary, invalid websession values" } } } } else { try { Invoke-WebRequest -Uri $Settings.'javlibrary.baseurl' -WebSession $CfSession -UserAgent $CfSession.UserAgent -MaximumRetryCount 0 -Verbose:$false | Out-Null } catch { Write-JVLog -Write:$script:JVLogWrite -LogPath $script:JVLogPath -WriteLevel $script:JVLogWriteLevel -Level Error -Message "[$($MyInvocation.MyCommand.Name)] Unable reach Javlibrary, invalid websession values" } } Write-Output $CfSession } |