Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions user_scanner/email_scan/adult/fapfolder.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import httpx
from user_scanner.core.result import Result


async def _check(email: str) -> Result:
url = "https://fapfolder.club/includes/ajax/core/signup.php"
show_url = "https://fapfolder.club"

payload = {
'username': "l0v3_d0n0t_3xist",
'email': email,
'email2': email,
'password': "1",
'field1': "",
'privacy_agree': "on"
}

headers = {
'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36",
'Accept': "application/json, text/javascript, */*; q=0.01",
'Accept-Encoding': "identity",
'sec-ch-ua-platform': '"Android"',
'x-requested-with': "XMLHttpRequest",
'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
'sec-ch-ua-mobile': "?1",
'origin': "https://fapfolder.club",
'sec-fetch-site': "same-origin",
'sec-fetch-mode': "cors",
'sec-fetch-dest': "empty",
'referer': "https://fapfolder.club/signup",
'accept-language': "en-US,en;q=0.9"
}

try:
async with httpx.AsyncClient(timeout=7.0) as client:
response = await client.post(url, data=payload, headers=headers)

if response.status_code == 403:
return Result.error("403")

data = response.json()
message = data.get("message", "")

if "belongs to an existing account" in message:
return Result.taken(url=show_url)

if "password must be at least" in message:
return Result.available(url=show_url)

return Result.error(f"Unexpected: {message[:50]}")

except Exception as e:
return Result.error(e)


async def validate_fapfolder(email: str) -> Result:
return await _check(email)
89 changes: 89 additions & 0 deletions user_scanner/email_scan/adult/lovescape.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import httpx
import json
from user_scanner.core.result import Result

async def _check(email: str) -> Result:
url = "https://lovescape.com/api/front/auth/signup"
show_url = "https://lovescape.com"

payload = {
"username": "W3ak3n3dCut3n3ss3674",
"email": email,
"password": "igy8868yiyy",
"recaptcha": "",
"fingerprint": "",
"modelName": "",
"isPwa": False,
"affiliateId": "",
"trafficSource": "",
"isUnThrottled": False,
"hasActionParam": False,
"source": "page_signup",
"device": "mobile",
"deviceName": "Android Mobile",
"browser": "Chrome",
"os": "Android",
"locale": "en",
"authType": "native",
"ampl": {
"ep": {
"source": "page_signup",
"startSessionUrl": "/create-ai-sex-girlfriend/style",
"firstVisitedUrl": "/create-ai-sex-girlfriend/style",
"referrerHost": "hakurei.us-cdnbo.org",
"referrerId": "us-cdnbo",
"signupUrl": "/signup",
"page": "signup",
"project": "Lovescape",
"isCookieAccepted": True,
"displayMode": "browser"
},
"up": {
"source": "page_signup",
"startSessionUrl": "/create-ai-sex-girlfriend/style",
"firstVisitedUrl": "/create-ai-sex-girlfriend/style",
"referrerHost": "hakurei.us-cdnbo.org",
"referrerId": "us-cdnbo",
"signupUrl": "/signup"
},
"device_id": "",
"session_id": 1774884558258
}
}

headers = {
'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36",
'Accept': "application/json",
'Accept-Encoding': "identity",
'Content-Type': "text/plain;charset=UTF-8",
'sec-ch-ua-platform': '"Android"',
'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
'sec-ch-ua-mobile': "?1",
'Origin': "https://lovescape.com",
'Referer': "https://lovescape.com/signup",
'Priority': "u=1, i"
}

try:
async with httpx.AsyncClient(timeout=7.0) as client:
response = await client.post(url, content=json.dumps(payload), headers=headers)

if response.status_code == 403:
return Result.error("403")

data = response.json()
error_msg = data.get("error", "")

if "Email is already used" in error_msg:
return Result.taken(url=show_url)

if "recaptcha is required" in error_msg:
return Result.available(url=show_url)

return Result.error(f"Unexpected: {error_msg}")

except Exception as e:
return Result.error(e)

async def validate_lovescape(email: str) -> Result:
return await _check(email)
51 changes: 51 additions & 0 deletions user_scanner/email_scan/community/nextdoor.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import httpx
from user_scanner.core.result import Result

async def _check(email: str) -> Result:
url = "https://auth.nextdoor.com/v2/token"
show_url = "https://nextdoor.com"

payload = {
'scope': "openid",
'client_id': "NEXTDOOR-WEB",
'login_type': "basic",
'grant_type': "password",
'username': email,
'password': "vhj87uyguu77"
}

headers = {
'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36",
'Accept': "application/json, text/plain, */*",
'Accept-Encoding': "identity",
'sec-ch-ua-platform': '"Android"',
'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
'sec-ch-ua-mobile': "?1",
'Origin': "https://nextdoor.com",
'Referer': "https://nextdoor.com/",
'Priority': "u=1, i"
}

try:
async with httpx.AsyncClient(timeout=6.0) as client:
response = await client.post(url, data=payload, headers=headers)

if response.status_code == 403:
return Result.error("403")

data = response.json()
error = data.get("error", "")

if error == "invalid_grant":
return Result.taken(url=show_url)

if error == "not_found":
return Result.available(url=show_url)

return Result.error(f"Unexpected: {error}")

except Exception as e:
return Result.error(e)

async def validate_nextdoor(email: str) -> Result:
return await _check(email)
Loading