Files
Leonid Pershin f72f08a7bc Enhance proxy handling and error reporting in collection process
- Introduced a `Via` field in `ParseError` to indicate the proxy address used during requests, improving clarity on error contexts.
- Updated `ProxyPool` to prioritize confirmed live proxies while available, ensuring more reliable proxy selection and reducing connection timeouts.
- Implemented fallback logic to allow the use of unconfirmed proxies when no confirmed ones are available, preventing collection stalls.
- Adjusted logging in `CollectLogEntryViewModel` to include proxy details, enhancing error visibility for users.
- Added unit tests to verify new proxy selection logic and ensure correct behavior under various conditions.

These changes improve the robustness of the proxy management system and enhance the overall user experience by providing clearer error messages and more efficient proxy usage.
2026-08-15 14:33:13 +03:00

87 lines
6.0 KiB
Plaintext

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.ImgTestService", "test-service\AvParser.ImgTestService.csproj", "{4BECAB72-2AD3-334F-64E9-3DF43533A0F0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.Core", "src\AvParser.Core\AvParser.Core.csproj", "{B7028FF0-1304-5BC5-3203-0FC9073194AB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.Desktop", "src\AvParser.Desktop\AvParser.Desktop.csproj", "{8E2E63A9-23C4-98AB-CE2E-43A5189D8521}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.Infrastructure", "src\AvParser.Infrastructure\AvParser.Infrastructure.csproj", "{68E63369-51CA-4210-B6BB-7C91620DCDAB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.UI", "src\AvParser.UI\AvParser.UI.csproj", "{09558738-571C-66F2-2CFB-185FD664B97A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.Core.Tests", "tests\AvParser.Core.Tests\AvParser.Core.Tests.csproj", "{FC2F99A4-60EA-A477-0C24-C3E2EEE0111C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.Infrastructure.Tests", "tests\AvParser.Infrastructure.Tests\AvParser.Infrastructure.Tests.csproj", "{FBDCADBE-E06E-4FC6-E99E-C871F5908052}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.UI.HeadlessTests", "tests\AvParser.UI.HeadlessTests\AvParser.UI.HeadlessTests.csproj", "{92DA8927-D3BD-695A-BD6D-EB6F06290D35}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvParser.UI.Tests", "tests\AvParser.UI.Tests\AvParser.UI.Tests.csproj", "{710D3D45-195B-729D-3B2D-2371A9F34C8C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4BECAB72-2AD3-334F-64E9-3DF43533A0F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4BECAB72-2AD3-334F-64E9-3DF43533A0F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4BECAB72-2AD3-334F-64E9-3DF43533A0F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4BECAB72-2AD3-334F-64E9-3DF43533A0F0}.Release|Any CPU.Build.0 = Release|Any CPU
{B7028FF0-1304-5BC5-3203-0FC9073194AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B7028FF0-1304-5BC5-3203-0FC9073194AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B7028FF0-1304-5BC5-3203-0FC9073194AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B7028FF0-1304-5BC5-3203-0FC9073194AB}.Release|Any CPU.Build.0 = Release|Any CPU
{8E2E63A9-23C4-98AB-CE2E-43A5189D8521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E2E63A9-23C4-98AB-CE2E-43A5189D8521}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E2E63A9-23C4-98AB-CE2E-43A5189D8521}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E2E63A9-23C4-98AB-CE2E-43A5189D8521}.Release|Any CPU.Build.0 = Release|Any CPU
{68E63369-51CA-4210-B6BB-7C91620DCDAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68E63369-51CA-4210-B6BB-7C91620DCDAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68E63369-51CA-4210-B6BB-7C91620DCDAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68E63369-51CA-4210-B6BB-7C91620DCDAB}.Release|Any CPU.Build.0 = Release|Any CPU
{09558738-571C-66F2-2CFB-185FD664B97A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09558738-571C-66F2-2CFB-185FD664B97A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09558738-571C-66F2-2CFB-185FD664B97A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09558738-571C-66F2-2CFB-185FD664B97A}.Release|Any CPU.Build.0 = Release|Any CPU
{FC2F99A4-60EA-A477-0C24-C3E2EEE0111C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC2F99A4-60EA-A477-0C24-C3E2EEE0111C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC2F99A4-60EA-A477-0C24-C3E2EEE0111C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC2F99A4-60EA-A477-0C24-C3E2EEE0111C}.Release|Any CPU.Build.0 = Release|Any CPU
{FBDCADBE-E06E-4FC6-E99E-C871F5908052}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FBDCADBE-E06E-4FC6-E99E-C871F5908052}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FBDCADBE-E06E-4FC6-E99E-C871F5908052}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBDCADBE-E06E-4FC6-E99E-C871F5908052}.Release|Any CPU.Build.0 = Release|Any CPU
{92DA8927-D3BD-695A-BD6D-EB6F06290D35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{92DA8927-D3BD-695A-BD6D-EB6F06290D35}.Debug|Any CPU.Build.0 = Debug|Any CPU
{92DA8927-D3BD-695A-BD6D-EB6F06290D35}.Release|Any CPU.ActiveCfg = Release|Any CPU
{92DA8927-D3BD-695A-BD6D-EB6F06290D35}.Release|Any CPU.Build.0 = Release|Any CPU
{710D3D45-195B-729D-3B2D-2371A9F34C8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{710D3D45-195B-729D-3B2D-2371A9F34C8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{710D3D45-195B-729D-3B2D-2371A9F34C8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{710D3D45-195B-729D-3B2D-2371A9F34C8C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{B7028FF0-1304-5BC5-3203-0FC9073194AB} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{8E2E63A9-23C4-98AB-CE2E-43A5189D8521} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{68E63369-51CA-4210-B6BB-7C91620DCDAB} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{09558738-571C-66F2-2CFB-185FD664B97A} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{FC2F99A4-60EA-A477-0C24-C3E2EEE0111C} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{FBDCADBE-E06E-4FC6-E99E-C871F5908052} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{92DA8927-D3BD-695A-BD6D-EB6F06290D35} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{710D3D45-195B-729D-3B2D-2371A9F34C8C} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {464F43C0-BBD1-48AC-9C7E-383262B8A830}
EndGlobalSection
EndGlobal