Advertisement
Guest User

test

a guest
May 2nd, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.63 KB | None | 0 0
  1. var request = require('request');
  2. var rp = require('request-promise');
  3. var vision = require('@google-cloud/vision');
  4. var cheerio = require('cheerio');
  5. var tough = require('tough-cookie');
  6. var fs = require('fs-extra')
  7. const ENVIRONMENT = require('./env.js');
  8. const username = ENVIRONMENT.username;
  9. const password = ENVIRONMENT.password;
  10. const tpin = ENVIRONMENT.tpin;
  11. const rank = ENVIRONMENT.rank;
  12.  
  13. const client = new vision.ImageAnnotatorClient({
  14. keyFilename: ENVIRONMENT.keyFilename
  15. });
  16.  
  17. var cookie = new tough.Cookie({
  18. key: "thanet",
  19. value: "thanet",
  20. domain: 'client.argyll-tech.com',
  21. httpOnly: true,
  22. maxAge: "Infinity"
  23. });
  24. var cookiejar = rp.jar();
  25. cookiejar.setCookie(cookie, 'http://client.argyll-tech.com');
  26.  
  27.  
  28. var state = 1;
  29. var registerCredit = 0;
  30. var cashCredit = 0;
  31. var hedgeCredit = 0;
  32. var allCampaign = new Array(3);
  33. var bestCompaign = 0;
  34. var lock = false;
  35. var myinterval;
  36. var invested = false;
  37.  
  38. var bot = () => {
  39.  
  40. if (state == 1) {
  41. // login state
  42. if (!lock) {
  43. console.log("state1 unlock");
  44. console.log("time : ", new Date().toLocaleString('en-US'))
  45. lock = true;
  46. var option = {
  47. uri: 'http://client.argyll-tech.com/assets/captcha/captcha.php',
  48. jar: cookiejar,
  49. resolveWithFullResponse: true,
  50. headers: {
  51. 'User-Agent': 'Request-Promise'
  52. },
  53. encoding: null
  54. }
  55. rp.get(option)
  56. .then((res) => {
  57. const buffer = Buffer.from(res.body, 'utf8');
  58. return fs.writeFile('./captcha.png', buffer);
  59. }).then(() => {
  60. return client
  61. .textDetection('./captcha.png')
  62. .then(results => {
  63. const detections = results[0].textAnnotations;
  64. return detections[1].description;
  65. })
  66. .catch(err => {
  67. console.error('CAPCHA ERROR:', err);
  68. return "";
  69. });
  70. }).then((capcha) => {
  71. console.log(capcha);
  72. var option = {
  73. method: 'POST',
  74. uri: 'http://client.argyll-tech.com/login_check',
  75. jar: cookiejar,
  76. headers: {
  77. 'User-Agent': 'Request-Promise',
  78. },
  79. body: {
  80. username: username,
  81. password: password,
  82. req: "ajax",
  83. captcha: capcha
  84. },
  85. json: true
  86. }
  87. return rp(option).catch(()=>{
  88. console.log('Login check err');
  89. state = 1;
  90. lock = false;
  91. });
  92. }).then((res) => {
  93. if (res.status == 'ok') {
  94. state = 2;
  95. console.log("Login Success!!")
  96. } else {
  97. state = 1;
  98. }
  99. lock = false;
  100. })
  101. .catch((err) => {
  102. console.log('Login Error');
  103. console.log(err)
  104. state = 1;
  105. lock = false;
  106. });
  107. } else {
  108. console.log("state1 lock");
  109. }
  110. }
  111. if (state == 2) {
  112. //get credit
  113. if (!lock) {
  114. console.log("state2 unlock");
  115. console.log("time : ", new Date().toLocaleString('en-US'))
  116. lock = true;
  117. var option = {
  118. method: 'GET',
  119. uri: 'http://client.argyll-tech.com/user/dashboard',
  120. resolveWithFullResponse: true,
  121. headers: {
  122. 'User-Agent': 'Request-Promise'
  123. },
  124. jar: cookiejar
  125. }
  126. rp(option).then((res) => {
  127. if (res.statusCode == 200 && res.request.uri.path == "/user/dashboard") {
  128. const $ = cheerio.load(res.body);
  129. const stats = $('.dash-stat-main');
  130. registerCredit = parseFloat(stats.eq(0).text().split(" ")[1].split(",").join("")); //0
  131. cashCredit = parseFloat(stats.eq(3).text().split(" ")[1].split(",").join("")); //3
  132. hedgeCredit = parseFloat(stats.eq(2).text().split(" ")[1].split(",").join("")); //2
  133. console.log("registerCredit ", registerCredit);
  134. console.log("cashCredit ", cashCredit);
  135. console.log("hedgeCredit ", hedgeCredit);
  136. // if (cashCredit > 1 || registerCredit > 1) {
  137. // state = 4;
  138. // }
  139. if (hedgeCredit >= 10) {
  140. state = 3;
  141. }
  142. lock = false;
  143. } else {
  144. state = 1;
  145. console.log("else");
  146. lock = false;
  147. }
  148. }).catch((err) => {
  149. state = 1;
  150. console.log("catch");
  151. console.log(err);
  152. lock = false;
  153. });
  154. } else {
  155. console.log("state2 lock");
  156. }
  157. }
  158. if (state == 3) {
  159. if (!lock) {
  160. console.log("state3 unlock");
  161. console.log("time : ", new Date().toLocaleString('en-US'))
  162. lock = true;
  163. var option = {
  164. uri: 'http://client.argyll-tech.com/user/campaigns',
  165. jar: cookiejar,
  166. resolveWithFullResponse: true,
  167. headers: {
  168. 'User-Agent': 'Request-Promise'
  169. }
  170. }
  171. rp.get(option).then((res) => {
  172. if (res.statusCode == 200 && res.request.uri.path == "/user/campaigns") {
  173. const $ = cheerio.load(res.body);
  174. const table = $('table');
  175. for (var i = 0; i < 3; i++) {
  176. var rows = [];
  177. var news = [];
  178. var table_rows = table.eq(i).find("tr");
  179. for (var j = 0; j < table_rows.length; j++) {
  180. var row = {};
  181. var current = table_rows.eq(j);
  182. if (current.children().eq(6).text() == '参加' || current.children().eq(6).text() == "Join") {
  183. row.id = current.attr('id');
  184. row.interest = current.children().eq(3).text()
  185. row.event_time = current.attr("event_time");
  186. //calculate remain amount
  187. var amount = current.children().eq(5).children().eq(0).text();
  188. amount = String(amount).split("/");
  189. var use = amount[0].split(",").join("");
  190. var total = amount[1].split(",").join("");
  191. var remain = parseInt(total) - parseInt(use);
  192. row.remainAmount = remain;
  193. //calculate remain time
  194. row.point = 0;
  195. var date = new Date().getTime()
  196. var new_date = new Date(row.event_time).getTime();
  197. row.point += parseFloat(row.interest);
  198. var roi = row.point;
  199. var diff = new_date - date;
  200. if (diff < 0)
  201. diff = 0;
  202. var divDay = Math.floor(diff / (1000 * 60 * 60 * 24));
  203. // var divHr = Math.floor((diff / (1000 * 60 * 60)) % 24);
  204. // var divMin = Math.floor((diff / (1000 * 60)) % 60);
  205. row.point = row.point / parseInt(divDay + 3);
  206. //row.time = divDay + "Day " + divHr + "Hr " + divMin + "Min";
  207. if(roi >=1.9 && divDay == 0){
  208. rows.push(row);
  209. }
  210. }
  211. }
  212. allCampaign[i] = rows;
  213. }
  214. //console.log(allCampaign);
  215. for (var i = 0; i < 3; i++) {
  216. allCampaign[i] = allCampaign[i].sort((a, b) => {
  217. return b.point - a.point;
  218. });
  219. }
  220. var bestCompaign = allCampaign[rank][0];
  221. var amt = Math.floor(hedgeCredit / 10) * 10;
  222. if (amt > bestCompaign.remain) {
  223. amt = bestCompaign.remain;
  224. }
  225. console.log("amount : ", amt);
  226. if (bestCompaign != "") {
  227. var data = {
  228. lang: 'en',
  229. campaign_id: bestCompaign.id,
  230. bet_amt: amt,
  231. tpin: tpin
  232. }
  233. var option = {
  234. method: 'POST',
  235. uri: 'http://client.argyll-tech.com/index.php/user/campaign_update_bet',
  236. jar: cookiejar,
  237. headers: {
  238. 'User-Agent': 'Request-Promise',
  239. },
  240. body: data,
  241. json: true
  242. }
  243. rp(option).then((res) => {
  244. if (res.status == 'OK') {
  245. state = 2;
  246. lock = false;
  247. } else {
  248. console.log("state not ok state 3");
  249. state = 2;
  250. lock = false;
  251. }
  252. }).catch((err) => {
  253. console.log("err 3");
  254. console.log(err);
  255. state = 2;
  256. lock = false;
  257. });
  258. invested = true;
  259. var today = new Date().toLocaleString()
  260. console.log(today);
  261. console.log("Already pick roi.")
  262. }
  263. } else {
  264. state = 1;
  265. lock = false;
  266. }
  267. }).catch((err) => {
  268. console.log("err 3");
  269. console.log(err);
  270. state = 1;
  271. lock = false;
  272. });
  273. } else {
  274. console.log("state3 lock");
  275. }
  276. }
  277.  
  278. if (state == 4) {
  279. if (!lock) {
  280. console.log("state3 unlock");
  281. console.log("time : ", new Date().toLocaleString('en-US'))
  282. lock = true;
  283. var amt = String(parseInt(cashCredit));
  284. var data = {
  285. lang: 'en',
  286. top_up_amt: amt,
  287. wallet_1: '0',
  288. credit_1: '0',
  289. wallet_2: '0',
  290. credit_2: amt,
  291. tpin: tpin
  292. }
  293. var option = {
  294. method: 'POST',
  295. uri: 'http://client.argyll-tech.com/index.php/user/product/update_top_up',
  296. jar: cookiejar,
  297. headers: {
  298. 'User-Agent': 'Request-Promise',
  299. },
  300. body: data,
  301. json: true
  302. }
  303. rp(option).then((res) => {
  304. if (res.status == 'OK') {
  305. console.log("Top up is completed!!");
  306. state = 2;
  307. lock = false;
  308.  
  309. } else {
  310. console.log("Top up is failed!!");
  311. console.log(res);
  312. state = 2;
  313. lock = false;
  314. }
  315. }).catch((err) => {
  316. console.log('Top up err');
  317. console.log(err);
  318. state = 2;
  319. lock = false;
  320. })
  321. } else {
  322. console.log("state4 lock");
  323. }
  324.  
  325.  
  326. }
  327. };
  328.  
  329. myinterval = setInterval(bot, 5000);
  330.  
  331. var isStart = false;
  332.  
  333. setInterval(function () {
  334. var hour = new Date().getHours();
  335. if (hour >= 2 && hour < 23) {
  336. //start at 2.00 to 23.00
  337. if (!isStart) {
  338. console.log("start");
  339. clearInterval(myinterval);
  340. var randTime = Math.floor(Math.random() * 100) + 1;
  341. myinterval = setInterval(bot, 5000 + randTime);
  342. isStart = true;
  343. }
  344. if(invested){
  345. console.log("Investment.");
  346. invested = false;
  347. clearInterval(myinterval);
  348. isStart=true;
  349. }
  350. } else {
  351. //without invested it will close at 23.00
  352. console.log("clear");
  353. clearInterval(myinterval);
  354. isStart = false;
  355. }
  356. }, 60000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement