Skip to content

feat: add Motherless email and username scan modules#423

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

feat: add Motherless email and username scan modules#423
kaifcodec merged 2 commits into
kaifcodec:mainfrom
brunolm:feat/add-motherless-module

Conversation

@brunolm

@brunolm brunolm commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

What

Adds Motherless to both scan modes — an email module and a username module.

Note: the legacy motherless.com domain no longer resolves (NXDOMAIN). These modules target the site's current domain, motherless.xxx.

How it works

Both use the registration form's field-availability endpoints (single unauthenticated POST each, no Turnstile required) which return a small HTML snippet:

EmailPOST /register/checkemail (body: email):

Response Result
class="available" "email address is available" Not Registered
class="not-available" "already used" Registered
class="not-available" "Invalid Host." Error (rejected)

UsernamePOST /register/checkusername (body: username):

Response Result
class="available" "username is available" Not Found
class="not-available" "Username not available." Found
class="not-available" "Username is invalid." Error (bad format)

Both key off the not-available/available response class, with an "invalid" guard so rejected input isn't misreported as a hit. The username module's user-facing show_url points at the profile page /m/{user}.

Notes

  • These field-check endpoints are not behind the registration Turnstile, so a single request suffices — no cookie seeding needed.
  • Signals are explicit ("already used" / "not available"), unlike the Aylo sites' ambiguous "requirements" heuristic.
  • MailAccess's Sherlock list has a stale Motherless entry pointing at the dead .com domain; holehe has none.

Testing

  • Verified live against motherless.xxx: brunolm7@gmail.com → Registered and brunolm → Found; throwaway email/username → Not Registered / Not Found.
  • pytest tests/: all pass except 2 pre-existing Windows chmod(0) no-op tests, unrelated to this change.

Add email-based check via /register/checkemail (email_scan/adult) and a
username check via /register/checkusername (user_scan/adult), both using
the site's field-availability endpoints on the current motherless.xxx
domain. Hits key off the not-available/available response class, with an
"invalid" guard separating rejected input from real matches.
@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 checkusername endpoint only reports availability, so on a hit fetch the
public member page and capture every field it renders via
Result.taken(extra=...): the profile-stats block (joined, last seen, profile
views, sexuality, favorite porn, website, upload/friend/subscriber counts,
etc.), the member-info block (gender, relationship, location) and the avatar.

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

LGTM.

@kaifcodec
kaifcodec merged commit c0539ca 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