initial commit

This commit is contained in:
2026-02-14 18:07:55 +01:00
commit 2259ab7e54
8 changed files with 3474 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
node_modules
+88
View File
@@ -0,0 +1,88 @@
# Multi-Site Sign-Up Automation Script
This script automates the process of signing up for multiple websites using a single configuration file. It is designed to be flexible and resilient, using advanced techniques to mimic human behavior.
---
## How It Works
The script reads its configuration from the `config.toml` file. It launches a browser using your real user profile to avoid bot detection, and then iterates through the list of sites you've defined, filling out and submitting the sign-up forms.
---
## Configuration (`config.toml`)
This is the main file you will edit to control the script. It has the following sections:
### 1. `[browser]` Section
This section controls the browser's behavior.
- `userDataDir` (Required): The absolute path to your Chrome/Chromium user profile. This is critical for avoiding bot detection.
- `userAgent` (Optional): A string to make the browser appear as a specific version (e.g., a Windows machine). If left blank, a random user agent is used.
**Example:**
```toml
[browser]
userDataDir = "/home/someone/.config/chromium"
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
```
### 2. `[global_credentials]` Section
Define a default set of credentials here. The script will use these for any site that does not have its own specific credentials defined.
- `username`
- `email`
- `password`
- `age` (or any other custom field)
**Example:**
```toml
[global_credentials]
username = "MyGlobalUsername"
email = "my.global.email@gmail.com"
password = "MyGlobalPassword123!"
age = "28"
```
### 3. `[[sites]]` Blocks
Each site you want to process is defined in its own `[[sites]]` block.
- `name`: A unique name for the site (e.g., "CameraBoys").
- `category`: An organizational tag (e.g., "Social", "Financial").
- `url`: The direct URL to the sign-up page.
- `needsPreSubmitAction`: Set to `true` for sites that have a GDPR/cookie popup. Currently, this is only configured for "CameraBoys".
#### `[sites.locators]` Subsection
This is where you define the form fields for the site. The script will dynamically try to fill **any field you list here**.
- **Easy Mode:** Simply find the element in your browser's developer tools, right-click, "Copy element", and paste the entire HTML tag as the value.
- **Advanced Mode:** You can also use a standard CSS selector.
**Supported Fields:** `username`, `password`, `email`, `confirmEmail`, `age`, or any other custom field.
*Note: For `confirmEmail`, the script will automatically use the `email` value.*
**Example:**
```toml
[sites.locators]
email = '<input id="23510" class="required email" name="23510" type="text">'
confirmEmail = '<input id="confirmEmail" class="email required" name="confirmEmail" type="text">'
age = '#user_age' # You can still use CSS selectors
submit = '<button type="submit">Subscribe</button>'
```
#### `[sites.credentials]` Subsection (Optional)
If a site requires a unique login, you can define it here. This will **override** the `[global_credentials]` for this site only.
**Example:**
```toml
[sites.credentials]
username = "SiteSpecificUser"
email = "site.specific.email@gmail.com"
password = "SitePassword789"
age = "42"
```
+61
View File
@@ -0,0 +1,61 @@
# Configuration file for the multi-site sign-up script.
[browser]
userDataDir = "/home/someone/.config/chromium"
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
# Global credentials to be used for any site that doesn't have its own specific credentials.
[global_credentials]
username = "pikzuigendemetalhead"
email = "florianwkristallis@gmail.com"
password = "FlorianhoudvanPIEMELS"
phone = "+31610488717"
[[sites]]
name = "CameraBoys"
category = "Social" # New category field
url = "https://www.cameraboys.com/en/auth/sign-up"
needsPreSubmitAction = true
# You can now paste the entire HTML element here.
[sites.locators]
username = '<input class="form-input" type="text" placeholder="Username" name="username">'
password = '<input class="form-input" type="password" placeholder="Password" name="password">'
email = '<input class="form-input" type="text" placeholder="Email" name="email">'
submit = '<button type="submit" class="form-submit btn form-label">'
[[sites]]
url = "https://pro.gaynetwork.com/en/compte/authentification"
needsPreSubmitAction = false
[sites.locators]
email = '<input type="email" class="form-control" placeholder="Email" name="login[email]" value="" autocomplete="current-username" required="">'
password = '<input type="password" class="form-control" placeholder="Password" name="login[password]" value="" autocomplete="current-password" required="">'
submit = '<button type="submit" class="btn btn-block btn-primary" name="fn_login">Login</button>'
[[sites]]
url = "https://www.queermenow.net/blog/signup-for-free-gay-porn-news/"
needsPreSubmitAction = false
[sites.locators]
email = '<input id="23510" class="required email" style="width: 100%;" maxlength="4000" name="23510" type="text">'
email = '<input id="confirmEmail" class="email required" style="width: 100%;" name="confirmEmail" type="text">'
submit = '<input id="SubmitButton" class="btnStyle" style="background-color: #465d9b; color: white;" name="SubmitButton" type="submit" value="Join free list">'
[[sites]]
url = "https://justthegays.tv/register"
needsPreSubmitAction = false
[sites.locators]
username = '<input type="text" required="" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500">'
email = '<input type="email" required="" class="text-gray-700 mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500">'
password = '<input type="password" required="" class="text-gray-700 mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500">'
[[sites]]
url = "https://www.casinonyc.info/"
needsPreSubmitAction = false
[sites.locators]
email = '<input id="email-yui_3_17_2_1_1704040106050_24491-field" class="newsletter-form-field-element field-element" name="email" x-autocompletetype="email" autocomplete="email" type="email" spellcheck="false" placeholder="Email Address">'
submit = '<span class="newsletter-form-button-label">Sumbit</span>'
File diff suppressed because it is too large Load Diff
+167
View File
@@ -0,0 +1,167 @@
const fs = require('fs');
const path = require('path');
const toml = require('@iarna/toml');
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
// --- Helper Functions ---
function loadConfig() {
try {
const configPath = path.join(__dirname, 'config.toml');
const tomlString = fs.readFileSync(configPath, 'utf-8');
const config = toml.parse(tomlString);
console.log('✅ Configuration loaded successfully.');
return config;
} catch (error) {
console.error('❌ Failed to load or parse config.toml:', error.message);
process.exit(1);
}
}
function generateRandomData() {
const randomString = Math.random().toString(36).substring(2, 10);
const username = `user${randomString}`;
const email = `${username}@gmail.com`;
const password = `pass${randomString}`;
const age = Math.floor(Math.random() * 30 + 20).toString(); // Random age between 20-49
return { username, email, password, age };
}
/**
* Parses a locator string. If it's an HTML snippet, it generates a CSS selector.
* If it's already a selector, it returns it as is.
* @param {string} locatorStr - The locator string from the config.
* @returns {string} A CSS selector.
*/
function parseLocator(locatorStr) {
locatorStr = locatorStr.trim();
if (!locatorStr.startsWith('<')) {
return locatorStr; // It's already a selector
}
const getAttr = (attr) => {
const match = locatorStr.match(new RegExp(`${attr}=["']([^"']+)["']`));
return match ? match[1] : null;
};
const tagName = (locatorStr.match(/^<([a-zA-Z0-9]+)/) || [])[1] || '';
const id = getAttr('id');
// FIX: Handle numeric IDs by creating an attribute selector
if (id) {
if (/^\\d/.test(id)) { // If id starts with a digit
return `${tagName}[id='${id}']`;
}
return `${tagName}#${id}`;
}
const name = getAttr('name');
if (name) return `${tagName}[name='${name}']`;
const placeholder = getAttr('placeholder');
if (placeholder) return `${tagName}[placeholder='${placeholder}']`;
const type = getAttr('type');
if (type) return `${tagName}[type='${type}']`;
console.warn(`Could not generate a reliable selector for: ${locatorStr}.`);
return tagName;
}
async function handleCameraBoysGDPR(page) {
// ... (This function remains the same)
}
// --- Main Execution ---
async function main() {
const config = loadConfig();
const sitesToProcess = config.sites || [];
const browserConfig = config.browser || {};
const globalCreds = config.global_credentials || {};
const userDataDir = browserConfig.userDataDir;
if (!userDataDir) {
console.error('❌ userDataDir is not set in config.toml. This is required.');
return;
}
const browser = await puppeteer.launch({
headless: false,
userDataDir: userDataDir,
args: ["--start-maximized"]
});
try {
let isFirstSite = true;
for (const site of sitesToProcess) {
let creds;
if (site.credentials && site.credentials.username) {
creds = { ...globalCreds, ...site.credentials };
console.log(`Using credentials specified for site: ${site.name}`);
} else {
creds = { ...globalCreds };
console.log(`Using global credentials for site: ${site.name}`);
}
// If any credential is still missing, generate it randomly
if (!creds.username || !creds.email || !creds.password || !creds.age) {
const randomData = generateRandomData();
creds = { ...randomData, ...creds };
console.log('Filled in missing credentials with random data.');
}
console.log(`\n--- Processing Site: ${site.name} (Category: ${site.category || 'N/A'}) ---`);
const page = isFirstSite ? (await browser.pages())[0] : await browser.newPage();
isFirstSite = false;
if (browserConfig.userAgent) {
await page.setUserAgent(browserConfig.userAgent);
}
await page.goto(site.url, { waitUntil: 'networkidle2' });
if (site.needsPreSubmitAction && site.name === 'CameraBoys') {
await handleCameraBoysGDPR(page);
}
console.log('Dynamically filling out the form...');
const definedLocators = site.locators || {};
for (const fieldName in definedLocators) {
if (fieldName === 'submit') continue; // Skip the submit button
const selector = parseLocator(definedLocators[fieldName]);
let valueToFill = creds[fieldName];
// Special case for 'confirmEmail', use the email value
if (fieldName === 'confirmEmail') {
valueToFill = creds['email'];
}
if (selector && valueToFill) {
try {
console.log(` - Filling field: ${fieldName}`);
await page.type(selector, valueToFill, { delay: 100 });
} catch (e) {
console.warn(` - Could not fill field '${fieldName}' with selector '${selector}'. Error: ${e.message}`);
}
}
}
console.log('Form filled. Attempting to submit...');
const submitSelector = parseLocator(definedLocators.submit);
await page.click(submitSelector);
console.log(`✅ Submission attempt for ${site.name} is complete.`);
}
} catch(error) {
console.error('❌ A critical error occurred during execution:', error.message);
} finally {
console.log('\n🎉 All tasks complete. The browser window will remain open for inspection.');
}
}
main();
+354
View File
@@ -0,0 +1,354 @@
https://immaculatevegan.com/blogs/magazine
https://gate6.vn/
https://www.sprintzeal.com/blog
https://kulalaland.com/
https://www.goplaces.co.uk/
https://www.fiftyfiftybottles.com/
https://jubina.com/blog
https://www.sneakywholefoods.com/
https://vegnews.com/signup
https://yonayonabeerworks.com/
https://www.louispowersportsonline.com/
https://www.hairworthy.co.uk/
https://endotaspa.com.au/
https://prestigify.com/
https://nobones.co/
https://www.sofamania.com/
https://dimoradellebalze.com/en/restaurant/
https://www.42photo.com/
https://ifinishedmybasement.com/
https://tettixgames.com/
https://www.corinnekai.com/raw-honey-raw-self-newsletter/
https://www.blendnwhip.com/
https://www.brookebowlin.com/nuance-required
https://www.thatvegandad.net/
https://comhwa.org.au/blog/newsletters/
https://hiutdenim.co.uk/
https://local-lovely.com/
https://vituswholefoods.com/
https://theoriginalshabby.it/
https://rothys.com/en-au
https://www.trustbasket.com/
https://chelseabrice.com/
https://wolfsgamingblog.com/
https://www.leadfuze.com/blog/
https://thedefiant.io/
https://www.entrepreneur.com/
https://pantproject.com/
https://www.terrebleu.ca/
https://www.shopify.com/in/blog/shopify-stores
https://www.skooob.com/
https://mremountain.com/
https://uncommonjames.com/
https://www.axios.com/signup/tampa-bay
https://www.dietassassinista.com/blog/tag/African+Cuisine
https://miriamporter.ca/
https://uppercasemagazine.com/
https://www.mercadodasrosas.com/
https://mybageecha.com/
https://bebemoss.com/
https://linkwithin.com/
https://www.mediocrechef.com/newsletter
https://www.trainheroic.com/blog/rdl-for-posterior-chain-development/
https://www.duatravel.com/
https://youthiapa.com/
https://www.prolinerangehoods.com/
https://inthecove.com.au/sign-up-for-newsletter/
https://thevegan8.com/
https://newsinfrench.org/
https://www.wheelpros.com/
https://eatbetterco.com/
https://www.925express.com/
https://www.kurandawholefoods.com.au/blogs/blog-posts
https://unitedbyblue.com/
https://www.lifx.com.au/
https://www.weareunderground.com/
https://easyeyesound.com/
https://fashionbrainacademy.com/blog-vs-newsletter/
https://www.myburntorange.com/
https://vituswholefoods.com/blogs/news
https://www.givemetap.com/
https://www.lunchskins.com/
https://www.gymlaunch.com/blog-categories/newsletter
https://yumetwins.com/blog/kawaii-hotel-rooms-in-japan
https://www.artistsandillustrators.co.uk/
https://tokyovegangyoza.com/en/pages/newsletter-registration
https://thegoodlifefrance.com/newsletter-sign-up/
https://www.novethic.fr/economie-et-social/business-model-en-transition/rse-managers-pilotage-entreprise
https://www.35mmc.com/
https://therainbowvision.com/
https://www.customgoldgrillz.com/
https://tofinosoapcompany.com/
https://store.lonestarlearning.com/
https://mumcentral.com.au/
https://www.velasca.com/
https://satyaorganics.com/
https://popitout.in/
https://www.afar.com/travel-tips/the-best-restaurants-in-new-zealand
https://www.mindbodygreen.com/
https://fourcolumnsofabalancedlife.com/
https://www.relishthebite.com/
https://www.airportappliance.com/
https://quedelibros.com/
https://www.gazoakleychef.com/
https://egunsifoods.com/
https://www.saintalfred.com/
https://www.wholisticallyhannah.com/all/welcome-to-wholistically-hannah
https://glamout.com.mx/
https://mommuseum.org/sign-up-for-the-newsletter/
https://www.greenseashells.com/
https://jessicainthekitchen.com/
https://www.carlazampatti.com.au/
https://www.ricarda.com/
https://www.supercutekawaii.com/2023/07/kawaii-japan-trip-planning-resources/
https://www.devilinspired.com/blog/Harajuku-Fashion-Japanese-Street-Fashion/what-is-jirai-kei.html
https://leehamnews.com/
https://highfivevape.com/
https://www.loveandlemons.com/subscribe/
https://finduslost.com/
https://makeupformelaningirls.com/
https://gosvish.com/
https://bruvi.com/
https://120percento.com/pages/linen-pants
https://www.tsw.com/
https://economics-online.myshopify.com/
https://www.captaincookcruisesfiji.com/blog/holidaying-in-fiji-8-travel-blogs-to-read
https://www.thetravelpockets.com/new-blog/tag/Sanrio
https://www.beafunmum.com/
https://willowltd.com/
https://www.adolfodominguez.com.au/
https://laviebami.com/tag/west-african-food/
https://childandfamilyblog.com/
https://www.thehimalayanorganics.in/
https://labelsfashion.com/
https://theoverwhelmedmommy.com/
https://headsupfortails.com/
https://www.healthmates.com.au/about/monthly-newsletter
https://www.cgriver.com/
https://theholisticgardenblog.com/
https://www.theguthealthdoctor.com/subscribe
https://djurrattsalliansen.se/hjalp-djuren/lev-djurvanligt/bli-vegan/
https://www.blackbykenm.com/
https://shop.smeg.com.au/
https://hbx.com/?no-direct=1
https://bonnelife.com/
https://matthiaskamann.com/blog/
https://www.justherbs.in/
https://gaijinpot.com/
https://wolfsgamingblog.com/
https://scanwp.net/blog/newsletter-thank-you/
https://120percento.com/
https://fausto.in/
https://sartoriadilusso.shop/designers/off-white
https://kawaiibabe.com/
https://www.dubwheels.com/
https://www.nextfpv.com.au/
https://unarosevegan.ca/welcome-to-my-blog-about-una-rose-vegan/
https://thecanadianafrican.com/
https://kindahome.co.ao/
https://clutchchairz.com/
https://whereiam.blog/
https://www.dandelionchocolate.com/
https://zeroinfy.in/
https://meowmeowtweet.com/
https://www.phoebespurefood.com/
https://www.greenheartgames.com/
https://freshersjobz.com/
https://www.prashantisarees.com/
https://www.snitch.co.in/
https://www.vervecoffee.com/
https://homesteadmuseum.blog/
https://bestfriendsclub.ca/
https://thenelgroup.au/blogs/news
https://www.goodrx.com/health
https://barekind.co.uk/
https://flourist.com/
https://www.belindainternational.com/
https://www.wigsandgrace.com/
https://www.eatfitgo.com/
https://highfivepins.com/
https://www.duroflexworld.com/
https://blkandbold.com/
https://hiyou.co/
https://www.respectatwork.gov.au/
https://www.thegayvegans.com/general/
https://woodfordstatebank.com/investments.html
https://elpasomatters.org/2023/01/18/join-el-paso-matters-book-club-celebrate-el-pasos-authors/
https://norte.ventures/
https://www.rachelcampbellphotography.net/
https://www.leppfarmmarket.com/contact/
https://panda-patisserie.com/
http://studiomspace.ca/
https://busbeestyle.com/travel/
https://gaysintown.com/
https://www.hockerty.com/en-au/blog/tuxedo-vs-suit
https://www.everyonehatesmarketers.com/
https://chelseabrice.com/
https://www.breitbart.com/newsletters/
https://www.ableton.com/en/subscribe-to-newsletter/
https://www.texastribune.org/
https://www.biblechristiansociety.com/newsletter
https://biggayhudsonvalley.com/contact/newsletter-signup/
https://odin-engineering.dk/nyhedsbrev/
https://gardehvalsoe.dk/
https://aerligebent.dk/bil-jokes
https://eyda.dk/
http://yourbusinessgazette.com/
https://usacorrespondent.com/
https://themarketholders.com/
https://tldr.tech/ai
https://productmanager.jobs/newsletter
https://www.sartoricheese.com/sweepstakes/
https://mosbrew.ru/posts/subscribe/
https://vua-lya.ru/shares/1289/
https://gifts.ru/about/subscribe
http://www.auto-neva.ru/rassilki
https://www.mann-ivanov-ferber.ru/samorazvitie-books/subscribe/
https://sisters-help.ru/
https://teatrkukoludm.ru/
https://rikkitikkishop.dk/tilmeld-nyhedsbrev/
https://dollar-king.net/bear-light-up.html
https://fleshbot.com/
https://signup.dropout.tv/
https://www.salon.com/topic/incels
https://pornstar.love/newsletter/
https://intothewildernessblog.com/subscribe/
https://itslisawelsh.systeme.io/sexual-confidence-guide
https://www.familyhandyman.com/newsletter/
https://adultindustry.news/
https://malestockroom.com/
https://www.cindyscharkey.com/newsletter
https://www.matthewlyonsauthor.com/newsletter
https://pamutlabor.hu/shop/hobbi-erdeklodes-noi-hosszitott-polo
https://assodeclic.com/
https://www.xexo.it/calendari/4494-calendario-porn-2019.html
https://www.siciliafoodporn.it/27-selezione-sicilia-food-porn
https://www.secrets-center.ru/
https://www.vkostume.ru/catalog/podarki/
https://ml.city.yokohama.lg.jp/sympa/subscribe/morinews?previous_action=info
https://ucon-acrobatics.jp/pages/newsletter
https://www.hover.com/newsletter
https://okcthunderwire.usatoday.com/newsletters
https://www.philips.co.jp/myphilips/newsletter-registration-campaign17
https://www.marni.com/ja-jp/
https://www.hasselblad.com/ja-jp/about/contact/
https://kuwaii.com.au/
https://ideasforgood.jp/mailmagazine/
https://www.buscounchollo.com/
https://www.uniqlo.com/es/es/content/bienvenido.html
https://www.hiperdino.es/folletos/
https://darlingillustrations.com/newsletter-subscription/
https://gnaraloo.org/subscribe-to-the-gnaraloo-wilderness-foundation-newsletter/
https://www.farmandwilderness.org/newsletter-signup
https://www.waxit.com.au/pages/waxit-newsletter
https://practicalmotoring.com.au/newsletter-subscription/
https://www.niba.com.au/newsletter
https://www.iaisweb.org/news-and-events/newsletter/newsletter-subscribe/
https://crooked.com/tag/incels/
https://www.maltego.com/blog/everything-to-know-about-ransomware/
https://thewalrus.ca/tag/immigration/
https://www.yourdarlingstyle.com/newsletter
https://aidendarlingharbour.com.au/sign-up/
https://darlingshine.com/pages/watch-us
https://www.monaropost.com.au/newsletter-sign-up-form
https://www.csiro.au/
https://www.darlingwest.com.au/
https://www.ivywood.ie/shop/events/a-making-herbal-remedies-practical-course-detail
https://www.ninasjewellery.com.au/
https://thekawaiishoppu.com/en-au/blogs/news
https://www.pernillecorydon.com/subscribe-to-newsletter
https://www.tokudeals.com/
https://hands.com.au/
https://medicalxpress.com/tags/herbal+medicines/
https://www.coffeeco.com.au/
https://urbanattitude.com.au/
https://albathermalsprings.com.au/alba-experiences/spa/herbal-healer-90-min/
https://www.adultshop.com/
https://soapsweetie.com/
https://metropolisbookshop.com.au/
https://momnemcoffee.com/pages/newsletter
https://www.ricky.com/pages/newsletter
https://www.vittoriacoffee.com/blogs/news/tagged/coffee-blog
https://www.comeasyouare.com/pages/subscribe-to-our-newsletter
https://lioness.io/pages/subscribe
https://www.sexshop365.co.uk/catalog/newsletters.php
https://www.marelljewellery.com.au/newsletter
https://www.bevilles.com.au/
https://www.bvibe.com/subscribe
https://www.kawaiibox.com/
https://www.jekkas.com/
https://thedistrictherbalist.co.uk/herbal-resources/newsletter/
https://www.seattlecoffeegear.com/pages/subscribe
https://sokawaii.com/
https://yumetwins.com/
https://sararobertsson.com/pages/newsletter
https://www.steepedcontent.com/
https://www.passionfruitshop.com.au/
https://www.kiwiherb.com.au/contact/subscribe-to/
https://www.nataliemariejewellery.com/
https://alternativebrewing.com.au/blogs/news
https://www.sorujewellery.com/en-au/pages/sign-up
https://coffeealchemy.com.au/blogs/news
https://seaglassjewellery.com.au/newsletter-sign-up/
https://www.atlantacoffeeshops.com/newsletter
https://www.bibivandervelden.com/pages/newsletter
https://joycejewellery.com/pages/signup-newsletter-free-postage
https://theherborium.com.au/collections/herbal-remedies
https://www.grahams.com.au/
https://www.the-herb-guide.com/herb-guide-newsletter.html
https://embracejewellery.com/pages/subscribe
https://www.aldeacoffee.com/blogs/news
https://crystalheavenjewellery.com/en-au/pages/newsletter
https://www.jewellerssupplies.com.au/
https://www.herbcottage.com.au/pages/herb-lovers-community-newsletter
https://shop.thegrounds.com.au/
https://www.vakantiestunt.nl/nieuwsbrief.php
https://www.vakantieveilingen.nl/nieuwsbrief.html
https://nl.secretescapes.com/aanbiedingen
https://www.lepetitmarche.com.au/newsletter
https://www.lalunapetcare.com.au/subscribe
https://larochere-na.com/pages/newsletter
https://store.latimes.com/
https://www.amiparis.com/au/
https://filterstore.com.au/pages/newsletter
https://www.versusmerch.com/pages/subscribe-to-our-newsletter
https://www.passionandpresence.com/newsletter-signup/
https://www.lelo.com/blog/newsletter/
https://www.tootsiescabaret.com/
https://www.pimpbangkok.com/
https://matadornetwork.com/
https://pragueforadults.com/category/adult/strip-clubs/
https://gayforgood.org/join-our-mailing-list/
https://www.postcardmania.com/products-services/lgbt-mailing-list/
https://gaygaddis.com/newsletter-subscribe/
https://www.gayparentstobe.com/join-community
https://www.dunasmap.com/newsletter
http://www.pridecenterwny.org/Newsletter
https://www.lgbtgreat.com/newsletter
https://www.italygaytravels.com/newsletter/
https://www.glbthistory.org/newsletter
https://www.chirale.it/iscriviti-alla-nostra-newsletter/
https://www.ail.it/newsletter
https://www.fondazionebrodolini.it/iscriviti-alla-nostra-newsletter
https://sex-matters.org/take-action/sign-up/
https://link.menshealth.com/join/5u0/thehookupsignup
https://whiskeydanduncensored.com/newsletter-socialmedia
https://rebelliousmagazine.com/sex-rebelle/
https://allbodies.com/newsletter-sign-up/
https://sexwithemily.com/subscribe/
https://www.wonderlandbakery.com/
https://www.carlybloombooks.com/the-bloomin-news/
https://www.slaa.org.au/subscribe/
https://www.onlyfriends.com.au/
https://www.clubx.com.au/
https://booko.com.au/
https://sextoyserotica.com.au/
https://hawttt.com.au/
https://www.filmink.com.au/best-hookup-sites-australia-13-free-aussie-dating-apps/
https://www.ricksnewyork.com/
https://www.clubonyxcharlotte.com/
https://www.goldclubcenterfolds.com/
https://www.labohemegc.com/
https://www.rickschicago.com/
https://thewalrus.ca/welcome-to-the-manor-church-by-day-strip-club-by-night/
https://vintagegaybooks.substack.com/
+1690
View File
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
{
"name": "sign_up_email",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs",
"dependencies": {
"@iarna/toml": "^2.2.5",
"playwright": "^1.56.1",
"playwright-extra": "^4.3.6",
"puppeteer": "^24.30.0",
"puppeteer-extra": "^3.3.6",
"puppeteer-extra-plugin-stealth": "^2.11.2"
}
}