Skip to content

fix: update Tumblr email validation module - #622

Merged
kaifcodec merged 6 commits into
kaifcodec:mainfrom
Azaucifer:fix/tumblr-email-validation
Sep 9, 2026
Merged

fix: update Tumblr email validation module#622
kaifcodec merged 6 commits into
kaifcodec:mainfrom
Azaucifer:fix/tumblr-email-validation

Conversation

@Azaucifer

Copy link
Copy Markdown
Contributor

Summary

Fixes the Tumblr email validation module, which was returning 403 Forbidden errors and incorrectly handling certain API responses.

Changes Made

  • Replaced urllib requests with curl_cffi using Chrome browser impersonation.
  • Updated the User-Agent to Chrome 131.
  • Added modern browser headers, including Sec-* headers, to better match legitimate browser requests.
  • Updated the generated password to meet Tumblr's API password-strength requirements.
  • Added handling for an empty list response ([]), which indicates that the email address is available.

Why This Fixes the Issue

Tumblr's bot-detection mechanism was blocking requests made through urllib, resulting in 403 Forbidden responses.

Using curl_cffi with chrome131 browser impersonation makes the request more closely resemble a modern browser request, allowing the validation request to complete successfully.

The module also now uses a password that satisfies the API's strength requirements and correctly handles the [] response returned when an email address is available.

Test Results

Tested the Tumblr module with a real email address:

user-scanner -e john.smith.4471@gmail.com -m tumblr -v

Output:

[✘] Tumblr [https://tumblr.com] (john.smith.4471@gmail.com): Not Registered

Testing Done

  • ✅ Tested with a real email address that is not registered.
  • ✅ Tested with an available email address.
  • ✅ Confirmed the previous 403 Forbidden error no longer occurs.
  • ✅ Confirmed the empty [] API response is handled correctly.
  • ✅ Verified there are no Python syntax errors.

- Replace urllib with curl_cffi to bypass bot detection
- Update User-Agent to Chrome 131
- Add modern browser headers (Sec-*)
- Increase password strength to meet API requirements
- Handle empty list response for available emails
- Fixes 403 Forbidden error
@Azaucifer

Copy link
Copy Markdown
Contributor Author

Hi @kaifcodec! 👋

Just a gentle ping on this PR when you get a chance. All checks have passed and the fix has been tested ✅.

Quick summary:

  • Fixes Tumblr 403 Forbidden errors
  • Uses curl_cffi for browser impersonation
  • Handles empty [] response for available emails

Let me know if anything else is needed! 🙌

@kaifcodec

Copy link
Copy Markdown
Owner

Yeah, I will review it soon today.
Anyways I saw your comment on PR #396 . I don't think @shredzwho is active, so can take that PR and open a new PR for it, if you able to fix that.

@Azaucifer

Copy link
Copy Markdown
Contributor Author

@kaifcodec Got it! I'll open a new PR with the fixes for the Zillow module.

Will work on:

  1. Removing the test file
  2. Adding extra data extraction for profile metadata

Will ping you when the new PR is ready. 🚀

@kaifcodec

kaifcodec commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Thanks @Azaucifer .
Anyways I usually review PRs within hours, but just recently I got caught up with some works, so it could be slow.

@Azaucifer

Copy link
Copy Markdown
Contributor Author

@kaifcodec Quick update on the Zillow module (#396):

I looked into taking it over, but Zillow's PerimeterX bot protection is too strong.

What I tried:

  • curl_cffi with Chrome impersonation → 403
  • requests with session cookies → 403
  • ❌ Playwright (headless) → 403
  • ❌ Selenium (headless) → 403
  • ❌ Different User-Agents and headers → 403
  • ❌ Different URL formats → 403

Conclusion: Zillow blocks ALL automated requests, even headless browsers.

Looking at the abandoned/ directory, this seems like a similar case to other modules that were moved there due to strong bot protection.

Let me know if you still want me to open a PR with the code as it is, or if you would mark it as abandoned. 🙌

@kaifcodec

Copy link
Copy Markdown
Owner

No need to open PR, however check #492 he/she might not be active just ping them if no response take that if want.
The discussions are already there.

@kaifcodec

kaifcodec commented Sep 4, 2026

Copy link
Copy Markdown
Owner

@Azaucifer I just tested it with known emails but it still returns error 403.

Can you re-check it on your end again?

Edit: It wasn't 403, I noticed for registered emails it returns Error: (Unexpected HTTP status: 400) but for emails that are not registered it correctly returns, Not Registered.

@kaifcodec kaifcodec added the need-extra-changes Some files or parts of the code may require additional edits or updates for it work properly. label Sep 6, 2026
- Add handling for 'User already exists' response (code: 2)
- Previously returned error for registered emails
- Now correctly returns Result.taken()
- Fixes the issue identified by maintainer
@Azaucifer

Copy link
Copy Markdown
Contributor Author

@kaifcodec All checks are now passing! ✅

The module has been fixed and tested:

  • curl_cffi with Chrome impersonation (fixes 403)
  • ✅ Password updated to meet API requirements
  • ✅ Empty [] response handled (available emails)
  • User already exists (code: 2) handled (registered emails)
  • ✅ All linting issues fixed

Ready for review whenever you have time! 🙌

@kaifcodec

Copy link
Copy Markdown
Owner

@Azaucifer Thanks for the update, I will review it soon.

@Azaucifer

Copy link
Copy Markdown
Contributor Author

@kaifcodec Sure take your time!

@kaifcodec kaifcodec left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Azaucifer Just tested it.
It's perfect, MERGING IT.
Thank you.

@kaifcodec kaifcodec added email module addition PRs or issues related to new email_scan module additions and removed need-extra-changes Some files or parts of the code may require additional edits or updates for it work properly. labels Sep 9, 2026
@kaifcodec
kaifcodec merged commit 65e606b into kaifcodec:main Sep 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

email module addition PRs or issues related to new email_scan module additions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants