-
Notifications
You must be signed in to change notification settings - Fork 4
/
unfollall.js
129 lines (116 loc) · 3.92 KB
/
unfollall.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
'use strict'
const Client = require('instagram-private-api').V1;
const delay = require('delay');
const chalk = require('chalk');
const _ = require('lodash');
const inquirer = require('inquirer');
const User = [
{
type:'input',
name:'username',
message:'[>] Insert Username:',
validate: function(value){
if(!value) return 'Can\'t Empty';
return true;
}
},
{
type:'password',
name:'password',
message:'[>] Insert Password:',
mask:'*',
validate: function(value){
if(!value) return 'Can\'t Empty';
return true;
}
},
{
type:'input',
name:'mysyntx',
message:'[>] Input Total of Target You Want (ITTYW):',
validate: function(value){
value = value.match(/[0-9]/);
if (value) return true;
return 'Use Number Only!';
}
},
{
type:'input',
name:'sleep',
message:'[>] Insert Sleep (MiliSeconds):',
validate: function(value){
value = value.match(/[0-9]/);
if (value) return true;
return 'Delay is number';
}
}
]
const Login = async function(User){
const Device = new Client.Device(User.username);
const Storage = new Client.CookieMemoryStorage();
const session = new Client.Session(Device, Storage);
try {
await Client.Session.create(Device, Storage, User.username, User.password)
const account = await session.getAccount();
return Promise.resolve({session,account});
} catch (err) {
return Promise.reject(err);
}
}
const Unfollow = async function(session, accountId){
try {
await Client.Relationship.destroy(session, accountId);
return chalk`{bold.green SUKSES}`;
} catch (err){
return chalk`{bold.red GAGAL}`;
}
}
const Excute = async function(User,sleep,mysyntx){
try {
console.log(chalk`{yellow [?] Try to Login . . .}`);
const doLogin = await Login(User);
console.log(chalk`{green [!] Login Succsess, }{yellow [?] Try to Unfollow All Following . . .}`)
const feed = new Client.Feed.AccountFollowing(doLogin.session, doLogin.account.id);
var cursor;
do{
if (cursor) feed.setCursor(cursor);
var getPollowers = await feed.get();
getPollowers = _.chunk(getPollowers, mysyntx);
for (let i = 0; i < getPollowers.length; i++) {
var timeNow = new Date();
timeNow = `${timeNow.getHours()}:${timeNow.getMinutes()}:${timeNow.getSeconds()}`
await Promise.all(getPollowers[i].map(async(account) => {
const doUnfollow = await Unfollow(doLogin.session, account.id);
console.log(chalk`[{magenta ${timeNow}}] Unfollow {yellow @${account.params.username}} => ${doUnfollow}`);
}));
console.log(chalk`{yellow \n [#][>] Delay For ${sleep} MiliSeconds [<][#] \n}`);
await delay(sleep);
}
cursor = await feed.getCursor();
} while(feed.isMoreAvailable())
console.log(chalk`{bold.green [+] Unfollow All Succsess}`)
} catch(e) {
console.log(e)
}
}
console.log(chalk`
{bold.cyan
—————————————————— [INFORMATION] ————————————————————
[?] {bold.green UNFALL | Unfollow All Following IG!}
—————————————————— [THANKS TO] ————————————————————
[✓] CODE BY CYBER SCREAMER CCOCOT (ccocot@bc0de.net)
[✓] FIXING & TESTING BY SYNTAX (@officialputu_id)
[✓] CCOCOT.CO | BC0DE.NET | NAONLAH.NET | WingkoColi
[✓] SGB TEAM REBORN | Zerobyte.id | ccocot@bc0de.net
—————————————————————————————————————————————————————
What's new?
1. Input Target/delay Manual (ITTYW)
—————————————————————————————————————————————————————}
`);
inquirer.prompt(User)
.then(answers => {
Excute({
username:answers.username,
password:answers.password
},answers.sleep,answers.mysyntx);
})