Repository navigation
Fix: URL-encode credentials in connectToNzbGet() to handle special characters - #10
Merged
Merged
Conversation
…aracters Add: tests for URL-encoded credentials with special and normal characters
dnzbk
self-requested a review
October 12, 2026 04:14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
connectToNzbGet()to URL-encode credentials before embedding them in the XML-RPC URL. Previously, special URL characters (@,#,%,$) inControlPasswordwould corrupt the URL and crash the script withsocket.gaierror: [Errno 11001] getaddrinfo failed.# TODO: encode username and password in URL-formatcomment noting this needed to be fixed.The problem
Special characters in the password corrupt the URL structure:
@separates credentials from host -> password spills into host/port position#starts the URL fragment -> everything after#is discarded, text before#becomes the hostname%is interpreted as a percent-encoding prefixThe fix
Testing
test_download_another_release_special_chars_password- integration test running the full script end-to-end with a password containing@,#,%,$test_connectToNzbGet_encodes_special_chars- unit test verifying URL-breaking characters are percent-encoded in the XML-RPC URLtest_connectToNzbGet_normal_password- happy-path unit test verifying alphanumeric credentials produce a valid URL unchangedtest_downlaod_another_release(withTestPassword) serves as the integration happy-path test