Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- const lodashArray = require('lodash/array');
- const webdriverio = require('webdriverio');
- const options = { desiredCapabilities: { browserName: 'chrome', platform: 'XP'} };
- const client = webdriverio.remote(options);
- const async = require('async');
- const nl = (process.platform === 'win32' ? '\r\n' : '\n');
- let facebookURL = '';
- let usersListIterator = 0;
- let usersList = [];
- let completedUsernames = [];
- let lastToken = '';
- function urlHashSearch( name, url ) {
- if (!url) url = location.href;
- name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
- var regexS = "[\\#&]"+name+"=([^&#]*)";
- var regex = new RegExp( regexS );
- var results = regex.exec( url );
- return results == null ? null : results[1];
- }
- function urlParamSearch( name, url ) {
- if (!url) url = location.href;
- name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
- var regexS = "[\\?&]"+name+"=([^&?]*)";
- var regex = new RegExp( regexS );
- var results = regex.exec( url );
- return results == null ? null : results[1];
- }
- class FB {
- static login(user) {
- return new Promise((resolve, reject) => {
- client
- .init()
- .url('http://facebook.com/login.php')
- .pause(500)
- .setValue('#loginform input[name=email]', user.username)
- .pause(500)
- .setValue('#loginform input[name=pass]', user.password)
- .pause(500)
- .click('button[name=login]')
- .pause(500)
- .call(() => {
- let url = client.getUrl();
- let tmpInterval = setInterval(() => {
- async.parallel({
- url: (callback) => {
- client.getUrl().then(url => {
- callback(null, url);
- })
- },
- loginButtonExist:(callback) =>{
- client.isExisting('#loginbutton').then(exist => {
- callback(null, exist);
- });
- }
- },
- (err, results) => {
- if (err) {
- reject(err);
- }
- const lockAccount = '/checkpoint/';
- if (urlParamSearch('login_attempt', results.url) !== null) { //sprawdzanie czy logowanie sie nie powiodlo
- reject('unsuccessful login, bad/password probably');
- clearInterval(tmpInterval);
- }else if(results.url.indexOf(lockAccount) !== -1) {
- reject('unsuccessful login, Account locked');
- clearInterval(tmpInterval);
- }else {
- if (results.loginButtonExist === false) { //logowanie sie powiodlo bo zniknal button
- console.log('login Successfull');
- resolve();
- clearInterval(tmpInterval);
- }
- }
- });
- }, 500);
- });
- })
- }
- static gettoken()
- {
- return new Promise((resolve, reject) => {
- client.url('http://facebook.com/profile.php')
- client.pause(1000);
- var sourcebool = false;
- let tmpIntervall = setInterval(() => {
- client.getUrl().then(url => {
- client.isExisting('div[id=bluebarRoot]').then(isExisting => {
- if (isExisting === true) {
- clearInterval(tmpIntervall);
- if(sourcebool == false){
- sourcebool = true;
- client.getSource().then(function(source) {
- var sourcec = source;
- var string1 =source;
- var n =sourcec.search("EAAAAU");
- string1 = string1.slice(n);
- n =string1.search("\"");
- const accessToken = string1.slice(0,n);
- fs.appendFile('./tokens.txt', accessToken+nl, (err) => {
- if (err) return console.log(err);
- console.log(accessToken);
- fs.appendFile('./completed.txt', usersList[usersListIterator].username+nl, (err) => {
- resolve();
- });
- });
- });
- }
- }
- })
- })
- },100);
- })
- }
- }
- function facebookInit() {
- if (typeof usersList[usersListIterator] !== 'undefined') {
- FB.login(usersList[usersListIterator])
- .then(FB.gettoken)
- .then(() => {
- client.end().then(() => {
- setTimeout(() => {
- usersListIterator++;
- console.log('token saved');
- facebookInit();
- }, 2000);
- })
- })
- .catch(err => {
- client.end().then(() => {
- setTimeout(() => {
- console.log(err);
- fs.appendFile('./completed.txt', usersList[usersListIterator].username+nl, (err) => {
- usersListIterator++;
- facebookInit();
- });
- }, 2000);
- })
- })
- }else {
- console.log('DONE');
- }
- }
- fs.readFile('./config.json', 'utf8', (err,data) => {
- if (err) {
- return console.log(err);
- }
- const jsonData = JSON.parse(data);
- facebookURL = 'https://www.facebook.com/v2.8/dialog/oauth?redirect_uri=fbconnect://success&scope=email,publish_actions,publish_pages,user_about_me,user_actions.books,user_actions.music,user_actions.news,user_actions.video,user_activities,user_birthday,user_education_history,user_events,user_games_activity,user_groups,user_hometown,user_interests,user_likes,user_location,user_notes,user_photos,user_questions,user_relationship_details,user_relationships,user_religion_politics,user_status,user_subscriptions,user_videos,user_website,user_work_history,friends_about_me,friends_actions.books,friends_actions.music,friends_actions.news,friends_actions.video,friends_activities,friends_birthday,friends_education_history,friends_events,friends_games_activity,friends_groups,friends_hometown,friends_interests,friends_likes,friends_location,friends_notes,friends_photos,friends_questions,friends_relationship_details,friends_relationships,friends_religion_politics,friends_status,friends_subscriptions,friends_videos,friends_website,friends_work_history,ads_management,create_event,create_note,export_stream,friends_online_presence,manage_friendlists,manage_notifications,manage_pages,photo_upload,publish_stream,read_friendlists,read_insights,read_mailbox,read_page_mailboxes,read_requests,read_stream,rsvp_event,share_item,sms,status_update,user_online_presence,video_upload,xmpp_login&response_type=token,code&client_id=193278124048833';
- fs.readFile('./users.txt', 'utf8', (err,data) => {
- if (err) {
- return console.log(err);
- }
- const rows = data.split(/\r|\n/);
- rows.filter(row => row !== '')
- .map(row => {
- const userData = row.split(':');
- usersList.push({
- username: userData[0],
- password: userData[1]
- });
- });
- fs.readFile('./completed.txt', 'utf8', (err,data) => {
- if (err) {
- return console.log(err);
- }
- const rows = data.split(/\r|\n/);
- completedUsernames = rows.filter(row => row !== '');
- completedUsernames.map(user => {
- const index = lodashArray.findIndex(usersList, { 'username': user });
- if (index !== -1) {
- console.log('account already done: ' + user);
- usersList.splice(index, 1);
- }
- })
- console.log('Loaded users: ' + usersList.length);
- if (usersList.length > 0) {
- facebookInit();
- }else {
- console.log('Not enought users!');
- }
- });
- });
- });
- process.on('uncaughtException', (err) => {
- console.log(err);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement