-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathapp.js
129 lines (99 loc) Β· 4.65 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env node
const chalk = require('chalk'); // console.log() Colors
const Client = require('instagram-private-api').V1; //Instagram API
const sleep = require('system-sleep'); // System Sleep
const fs = require('fs');
const prompt = require('prompt');
const path = require('path');
let USERNAME;
let PASSWORD;
let storage;
let connected = false;
const device = new Client.Device('someuser');
let ACCOUNT_DATA;
// Clear Cookies Folder
const clearFolder = () => {
const directory = 'cookies';
fs.readdir(directory, (err, files) => {
if (err) throw err;
for (const file of files) {
fs.unlink(path.join(directory, file), err => {
if (err) throw err;
});
}
});
}
const followUser = tofollow => {
// wait 1 sec for every follow
sleep(1000);
Client.Session.create(device, storage, USERNAME, PASSWORD)
.then(function (session) {
if (connected === false){
console.log(chalk.green("\n Connected Successfully !\n"));
connected = true;
}
return [session, Client.Account.searchForUser(session, tofollow)]
})
.spread(function (session, account) {
return Client.Relationship.create(session, account.id);
})
.then(function (relationship) {
let accountStatus = relationship.params.outgoing_request ? "(Private)" : "(Public)"
console.log(` User ${chalk.green(tofollow)} ${accountStatus} - Followed`);
})
.catch(function (error) {
if (error.name === 'IGAccountNotFoundError') {
console.log(`${chalk.red(" User " + tofollow + " - Not Found!" )}`)
} else {
//console.log(`${chalk.red('\n Error - Please Check your Account!')}`);
process.exit(1);
}
});
}
async function main() {
clearFolder();
console.log(chalk.green(
`
βββββββ ββββββββββββββββββββ ββββββ ββββββββ βββββββ βββ βββ βββββββ βββ βββ
ββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββ βββ ββββββββββββ βββ
βββββββββ βββββββββββ βββ ββββββββββββββ βββ ββββββ βββ βββ ββββββ ββ βββ
βββββββββββββββββββββ βββ ββββββββββββββ βββ ββββββ βββ βββ βββββββββββββ
ββββββ ββββββββββββββ βββ βββ ββββββ ββββββββββββββββββββββββββββββββββββββββββββ
ββββββ βββββββββββββ βββ βββ ββββββ βββββββ ββββββββββββββββ βββββββ ββββββββ
`
));
let prompt_attributes = [{
name: 'username',
validator: /^([A-Za-z0-9_](?:(?:[A-Za-z0-9_]|(?:\.(?!\.))){0,28}(?:[A-Za-z0-9_]))?)$/,
warning: 'Username is not valid ! Try Again ...',
message: ' Your Instagram Username',
required: true
},
{
name: 'password',
message: ' Your Instagram Password',
hidden: true,
required: true
}
];
// Remove first string 'prompt:'
prompt.message = ''
prompt.start();
prompt.get(prompt_attributes, function (err, result) {
if (err) {
// Exit
return 1;
} else {
// Get user input from result object.
USERNAME = result.username;
PASSWORD = result.password;
storage = new Client.CookieFileStorage(__dirname + '\\cookies\\' + USERNAME + '.json');
let array = fs.readFileSync('userslist.txt').toString().replace(/\r/g, '').split("\n");
for (i in array) {
followUser(array[i]);
}
clearFolder();
}
});
}
main();