Skip to content

Commit fe747f5

Browse files
Adding Scripts
1 parent 6116be7 commit fe747f5

File tree

5 files changed

+1872
-0
lines changed

5 files changed

+1872
-0
lines changed

Core.js

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
import puppeteer from 'puppeteer-extra';
2+
import StealthPlugin from 'puppeteer-extra-plugin-stealth';
3+
import AdblockerPlugin from 'puppeteer-extra-plugin-adblocker';
4+
import fs from 'fs/promises'; ;
5+
6+
7+
puppeteer.use(StealthPlugin());
8+
puppeteer.use(AdblockerPlugin());
9+
10+
11+
async function StealthBrowser(additional = {}, additionalArgs = []) {
12+
const browser = await puppeteer.launch({
13+
...additional,
14+
args: [
15+
'--no-sandbox',
16+
'--disable-setuid-sandbox',
17+
'--disable-gpu',
18+
...additionalArgs,
19+
],
20+
ignoreDefaultArgs: ['--enable-automation'],
21+
devtools: true,
22+
ignoreHTTPSErrors: true,
23+
});
24+
25+
browser.StealthPage = async () => {
26+
const page = await browser.newPage();
27+
await page.setRequestInterception(true);
28+
29+
// Add plugins
30+
await page.evaluateOnNewDocument(() => {
31+
Object.defineProperty(navigator, 'webdriver', {
32+
get: () => false,
33+
});
34+
delete window.chrome.runtime;
35+
delete window.chrome;
36+
});
37+
38+
// Save cookies to a file
39+
40+
page.saveCookies = async (path = './cookies.json') => {
41+
const cookies = await page.cookies();
42+
await fs.writeFile(path, JSON.stringify(cookies));
43+
};
44+
45+
// Load cookies from a file
46+
page.loadCookies = async (path = './cookies.json') => {
47+
const cookies = JSON.parse(await fs.readFile(path));
48+
await page.setCookie(...cookies);
49+
};
50+
51+
// Wait for HTML to be fully rendered
52+
page.waitTillHTMLRendered = async (timeout = 30000) => {
53+
const checkDurationMsecs = 1000;
54+
const maxChecks = timeout / checkDurationMsecs;
55+
let lastHTMLSize = 0;
56+
let checkCounts = 1;
57+
let countStableSizeIterations = 0;
58+
const minStableSizeIterations = 3;
59+
60+
while (checkCounts++ <= maxChecks) {
61+
const html = await page.content();
62+
const currentHTMLSize = html.length;
63+
64+
const bodyHTMLSize = await page.evaluate(
65+
() => document.body.innerHTML.length
66+
);
67+
68+
console.log(
69+
'last: ',
70+
lastHTMLSize,
71+
' <> curr: ',
72+
currentHTMLSize,
73+
' body html size: ',
74+
bodyHTMLSize
75+
);
76+
77+
if (lastHTMLSize !== 0 && currentHTMLSize === lastHTMLSize) {
78+
countStableSizeIterations++;
79+
} else {
80+
countStableSizeIterations = 0;
81+
}
82+
83+
if (countStableSizeIterations >= minStableSizeIterations) {
84+
console.log('Page rendered fully..');
85+
break;
86+
}
87+
88+
lastHTMLSize = currentHTMLSize;
89+
await page.waitForTimeout(checkDurationMsecs);
90+
}
91+
};
92+
93+
94+
return page;
95+
};
96+
97+
return browser;
98+
}
99+
100+
export default StealthBrowser;

Responses.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import StealthBrowser from './Core.js';
2+
import readline from 'readline';
3+
4+
const textAreaSelector = "#prompt-textarea";
5+
const BtnSelector = "#__next div.flex.w-full.items-center > div > button"
6+
const ResponseSelector = '.final-completion';
7+
8+
const rl = readline.createInterface({
9+
input: process.stdin,
10+
output: process.stdout,
11+
});
12+
// Function to generate a random delay
13+
function getRandomDelay(min, max) {
14+
return Math.floor(Math.random() * (max - min + 1) + min);
15+
}
16+
17+
(async () => {
18+
const browser = await StealthBrowser();
19+
const page = await browser.StealthPage();
20+
21+
async function typeWithRandomDelay(text) {
22+
for (const char of text) {
23+
await page.type(textAreaSelector, char, { delay: getRandomDelay(50, 150) }); // Adjust min and max delays as needed
24+
}
25+
}
26+
27+
// Load cookies if available
28+
await page.loadCookies();
29+
await page.goto('https://chat.openai.com/?model=text-davinci-002-render-sha');
30+
31+
await page.waitForFunction((targetURL) => {
32+
return location.href === targetURL;
33+
}, { timeout: 100000000 }, "https://chat.openai.com/?model=text-davinci-002-render-sha");
34+
35+
36+
await page.saveCookies();
37+
38+
await page.waitTillHTMLRendered();
39+
40+
await page.waitForSelector(textAreaSelector);
41+
42+
43+
await page.click(textAreaSelector);
44+
await typeWithRandomDelay( "Hello chat gpt" );
45+
46+
47+
await page.click(BtnSelector);
48+
49+
50+
const Response = await page.$eval(ResponseSelector, (e) => e.innerHTML );
51+
//waiting for someone to implement the logic of extraction of the text/code
52+
53+
console.log( Response );
54+
55+
56+
await browser.close();
57+
})();

cookies.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"name":"cf_clearance","value":"kv2Fim0PN_ONOEBO7Mt2Q8lP2tJ7nQpgphSoZONXodI-1698152997-0-1-50e6ea28.2eeb811b.fdc8811-0.2.1698152997","domain":".chat.openai.com","path":"/","expires":1729688997.45881,"size":111,"httpOnly":true,"secure":true,"session":false,"sameSite":"None","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"ajs_user_id","value":"user-nxbOiR057zNwV9HGcU7H8Kog","domain":".openai.com","path":"/","expires":1729689101,"size":40,"httpOnly":false,"secure":false,"session":false,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"ajs_anonymous_id","value":"d2ee5e19-e752-40d3-ba47-1e26ee6fed43","domain":".openai.com","path":"/","expires":1729689101,"size":52,"httpOnly":false,"secure":false,"session":false,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"_dd_s","value":"rum=0&expire=1698154098084","domain":"chat.openai.com","path":"/","expires":1698154099,"size":31,"httpOnly":false,"secure":false,"session":false,"sameSite":"Strict","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"_cfuvid","value":"5eUVSIWtJ9nTbX9raORQuTgh5LQSHQwx5o4YK0V2VV4-1698152993603-0-604800000","domain":".chat.openai.com","path":"/","expires":-1,"size":76,"httpOnly":true,"secure":true,"session":true,"sameSite":"None","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"intercom-device-id-dgkjq2bp","value":"f9a283a1-2ce7-40b5-851e-a7243c2bc45f","domain":".openai.com","path":"/","expires":1721483102,"size":63,"httpOnly":false,"secure":false,"session":false,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"__Host-next-auth.csrf-token","value":"8c021a6afded296b44cc5ebeaa74325c74b9b50fa475ab0e9a4f9025cdbbeb7a%7Cd6690ac679e68215dad9f02d70e39921645be4fc8cd7c1672031a9dca096b39d","domain":"chat.openai.com","path":"/","expires":-1,"size":158,"httpOnly":true,"secure":true,"session":true,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"__Secure-next-auth.session-token","value":"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..pP2LhhsC79Z6TXZp.IX7Rk7Ha_n9y0amQ1iaWyqKz1kuKZ3qclc00sBikA3SQAO8h9X-0aReWLreBPaFYy6ohdu-rbt3YFkVvGCbY50NZEpXPDx2Lj2_I0iDJRumj0LRKT6kg5-cNAyPxIy_fAyTWCX4pMd1GKxWPMuC_fxSYHgooXqlgESfiiHicASwkOSZlXFTlFJzSTyc8iDE37eGGBqITi7-gXzLKvTfdyB9BUb1P3j51hu4VoJh2jZ2Tbq6Ohgt1QQ7Oa7p5jZxNgVCEcE9a5aH5k7CBSPUIM1zJwJf7PL5pIjvbXCL9E1iGxxKUbrajiS0JseBYRI-nEUGMtdkgetvnOHRg82PCEJaN85sAQUwHTkJDtrm-LtsTCzn2rwg4BJI5ewSXsUN0hMMsFHHBSZfuBL8uVCSV-Wa1CFXFP9L_1SN6Z0Li-YCkDlEOEMTKSQhSNOn1zbg1zjOp5D8dRudqzm6c3tAYyu2_f69lg40Fu8zQutBtER2IPRDNBGLNuHVE4_GMpSqkletCp3KdbwchF_us-Fsj3kqfwNl_UfLzNGktxJ8gzFpdSo2dFKyZ9pkBid1fG17ulIUBAhjXVd6uPnG-K0v7f-fRMY2iwEalKoFnuSJq8slQcKck7P5EBNhtDuqyXdrZn5vR3vempyv--TdpKtt2O3j_o3wmqKg-1E15jtFzyVBTdXDY8Pb9iUkNqexjAD0nwGy_yS0kc1T3SPmjC7ySlDGUOAHylcUZZIj9D4VXNjLP4mVSXL9Gswb3f-mmXThbsxLVDFpEKL5QKZAnOeBW7CnkIx7t4DeWVoujLtjzO6PPanm49372f0jrRts4jsshSPBdxnlNBRIjx0ZioXW7_ew4U9qckJKCOgEj7On6fvkPfbhGTs7rLKWgr9bMwVOtiSBzxc33bnL5eCWRWtqFd28fJlWpWQThKzAH07VLHEvI7YxDlpFmzpk0LwSQzQZhz2QJ_0ZckVUxB8b8iv_sG13LTtT8XIiNWHP9feMpnUxbuRFA3wMegq48LeEWFooEU9q9mC2YcOy9FmhHuEOvyaTuZtjur8kFxxn3DHMugstNIq2GDhmww7tGoFTIL4g4kfrkq7KKxLrbD1PBEBdmHM_GjGnvuZUait6311sSSSVCzYiUMcckuKiBl9DPu1a_fZjZYQGT02adLCmtS3hZOgFGE-aHDqGDsq99Bjr2J8qbMD8RPRdaIAAo1kDbZiqbEIsj9F1-vGWXC7ULCSwt1-cGkYQjW5WfTb2ZXSJZPgktd0jD3JxSTTSMwrlu_54ad3nWozuNXbRRvPLzWc7XqJkj-XTNId7dxR8KIL_Zzptmomm0xV-5lR9tPSAofIrJGqXZC1bhwhCf7xgM-LFEyuWeK_UHje2VUwHooYIxTkgvrDHUa13LdxgrqrV_wDY5_3XaLdImu9JDFx8Sr0fDGdgRMBPpDma17iqz_75oWZZaq0ly5Q1sZn0I40lQx4mf-prsQtZWZL1yn2DC6X9tOy_vq32S-NzDVCUFG9jwpxRQR_cI8uFPyYBcjvU0OxcwRHV0RhCatQl-KBJN5M85L3eGjB0BU_0cjUlSAMHvbnudV0slyl-oYcM9gbS9lgfTZxcgY0VYA2NRohIgML_jMK13BonuZ7iChUiSzukiPWJUoBTBp6qfJWNXu8uJ-QD93UzJ70mTVfreNxYAUo-r0H0hQIcWJzvxO0W0-4sVXiN7J7xZPW9KjRt2H6DAS_NEeWIZDFlB7rwJkS2TUorWGS7LUNAS_gaTyvC1YAu0tpar47c1iLySyHeqoHl-3uJQwzStM5f1GurutZh5Q0EyritMrIuK__wpNEe0hcJXgq6pRMzbzPN4RX6w6i2s3goq-bdbh1fZ0EQpL--h0ZJv-qJG5dVzhlr3459puVsLmjQsCgnm30FsJjSgzK0b6hMp-xTVZqoYQeDKYa5DiqBQ9LIfSwto6iN8L-g8mgnaDfBUdlwY_UHiZOJ9OcQ-LYekBfPotO8en7HPJBAObgRu221y0XpNpVGpKiQbBoCgHUVJB9AfwLLR-uOuWtmjKxjAf-9BKWqpLE1RlHaEasVYGN5zjtJs2H7DSd2oJucPUfjcrGwVX2nORKpHBJ-LBxis10y4uRcj81oXOi7YdEcgXX3fspbEJzYNmO3U2aseZTa9TSqG8RkVWWpyKg7mmXEO7mT-IPyEeD69xPIjHuGz0dNMKt7gn_2Xw_5fB29AlSQwt1by8uARZlYGX5BtgtzreA8Bui83nH1Xwn4q4n-ek6UbeQmgEudXKxMmHN_jYvQvRNw8jAJVWYghQee82nJCtLYjX4brO--3qvvLcKKr15YfZtS1BNdaWOSzkyihvYy3F-iXazKXO7RhQH2wWoOarTZIFlSE5WpJ11rAVSIfqOXIh-4ZPG48L0ObsoR7zdNOanzouhYcNVWD3rktdbxyvjyTAiyTrvRq2v1Abw7zMruRAwrGI15vNDrjNOv0It3hH_LwaLkhVXGZ6SbwB9tX9TCZ88ywPk4u2h-2tnVeCQjzfxlRvHDz59oSkIMGa4VbC3-5izAUfweykGwDKS8onnSyjuA5zPzN27-yzH5sjOkA2btDf56l0WhPELAYimreVMi0kK30kRfLuhz1BdqBxC-qgWv7D4bnRIvw7iZTNEPXe3qDRFs72zaRum3h2VvwtT9PAXGQiL98R7mT6tJC6cracPriRDyDvObNSMMPnO7HNcMnZE-81Ksey671JOFAJL9pWWGXCQt5Durr9Gu8DF3zNGzGraqjgHKwpXvId5cuLcJL9obY0Mni6BUgNaZXNyjKe06nisKx6jxCk3W1Ks7hhaSIdPYog-0zmaoZEoti8srhsRsmCfCNq6GBPpGg4XkWAuoyGE5VjQXz86cT7wG4u2Qg9gyWlzrBDAviMgqjgnSeBlIx60L3TQ-R7aPo9X7vElke9seT7JOpWufsY--cWcgWLx8I23si.-UwRzeCCIuielbj8yynLzA","domain":"chat.openai.com","path":"/","expires":1705929199.809828,"size":3073,"httpOnly":true,"secure":true,"session":false,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"__cf_bm","value":"9vM1OgaXqWUSyW9tmb26iFhWwC4cXVxAKUW2Qgr2S58-1698152993-0-AcNL0zY4pRYc9KhZYcITGxjRcytGutlQJeSdWlmR+v0r+mpUg2bJg2D2m5lJssqtdRrhCpjDbPfUiVxbRpi3M58=","domain":".chat.openai.com","path":"/","expires":1698154793.600423,"size":152,"httpOnly":true,"secure":true,"session":false,"sameSite":"None","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"__Secure-next-auth.callback-url","value":"https%3A%2F%2Fchat.openai.com%2F%3Fmodel%3Dtext-davinci-002-render-sha","domain":"chat.openai.com","path":"/","expires":-1,"size":101,"httpOnly":true,"secure":true,"session":true,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443},{"name":"intercom-session-dgkjq2bp","value":"N05NMlAvdzdwU0ljdjNnL2I3VXY0VDZXUU95ckNjZ2h2Q21RRzM1aEJTRDVMSUhmZFVDZ2pTalc4VjZkb0p0Qi0tOG1RVURjd3pjMkNwNlE1ZDlzSll0Zz09--717a26ce55f0007d6ee05f6dbfd03731803b58ae","domain":".openai.com","path":"/","expires":1698757902,"size":187,"httpOnly":false,"secure":false,"session":false,"sameSite":"Lax","sameParty":false,"sourceScheme":"Secure","sourcePort":443}]

0 commit comments

Comments
 (0)