Skip to content

feat: add Chaturbate username scan module#424

Merged
kaifcodec merged 2 commits into
kaifcodec:mainfrom
brunolm:feat/add-chaturbate-module
Jul 19, 2026
Merged

feat: add Chaturbate username scan module#424
kaifcodec merged 2 commits into
kaifcodec:mainfrom
brunolm:feat/add-chaturbate-module

Conversation

@brunolm

@brunolm brunolm commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

What

Adds a username-based Chaturbate check to user_scan/adult/.

How it works

Chaturbate profile pages sit behind an age gate, so this uses the registration form's field-validation endpoint instead (an async module, since it needs the Django CSRF two-request flow):

  1. GET /accounts/register/ → extract csrfmiddlewaretoken (+ the csrftoken cookie).
  2. POST /accounts/ajax_validate_register_form/ with username.
Response Result
errors.username = "Username is already taken." Found
no username error Not Found
username format error (length / characters) Error

Field validation runs before the reCAPTCHA check, so no captcha token is needed. The user-facing show_url points at the profile page /{user}/.

Notes

  • Username-only. Email checking is not viable: the same endpoint returns only email format/deliverability errors ("Email is invalid", "Invalid email, please confirm") and never an already-registered signal, so email existence can't be enumerated. Password reset is behind the age gate.
  • Sherlock and WhatsMyName both list Chaturbate as a username site (/{user}/ profile), but that path now redirects to the age gate; the register-validate endpoint is a cleaner, explicit signal.
  • holehe has no Chaturbate checker.

Testing

  • Verified live: cute18cute, brunolm7 → Found; random valid names → Not Found; too-short names → Error.
  • pytest tests/: all pass except 2 pre-existing Windows chmod(0) no-op tests, unrelated to this change.

Add username-based Chaturbate check under user_scan/adult via the
registration form's ajax_validate_register_form endpoint: an "already
taken" username error means the account exists, no error means available.
Email checking is not viable (the endpoint returns only email format/
deliverability errors, never an already-registered signal).
@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 Jul 19, 2026
The register check only reports availability, so on a hit fetch the public
biocontext API and capture real name, location, age, gender, follower count,
languages, bio and social links via Result.taken(extra=...). The biocontext
endpoint needs a browser User-Agent or it serves an HTML challenge instead of
JSON, so the same UA used for the check is passed through.

@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.

Perfect!

@kaifcodec
kaifcodec merged commit 92c9bfe into kaifcodec:main Jul 19, 2026
2 checks passed
@kaifcodec kaifcodec added the user module addition PRs or issues related to new user_scan module additions label Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

need-extra-changes Some files or parts of the code may require additional edits or updates for it work properly. user module addition PRs or issues related to new user_scan module additions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants