Guest User

Untitled

a guest
Oct 14th, 2020
817
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.24 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const puppeteer = require('puppeteer-extra');
  3. const fs = require('fs');
  4. const https = require('https');
  5. const StealthPlugin = require('puppeteer-extra-plugin-stealth')
  6. const Client = require('@infosimples/node_two_captcha')
  7. const RecaptchaPlugin = require('puppeteer-extra-plugin-recaptcha')
  8.  
  9. const client = new Discord.Client();
  10.  
  11. global.username = ''
  12. global.password = ''
  13. global.discordlogin = ''
  14. global.sitekey = ''
  15. global.twocaptchakey = ''
  16.  
  17. var queue = false;
  18.  
  19. puppeteer.use(StealthPlugin())
  20. puppeteer.use(
  21. RecaptchaPlugin({
  22. provider: {
  23. id: '2captcha',
  24. token: global.twocaptchakey
  25.  
  26. },
  27. visualFeedback: true // colorize reCAPTCHAs (violet = detected, green = solved)
  28. })
  29. )
  30.  
  31. const download = (url, destination) => new Promise((resolve, reject) => {
  32. const file = fs.createWriteStream(destination);
  33.  
  34. https.get(url, response => {
  35. response.pipe(file);
  36.  
  37. file.on('finish', () => {
  38. file.close(resolve(true));
  39. });
  40. }).on('error', error => {
  41. fs.unlink(destination);
  42.  
  43. reject(error.message);
  44. });
  45. });
  46.  
  47. client.on('ready', () => {
  48. login_chegg()
  49. console.log(`Logged in as ${client.user.tag}!`);
  50. });
  51.  
  52. client.on('message', message => {
  53.  
  54. if (message.content.startsWith(`-chegg`)) {
  55.  
  56. var s = message.content.replace('-chegg', '')
  57.  
  58. if (!s.includes('https://www.chegg.com/homework-help')) {
  59. const errorEmbed = new Discord.MessageEmbed()
  60. .setColor('#C91019')
  61. .setTitle('Error')
  62. .setURL('https://pain.rip')
  63. .setDescription('No! Chegg links only!')
  64. .setThumbnail('https://images-ext-1.discordapp.net/external/9yiAQ7ZAI3Rw8ai2p1uGMsaBIQ1roOA4K-ZrGbd0P_8/https/cdn1.iconfinder.com/data/icons/web-essentials-circle-style/48/delete-512.png?width=461&height=461')
  65. .setTimestamp()
  66. .setFooter('Powered by Pain Calendar');
  67. message.channel.send(message.author.toString(), {
  68. embed: errorEmbed
  69. });
  70. return;
  71. }
  72.  
  73. if (queue) {
  74. const errorEmbed = new Discord.MessageEmbed()
  75. .setColor('#C91019')
  76. .setTitle('Error')
  77. .setURL('https://pain.rip')
  78. .setDescription('Wait your turn!')
  79. .setThumbnail('https://images-ext-1.discordapp.net/external/9yiAQ7ZAI3Rw8ai2p1uGMsaBIQ1roOA4K-ZrGbd0P_8/https/cdn1.iconfinder.com/data/icons/web-essentials-circle-style/48/delete-512.png?width=461&height=461')
  80. .setTimestamp()
  81. .setFooter('Powered by Pain Calendar');
  82. message.channel.send(message.author.toString(), {
  83. embed: errorEmbed
  84. });
  85. return;
  86. }
  87.  
  88. process_answer(s)
  89.  
  90. async function process_answer(url) {
  91. queue = true;
  92. const processEmbed = new Discord.MessageEmbed()
  93. .setColor('#F85B00')
  94. .setTitle('Processing')
  95. .setURL('https://pain.rip')
  96. .setDescription('Your request is being processed!')
  97. .setTimestamp()
  98. .setFooter('Powered by Pain Calendar');
  99. var msg = message.channel.send(message.author.toString(), {
  100. embed: processEmbed
  101. });
  102. await page[0].goto(url, {
  103. waitUntil: 'networkidle2'
  104. });
  105. global.screenshot = await page[0].screenshot({
  106. path: 'test.png',
  107. fullPage: true
  108. });
  109.  
  110.  
  111. const images = await page[0].evaluate(() => Array.from(document.images, e => e.src));
  112. let result;
  113. var question = false;
  114. /*for (let i = 0; i < images.length; i++) {
  115. if (images[i].includes('media.cheggcdn.com')) {
  116. result = await download(images[i], `image-${i}.png`);
  117.  
  118. if (result === true) {
  119. if (!question) {
  120. message.author.send("INDIVIDUAL IMAGES:", {
  121. files: [images[i]]
  122. })
  123. question = true;
  124. } else {
  125. message.author.send({
  126. files: [images[i]]
  127. })
  128. }
  129. console.log('Success:', images[i], 'has been downloaded successfully.');
  130. } else {
  131. console.log('Error:', images[i], 'was not downloaded.');
  132. console.error(result);
  133. }
  134. }
  135. }*/
  136.  
  137. const element = await page[0].$('.question-body-text');
  138. element_property = await element.getProperty('innerHTML');
  139. const inner_html = await element_property.jsonValue();
  140.  
  141. const element2 = await page[0].$('.answer-body');
  142. element_property2 = await element2.getProperty('innerHTML');
  143. const inner_html2 = await element_property2.jsonValue();
  144.  
  145. await fs.writeFile("answer.html", inner_html.concat('\n', inner_html2), function(err) {
  146. if (err) return console.log(err);
  147.  
  148. });
  149. message.author.send("PAGE SCREENSHOT:", {
  150. files: ['./test.png']
  151. })
  152. message.author.send("HTML ANSWER:", {
  153. files: ['./answer.html']
  154. })
  155.  
  156. const successEmbed = new Discord.MessageEmbed()
  157. .setColor('#00F800')
  158. .setTitle('Success')
  159. .setURL('https://pain.rip')
  160. .setDescription('Your request has been processed, check your DMs!')
  161. .setThumbnail('https://images-ext-2.discordapp.net/external/OVUlwF6n8j6wANCkwDzG_Rb2ivqCd9bRF10DC2Z8lS0/https/s5.gifyu.com/images/ezgif.com-optimized7ce94c5d4a783cb.gif')
  162. .setTimestamp()
  163. .setFooter('Powered by Pain Calendar');
  164. message.channel.send(message.author.toString(), {
  165. embed: successEmbed
  166. });
  167.  
  168. queue = false;
  169. }
  170. }
  171.  
  172. })
  173. client.login(discordlogin);
  174. async function login_chegg() {
  175. global.browser = await puppeteer.launch({
  176. headless: false,
  177. slowMo: 20,
  178. userDataDir: 'C:\\userData',
  179. });
  180.  
  181. global.page = await browser.pages();
  182. var userAgent = require('user-agents');
  183.  
  184. await page[0].setUserAgent(userAgent.toString());
  185. // await page[0].setUserAgent('5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
  186. console.log("Going to Chegg");
  187. await page[0].goto("https://www.chegg.com/auth?action=login&redirect=https%3A%2F%2Fwww.chegg.com%2F", {
  188. waitUntil: 'networkidle2'
  189. });
  190.  
  191. console.log("Logging in");
  192. try {
  193. if (await page[0].$eval('.page-title > h1', el => el.innerText) === "Please verify you are a human") {
  194. console.log("Solving Captcha");
  195.  
  196. // await page[0].solveRecaptchas();
  197.  
  198. twoClient = new Client(global.twocaptchakey, {
  199. timeout: 300000,
  200. polling: 5000,
  201. throwErrors: true
  202. });
  203.  
  204. const response = await twoClient.decodeRecaptchaV2({
  205. googlekey: global.sitekey,
  206. pageurl: page[0].url()
  207. });
  208.  
  209. const answer = response._text;
  210.  
  211. console.log("Captcha Answer:");
  212. console.log(answer);
  213. page[0].evaluate(`handleCaptcha("${answer}")`);
  214. // page[0].evaluate(answer => {
  215. // handleCaptcha(answer);
  216. // }, answer)
  217. await page[0].waitFor(10000);
  218. }
  219. }
  220. catch (error) {
  221. console.log(error);
  222. }
  223. await page[0].type('#emailForSignIn', username, {
  224. delay: 100
  225. });
  226. await page[0].type('#passwordForSignIn', password, {
  227. delay: 100
  228. });
  229. await page[0].click('form > div > div > div > footer > button');
  230. console.log("Ready!");
  231. }
  232.  
Advertisement
Add Comment
Please, Sign In to add comment