Advertisement
Guest User

Untitled

a guest
Feb 14th, 2017
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.90 KB | None | 0 0
  1. var Request = require('request');
  2. var MongoClient = require('mongodb').MongoClient;
  3. var cheerio = require('cheerio');
  4. var randomUseragent = require('random-useragent');
  5. var proxyChecker = require('./proxy_checker.js');
  6. var prompt = require('prompt');
  7. require('console-png').attachTo(console);
  8. var proxies = 0;
  9. var phantom = require("phantom");
  10. var _ph, _page, _outObj;
  11.  
  12. var Horseman = require('node-horseman');
  13. var horseman = new Horseman();
  14.  
  15. var owners = {};
  16.  
  17. proxyChecker.checkProxiesFromFile(
  18. // The path to the file containing proxies
  19. 'proxy.txt',
  20. {
  21. // the complete URL to check the proxy
  22. url: 'https://login.aliexpress.com/join/buyer/expressJoin.htm?spm=2114.11020108.0.0.irtHVf&cc=&return=https%3A%2F%2Fru.aliexpress.com%2Fru_home.htm',
  23. // an optional regex to check for the presence of some text on the page
  24. regex: /confirm-password-ph/,
  25. timeout: 5000
  26. },
  27. // Callback function to be called after the check
  28. function(host, port, ok, statusCode, err) {
  29. if(ok) {
  30. proxies++;
  31. //if(proxies == 1)
  32. createAccount(host+":"+port);
  33. }
  34. }
  35. );
  36.  
  37. setInterval(function() {
  38. console.log('Working proxies: '+proxies);
  39. }, 30000);
  40.  
  41. var accounts;
  42.  
  43. MongoClient.connect('mongodb://127.0.0.1:27017/aliexpress', function (err, db) { // Подключаемся к БД
  44. accounts = db.collection('accounts');
  45. });
  46.  
  47. var a = {"Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"i","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"i","б":"b","ю":"yu"};
  48.  
  49. function transliterate(word){
  50. return word.split('').map(function (char) {
  51. return a[char] || char;
  52. }).join("");
  53. }
  54.  
  55. var createAccount = function(proxy) {
  56. var _jar = Request.jar();
  57. var request = Request.defaults({"jar": _jar, "timeout": 50000, "gzip": true, "proxy" : "http://"+proxy});
  58. var useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36';
  59.  
  60. request.get({
  61. headers: {'Referer' : 'https://aliexpress.com/', 'User-Agent': useragent},
  62. uri: 'https://login.aliexpress.com/join/buyer/expressJoin.htm?spm=2114.11020108.0.0.irtHVf&cc=&return=https%3A%2F%2Fru.aliexpress.com%2Fru_home.htm'
  63. }, function(err, response, body) {
  64. if(!body) {
  65. console.log("No body");
  66. proxies--;
  67. return;
  68. }
  69. var $ = cheerio.load(body);
  70. var csrf = $('[name=_csrf_token_]').attr('value');
  71. var u_token = $('[name=u_token]').attr('value');
  72. var pageId = (new Date() - 0 + '' + Math.floor((Math.random() * 1000)));
  73. var csi = $('[name=_csi_]').attr('value');
  74. Request.get('http://randus.ru/api.php', function(err, response, body) {
  75. if(!body) {
  76. createAccount(proxy);
  77. return;
  78. }
  79. body = JSON.parse(body);
  80. var f_name = transliterate(body.fname);
  81. var l_name = transliterate(body.lname);
  82. var username = body.login;
  83. var password = body.password;
  84. //var useragent = randomUseragent.getRandom();
  85. var body = '_csrf_token_='+csrf+'&action=buyer%2Fmain_buyer_register_action&event_submit_do_buyer_register=anything&from=&return=&cc=&registerFrom=AliExpress&registerDevice=OTHER.PC&registerInvoker=wslogin&u_token='+u_token+'&src=&groupName=expressJoinGroup&_csi_=1526b898c5c046fea291597ddc9f672f&ws_score_session_id=&pageId='+pageId+'&_fmj.ex._0.e='+username+'%40mailforspam.com&_fmj.ex._0.f='+f_name+'&_fmj.ex._0.l='+l_name+'&_fmj.ex._0.p='+password+'&_fmj.ex._0.pa='+password+'&_fmj.ex._0.i=6Qmw';
  86. request.post({
  87. headers: {'Referer' : 'https://login.aliexpress.com/join/buyer/expressJoin.htm?spm=2114.11020108.0.0.irtHVf&cc=&return=https%3A%2F%2Fru.aliexpress.com%2Fru_home.htm', 'content-type' : 'application/x-www-form-urlencoded', 'User-Agent': useragent},
  88. uri: 'https://login.aliexpress.com/join/buyer/expressJoin.htm?spm=2114.11020108.0.0.irtHVf&cc=&return=https%3A%2F%2Fru.aliexpress.com%2Fru_home.htm',
  89. body: body
  90. }, function(err, response, body) {
  91. if(!response) {
  92. console.log("No response");
  93. proxies--;
  94. return;
  95. }
  96. if(!response.headers.location) {
  97. console.log("No redirect");
  98. proxies--;
  99. return;
  100. }
  101. request.get({
  102. headers: {'Referer' : 'https://login.aliexpress.com/join/buyer/expressJoin.htm', 'User-Agent': useragent},
  103. uri: response.headers.location
  104. }, function(err, response, body) {
  105. if(!body) {
  106. console.log("No body 2");
  107. createAccount(proxy);
  108. return;
  109. }
  110. var token = body.match(/token\: \'(.*?)\'/);
  111. var target = body.match(/var targetUrl = \'(.*?)\'/);
  112. request.get({
  113. headers: {'Referer' : response.request.uri.href, 'User-Agent': useragent},
  114. uri: 'https://login.aliexpress.com'+target[1]
  115. }, function(err, response, body) {
  116. if(!body) {
  117. console.log("No body 3");
  118. createAccount(proxy);
  119. return;
  120. }
  121. var token2 = body.match(/token\:\"(.*?)\"/);
  122. request.get({
  123. headers: {'Referer' : response.request.uri.href, 'User-Agent': useragent},
  124. uri: 'https://passport.alipay.com/mini_apply_st.js?site=4&callback=window.xmanDealTokenCallback&token='+token2[1]
  125. }, function(err, response, body) {
  126. if(!body) {
  127. console.log("No body 4");
  128. createAccount(proxy);
  129. return;
  130. }
  131. var st = body.match(/st\"\:\"(.*?)\"/);
  132. request.get({
  133. headers: {'Referer' : response.request.uri.href, 'User-Agent': useragent},
  134. uri: 'https://login.aliexpress.com/validateST.htm?u_token='+token[1]+'&st='+st[1]
  135. }, function(err, response, body) {
  136. if(!body) {
  137. console.log("No body 5");
  138. createAccount(proxy);
  139. return;
  140. }
  141. body = JSON.parse(body.replace('var xman_success=',''));
  142. request.get({
  143. headers: {'Referer' : response.request.uri.href, 'User-Agent': useragent},
  144. uri: body.xlogin_urls[0]
  145. }, function(err, response, body) {
  146. if(!response) {
  147.  
  148. createAccount(proxy);
  149. return;
  150. }
  151.  
  152. console.log("Created "+username);
  153.  
  154. var _csrf_token_ = '';
  155. var gameid = '201609170001';
  156.  
  157. var playGame = function(subGameGroup, callback) {
  158.  
  159. try {
  160.  
  161. console.log(username+" playing gameID: "+subGameGroup);
  162.  
  163. var ownerMemberId;
  164.  
  165. if(subGameGroup in owners) {
  166. ownerMemberId = owners[subGameGroup];
  167. pg_cont();
  168. } else {
  169. request.get({
  170. headers: {'Referer' : 'https://ru.aliexpress.com/store/'+subGameGroup, 'User-Agent': useragent},
  171. uri: 'https://ru.aliexpress.com/store/'+subGameGroup
  172. }, function(err, response, body) {
  173. if(!body) {
  174. playGame(subGameGroup, callback);
  175. return;
  176. }
  177. //console.log(body);
  178. var ownerMemberId = body.match(/ownerMemberId\: \'(.*?)\'/);
  179.  
  180. if(!ownerMemberId) {
  181. playGame(subGameGroup, callback);
  182. return;
  183. } else {
  184. ownerMemberId = ownerMemberId[1];
  185. try {
  186. pg_cont();
  187. } catch(e) {
  188. console.log(e);
  189. playGame(subGameGroup, callback);
  190. return;
  191. }
  192. }
  193. });
  194. }
  195.  
  196. var pg_cont = function() {
  197. try {
  198. request.get({
  199. headers: {'Referer' : 'https://ru.aliexpress.com/store/'+subGameGroup, 'User-Agent': useragent},
  200. uri: 'https://verify.aliexpress.com/token/token_json.htm'
  201. }, function(err, response, body) {
  202. request.get({
  203. headers: {'Referer' : 'https://ru.aliexpress.com/store/'+subGameGroup, 'User-Agent': useragent},
  204. uri: 'https://promotion.aliexpress.com/game/ajaxInitGame.do?inviteParam=ft3gS6JZMoOigLlgbyXoJqRctK7WmjJqUJUZzE%2BCQ%2FZ%2F17n3kXYVXg%3D%3D&gameId='+gameid+'&subGameGroup='+subGameGroup
  205. }, function(err, response, body) {
  206. try {
  207. body = JSON.parse(body);
  208. } catch(e) {
  209. console.log(e);
  210. playGame(subGameGroup, callback);
  211. return;
  212. }
  213. if(!body) {
  214. console.log("Error getting rewardIndex for gameID: "+subGameGroup);
  215. callback()
  216. return;
  217. }
  218. if(!body.success) {
  219. console.log("Error getting rewardIndex for gameID: "+subGameGroup);
  220. callback()
  221. return;
  222. }
  223. var rewardIndex = body.gameRewardData.rewardIndex;
  224. var umidToken = body.umidToken;
  225. console.log(umidToken);
  226. request.get({
  227. headers: {'Referer' : 'https://ru.aliexpress.com/store/'+subGameGroup, 'User-Agent': useragent},
  228. uri: 'https://promotion.aliexpress.com/game/ajaxPlayGame.do?inviteParam=ft3gS6JZMoOigLlgbyXoJqRctK7WmjJqUJUZzE%2BCQ%2FZ%2F17n3kXYVXg%3D%3D&gameId='+gameid+'&subGameGroup='+subGameGroup+'&asac=DFL2D1SJSMWJPWZWHUIL00'
  229. }, function(err, response, body) {
  230. try {
  231. body = JSON.parse(body);
  232. } catch(e) {
  233. console.log(e);
  234. playGame(subGameGroup, callback);
  235. return;
  236. }
  237. if(!body) {
  238. console.log("Error getting rewardIndex for gameID: "+subGameGroup);
  239. callback()
  240. return;
  241. }
  242. if(!body.success) {
  243. console.log(body);
  244. console.log("Error getting playRecordId for gameID: "+subGameGroup);
  245. callback(body.code);
  246. return;
  247. }
  248. var playRecordId = body.playRecordId;
  249. var rewards = [];
  250. request.get({
  251. headers: {'Referer' : 'https://ru.aliexpress.com/store/'+subGameGroup, 'User-Agent': useragent},
  252. uri: 'https://promotion.aliexpress.com/game/ajaxFinishGame.do?inviteParam=ft3gS6JZMoOigLlgbyXoJqRctK7WmjJqUJUZzE%2BCQ%2FZ%2F17n3kXYVXg%3D%3D&gameId='+gameid+'&gameFrom=1&playRecordId='+playRecordId+'&rewardIndex='+rewardIndex+'&subGameGroup='+subGameGroup+'&asac=DFL2D1SJSMWJPWZWHUIL00'
  253. }, function(err, response, body) {
  254. if(body) {
  255. try {
  256. body = JSON.parse(body)['gameReward'];
  257. } catch(e) {
  258. console.log(e);
  259. playGame(subGameGroup, callback);
  260. return;
  261. }
  262. rewards.push(body);
  263. }
  264. request.get({
  265. headers: {'Referer' : 'https://ru.aliexpress.com/store/'+subGameGroup, 'User-Agent': useragent},
  266. uri: 'https://promotion.aliexpress.com/game/ajaxFinishGame.do?inviteParam=ft3gS6JZMoOigLlgbyXoJqRctK7WmjJqUJUZzE%2BCQ%2FZ%2F17n3kXYVXg%3D%3D&gameId='+gameid+'&gameFrom=1&playRecordId='+playRecordId+'&rewardIndex='+rewardIndex+'&subGameGroup='+subGameGroup+'&asac=DFL2D1SJSMWJPWZWHUIL00'
  267. }, function(err, response, body) {
  268. if(body) {
  269. try {
  270. body = JSON.parse(body)['gameReward'];
  271. } catch(e) {
  272. console.log(e);
  273. playGame(subGameGroup, callback);
  274. return;
  275. }
  276. rewards.push(body);
  277. }
  278. if(rewards.length > 0) {
  279. accounts.findOne({username: username}, function(err, acc) {
  280. if(!acc)
  281. accounts.insert({username: username, password: password, rewards : rewards});
  282. else {
  283. rewards.forEach(function(reward) {
  284. accounts.update({username: username}, { $push: {rewards : reward}});
  285. });
  286. }
  287. });
  288. }
  289. callback();
  290. });
  291. });
  292. });
  293. });
  294. });
  295. } catch(e) {
  296. console.log(e);
  297. playGame(subGameGroup, callback);
  298. return;
  299. }
  300. }
  301.  
  302. } catch(e) {
  303. console.log(e);
  304. playGame(subGameGroup, callback);
  305. return;
  306. }
  307. }
  308.  
  309. var maxDay = 2;
  310.  
  311. var loadDay = function(day) {
  312. if(day > maxDay)
  313. return;
  314. Request.get({
  315. headers: {'Referer' : 'http://sale.aliexpress.com/ru/__pc/1111_gameland.htm', 'User-Agent': useragent},
  316. uri: 'https://gpsfront.aliexpress.com/queryGpsProductAjax.do?widgetId=5019064&day='+day
  317. }, function(err, response, body) {
  318. var shops = JSON.parse(body).shops;
  319. var offset = 0;
  320.  
  321. var initGame = function() {
  322. playGame(shops[offset].shopId, function(error) {
  323. if(error == -40004 || error == -20105)
  324. return;
  325. offset++;
  326. if(offset == shops.length) {
  327. day++;
  328. if(day > maxDay) {
  329. console.log("Ended all shops and days");
  330. } else {
  331. loadDay(day);
  332. }
  333. } else {
  334. setTimeout(function() {
  335. initGame();
  336. }, 10000);
  337. }
  338. });
  339. }
  340.  
  341. initGame();
  342. });
  343. }
  344.  
  345. var getCsrf = function() {
  346. request.get({
  347. headers: {'Referer' : 'http://sale.aliexpress.com/ru/__pc/1111_gameland.htm', 'User-Agent': useragent},
  348. uri: 'https://bbang.ru.aliexpress.com/store/1736661'
  349. }, function(err, response, body) {
  350. try {
  351. var $ = cheerio.load(body);
  352. _csrf_token_ = $('[name=_csrf_token]').attr('value');
  353. console.log(_csrf_token_);
  354. loadDay(1);
  355. } catch(e) {
  356. getCsrf();
  357. }
  358. });
  359. }
  360.  
  361. getCsrf();
  362.  
  363. //playGame();
  364.  
  365. setTimeout(function() {
  366. createAccount(proxy);
  367. }, 60000);
  368.  
  369. });
  370. });
  371. });
  372. });
  373. });
  374. });
  375. });
  376. });
  377. }
  378.  
  379. //createAccount('94.20.21.38:3128');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement