-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsaweria-controller.js
More file actions
131 lines (117 loc) · 3.73 KB
/
Copy pathsaweria-controller.js
File metadata and controls
131 lines (117 loc) · 3.73 KB
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
130
131
//Import Module Strict
const express = require("express")
var bodyParser = require("body-parser")
const rl = require("readline").createInterface({
input: process.stdin,
output: process.stdout
})
//Local Var
var url_gotten = ""
const fs = require("fs")
var realtime_console = false;
const path = require("path")
const { mouse, left, right, up, down, straightTo, centerOf, Region, keyboard, Key, Button} = require("@nut-tree/nut-js");
const localtunnel = require("localtunnel")
const { exec } = require("child_process")
//Loaded Module when needed variable against
load()
exec(`SAWERIA COMMANDER by iFika`, function(err) {})
async function load() {
console.log("\x1b[1m", `Mengambil Data.. (Kalau Muncul Firewall, Setuju Saja.)`)
let app = express()
app.use(bodyParser.json())
app.post(`/`, function(req,res) {
fs.readdir("./DATA/donasi", async(err,files) => {
var filter = files.filter(f => f.split(".").pop() === "json");
for (i = 0; i < filter.length; i++) {
try {
const fileData = fs.readFileSync(path.join('./DATA/donasi/', filter[i]));
const json = JSON.parse(fileData.toString());
if(json.donasi == parseInt(req.body['amount_raw'])) {
if(!fs.existsSync(`DATA/load_donasi/${json.name}.js`)) {
console.log(`[WARN] : Donasi menu tersedia Namun Scriptnya tidak berhasil dijalankan karena tidak tersedia di Folder Load_donasi! Silakan Perbaiki terlebih dahulu.`)
}
else {
fs.readFile(`DATA/load_donasi/${json.name}.js`, async(err, me) => {
if(err) console.log(`Error!`)
eval(me.toString())
if(realtime_console) console.log("\x1b[42m", `[!] Permintaan ${json.name} telah dilaksanakan!`)
})
}
}
}
catch(e) {
}
if(i+1 === filter.length) {
res.status(200).send(`OK`)
}
}
})
})
app.listen(3000).on("listening", async() => {
const tunnel = await localtunnel({ port: 3000});
url_gotten = tunnel.url
console.clear()
menu_loaded()
tunnel.on('close', () => {
console.log(`Domain Closed`)
});
})
}
async function menu_loaded() {
//Executable Program Stricted
console.log("\x1b[32m", `- SAWERIA CONTROLLER OPEN SOURCE -
By : iFika
Menu Tersedia :
1. Ambil URL Untuk Saweria
2. Opsi Donasi Tersedia
3. Realtime Console (Setelah memilih menu ini, Maka tidak bisa kembali ke menu!)`)
rl.question(`Pilih Menu (1-3) > `, (data) => {
if(data == 1) {
console.clear()
ambil_url()
}
else if (data == 2) {
console.clear()
data_donasi()
}
else if (data == 3) {
console.clear()
realtime()
}
else {
console.clear()
menu_loaded()
}
})
}
async function ambil_url() {
console.log(`URL Webhook : ${url_gotten}
Cara untuk Bind URL :
1. Masuk Ke Halaman Saweria
2. Pilih Integration
3. Klik 'Webhook'
4. Lalu Nyalakan dan Paste URL yang diatas ^^`)
menu_loaded()
}
async function data_donasi() {
console.log(`Berikut Donasi yang akan ketrigger :`)
fs.readdir("./DATA/donasi", async(err,pelers) => {
var filter = pelers.filter(f => f.split(".").pop() === "json");
for (i = 0; i < filter.length; i++) {
const peler = fs.readFileSync(path.join('./DATA/donasi/', filter[i]));
const json = JSON.parse(peler.toString());
console.log(`${json.name} - Donasi yang dibutuhkan : ${json.donasi} - Script Loaded : ${(!fs.existsSync(`./DATA/donasi/${filter[i]}`) ? `No` : `Yes`)}
`)
if(i+1 === filter.length) {
menu_loaded()
}
}
})
}
async function realtime() {
console.log("\x1b[35m", `[MODE CHANGED] Kamu Dalam Mode Realtime, Untuk Keluar kamu harus restart Program ini.
Data Permintaan Akan Muncul disini!`)
realtime_console = true;
return;
}