gj-boomlings-api 1.2.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/functions/blockUser.js +5 -32
- package/functions/deleteAccountPost.js +3 -19
- package/functions/deleteComment.js +3 -22
- package/functions/dlLevel.js +2 -4
- package/functions/dlMessage.js +32 -0
- package/functions/getAccountPosts.js +3 -18
- package/functions/getCommentHistory.js +1 -18
- package/functions/getCreatorScores.js +2 -2
- package/functions/getMapPacks.js +6 -20
- package/functions/getMessages.js +37 -0
- package/functions/getProfile.js +5 -20
- package/functions/getTop100.js +2 -2
- package/functions/getUserLevels.js +0 -16
- package/functions/searchUsers.js +22 -0
- package/functions/unblockUser.js +5 -32
- package/functions/updateLevelDesc.js +5 -19
- package/functions/uploadAccountPost.js +5 -20
- package/functions/uploadComment.js +7 -23
- package/functions/uploadMessage.js +39 -0
- package/index.js +9 -5
- package/misc/decB64.js +7 -0
- package/misc/decCommentFromHistory.js +2 -2
- package/misc/decMessage.js +34 -0
- package/misc/decMsg.js +30 -0
- package/misc/decScoresUser.js +45 -0
- package/misc/decodeAccountPost.js +2 -2
- package/misc/decodeGJComment.js +2 -2
- package/misc/decodeLevel.js +4 -4
- package/misc/decodeMapPack.js +0 -1
- package/misc/decodeUserResult.js +1 -5
- package/{functions/encURLSafeBase64.js → misc/encB64.js} +2 -3
- package/package.json +2 -3
- package/docs/blockUser.md +0 -21
- package/docs/deleteAccountPost.md +0 -23
- package/docs/dlLevel.md +0 -52
- package/docs/getAccountPosts.md +0 -71
- package/docs/getCommentHistory.md +0 -123
- package/docs/getComments.md +0 -113
- package/docs/getCreatorScores.md +0 -60
- package/docs/getDailyLevel.md +0 -17
- package/docs/getGauntlets.md +0 -81
- package/docs/getLevelByID.md +0 -51
- package/docs/getMapPacks.md +0 -88
- package/docs/getOfficialSongInfo.md +0 -25
- package/docs/getProfile.md +0 -36
- package/docs/getSongInfo.md +0 -26
- package/docs/getTop100.md +0 -56
- package/docs/getUserLevels.md +0 -84
- package/docs/getWeeklyDemon.md +0 -17
- package/docs/objects/acc_comment.md +0 -19
- package/docs/objects/comment.md +0 -34
- package/docs/objects/level.md +0 -95
- package/docs/objects/song.md +0 -28
- package/docs/objects/user.md +0 -61
- package/docs/reportLevel.md +0 -19
- package/docs/searchLevels.md +0 -113
- package/docs/updateLevelDesc.md +0 -23
- package/docs/uploadAccountPost.md +0 -27
- package/docs/uploadComment.md +0 -28
- package/functions/decURLSafeBase64.js +0 -10
package/functions/blockUser.js
CHANGED
|
@@ -5,38 +5,11 @@ module.exports = {
|
|
|
5
5
|
if(!username || username == "") throw new Error("Please provide your player ID or username!");
|
|
6
6
|
if(!password || password == "") throw new Error("Please provide your password!");
|
|
7
7
|
const axios = require("axios");
|
|
8
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
8
9
|
const {headers, server} = require("../config.json");
|
|
9
10
|
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
binaryVersion: 35,
|
|
13
|
-
gdw: 0,
|
|
14
|
-
str: username,
|
|
15
|
-
secret: "Wmfd2893gb7"
|
|
16
|
-
}, {
|
|
17
|
-
headers: headers
|
|
18
|
-
}).catch(e => {
|
|
19
|
-
if(e.response.data == -1) throw new Error(`Couldn't find a "${username}" user.`)
|
|
20
|
-
throw new Error(e.response.data)
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
let accID = resp.data.split(":16:")[1].split(":3:")[0];
|
|
24
|
-
|
|
25
|
-
const userData = {
|
|
26
|
-
gameVersion: 21,
|
|
27
|
-
binaryVersion: 35,
|
|
28
|
-
gdw: 0,
|
|
29
|
-
str: target,
|
|
30
|
-
secret: "Wmfd2893gb7"
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
let r = await axios.post(server + "getGJUsers20.php", userData, {
|
|
34
|
-
headers: headers
|
|
35
|
-
}).catch(e => {
|
|
36
|
-
if(e.response.data == -1) throw new Error(`Couldn't find a "${username}" user.`)
|
|
37
|
-
throw new Error(e.response.data)
|
|
38
|
-
})
|
|
39
|
-
let targetId = r.data.split(":16:")[1].split(":3:")[0];
|
|
11
|
+
let user = await searchUsers(username);
|
|
12
|
+
let targetObj = await searchUsers(username);
|
|
40
13
|
|
|
41
14
|
const {gjp} = require("../misc/gjp.js");
|
|
42
15
|
|
|
@@ -45,8 +18,8 @@ module.exports = {
|
|
|
45
18
|
binaryVersion: 35,
|
|
46
19
|
gdw: 0,
|
|
47
20
|
secret: "Wmfd2893gb7",
|
|
48
|
-
targetAccountID:
|
|
49
|
-
accountID:
|
|
21
|
+
targetAccountID: targetObj.accountID,
|
|
22
|
+
accountID: user.accountID,
|
|
50
23
|
gjp: gjp(password)
|
|
51
24
|
}
|
|
52
25
|
|
|
@@ -1,31 +1,15 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
deleteAccountPost:
|
|
3
3
|
async function(id, str, password) {
|
|
4
|
-
const {encURLSafeBase64} = require("./encURLSafeBase64.js");
|
|
5
4
|
if(!id || id == "") throw new Error("Please provide an account post ID!");
|
|
6
5
|
if(!str || str == "") throw new Error("Please provide a user ID or name!");
|
|
7
6
|
if(!password || password == "") throw new Error("Please provide a password!");
|
|
8
7
|
|
|
9
8
|
const axios = require("axios");
|
|
10
9
|
const { headers, server } = require("../config.json");
|
|
10
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
gameVersion: 21,
|
|
14
|
-
binaryVersion: 35,
|
|
15
|
-
gdw: 0,
|
|
16
|
-
str: str,
|
|
17
|
-
secret: "Wmfd2893gb7"
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
21
|
-
headers: headers
|
|
22
|
-
}).catch(e => {
|
|
23
|
-
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
24
|
-
throw new Error(e.response.data);
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
let accId = r.data.split(":16:")[1].split(":3:")[0];
|
|
28
|
-
if(Number(accId) < 71 || accId.includes(":")) accId = r.data.split(":16:")[2].split(":3:")[0];
|
|
12
|
+
let user = await searchUsers(str);
|
|
29
13
|
|
|
30
14
|
const XOR = require("../misc/xor.js");
|
|
31
15
|
const xor = new XOR();
|
|
@@ -34,7 +18,7 @@ module.exports = {
|
|
|
34
18
|
gameVersion: 21,
|
|
35
19
|
binaryVersion: 35,
|
|
36
20
|
gdw: 0,
|
|
37
|
-
accountID:
|
|
21
|
+
accountID: user.accountID,
|
|
38
22
|
secret: "Wmfd2893gb7",
|
|
39
23
|
gjp: xor.encrypt(password, 37526),
|
|
40
24
|
commentID: id,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
deleteComment:
|
|
3
3
|
async function(id, lvl, str, password) {
|
|
4
|
-
const {encURLSafeBase64} = require("./encURLSafeBase64.js");
|
|
5
4
|
if(!id || id == "") throw new Error("Please provide a comment ID!");
|
|
6
5
|
if(!lvl || lvl == "") throw new Error("Please provide a level ID!");
|
|
7
6
|
if(!str || str == "") throw new Error("Please provide a user ID or name!");
|
|
@@ -9,33 +8,15 @@ module.exports = {
|
|
|
9
8
|
|
|
10
9
|
const axios = require("axios");
|
|
11
10
|
const { headers, server } = require("../config.json");
|
|
11
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
gameVersion: 21,
|
|
15
|
-
binaryVersion: 35,
|
|
16
|
-
gdw: 0,
|
|
17
|
-
str: str,
|
|
18
|
-
secret: "Wmfd2893gb7"
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
22
|
-
headers: headers
|
|
23
|
-
}).catch(e => {
|
|
24
|
-
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
25
|
-
throw new Error(e.response.data);
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
let accId = r.data.split(":16:")[1].split(":3:")[0];
|
|
29
|
-
if(Number(accId) < 71 || accId.includes(":")) accId = r.data.split(":16:")[2].split(":3:")[0];
|
|
13
|
+
let user = await searchUsers(str);
|
|
30
14
|
|
|
31
15
|
const XOR = require("../misc/xor.js");
|
|
32
16
|
const xor = new XOR();
|
|
33
17
|
|
|
34
18
|
let dACdata = {
|
|
35
|
-
|
|
36
|
-
binaryVersion: 35,
|
|
37
|
-
gdw: 0,
|
|
38
|
-
accountID: accId,
|
|
19
|
+
accountID: user.accountID,
|
|
39
20
|
secret: "Wmfd2893gb7",
|
|
40
21
|
levelID: lvl,
|
|
41
22
|
gjp: xor.encrypt(password, 37526),
|
package/functions/dlLevel.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
dlLevel:
|
|
3
3
|
async function(level) {
|
|
4
|
-
const
|
|
4
|
+
const {decB64} = require("../misc/decB64.js");
|
|
5
5
|
const zlib = require("zlib");
|
|
6
6
|
if(!level || level == "") throw new Error("Please provide a level ID.");
|
|
7
7
|
if(isNaN(level)) throw new Error("The level parameter should be a number.");
|
|
@@ -37,12 +37,11 @@ module.exports = {
|
|
|
37
37
|
|
|
38
38
|
let id = levelInfo[0].split("1:")[1];
|
|
39
39
|
let name = levelInfo[1].split("2:")[1];
|
|
40
|
-
let description =
|
|
40
|
+
let description = decB64(levelInfo[2].split("3:")[1])
|
|
41
41
|
let levelStr = levelInfo[3].split("4:")[1];
|
|
42
42
|
let version = levelInfo[4].split("5:")[1];
|
|
43
43
|
let difficulty = levelInfo[7].split("9:")[1];
|
|
44
44
|
let downloads = levelInfo[8].split("10:")[1];
|
|
45
|
-
let officialSong = levelInfo[9].split("12:")[1];
|
|
46
45
|
let gameVersion = levelInfo[10].split("13:")[1];
|
|
47
46
|
let likes = levelInfo[11].split("14:")[1];
|
|
48
47
|
let demonBool = levelInfo[12].split("17:")[1];
|
|
@@ -54,7 +53,6 @@ module.exports = {
|
|
|
54
53
|
let twoPlayer = levelInfo[21].split("31:")[1];
|
|
55
54
|
let uploaded = levelInfo[22].split("28:")[1];
|
|
56
55
|
let updated = levelInfo[23].split("29:")[1];
|
|
57
|
-
let customSong = levelInfo[24].split("35:")[1];
|
|
58
56
|
let coins = levelInfo[26].split("37:")[1];
|
|
59
57
|
let verifiedCoins = levelInfo[27].split("38:")[1];
|
|
60
58
|
let starsRequested = levelInfo[28].split("39:")[1];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
dlMessage:
|
|
3
|
+
async function(id, user, pass) {
|
|
4
|
+
if(!id || id == "") throw new Error("Please provide a message ID!");
|
|
5
|
+
if(Number(id) == NaN) throw new Error("The message ID should be a number!");
|
|
6
|
+
if(!user || user == "") throw new Error("Please provide your player ID or username!");
|
|
7
|
+
if(!pass || pass == "") throw new Error("Please provide your password!");
|
|
8
|
+
|
|
9
|
+
const axios = require("axios");
|
|
10
|
+
const {headers, server, secret} = require("../config.json");
|
|
11
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
12
|
+
const {gjp} = require("../misc/gjp.js");
|
|
13
|
+
const {decMessage} = require("../misc/decMessage.js");
|
|
14
|
+
|
|
15
|
+
let userObj = await searchUsers(user);
|
|
16
|
+
|
|
17
|
+
const msgData = {
|
|
18
|
+
accountID: userObj.accountID,
|
|
19
|
+
gjp: gjp(pass),
|
|
20
|
+
secret: secret,
|
|
21
|
+
messageID: id
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let res = await axios.post(server + "downloadGJMessage20.php", msgData, {
|
|
25
|
+
headers: headers
|
|
26
|
+
}).catch(e => {
|
|
27
|
+
throw new Error(e.response.data)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
return decMessage(res.data);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -5,30 +5,15 @@ module.exports = {
|
|
|
5
5
|
const { decodeAccountPost } = require("../misc/decodeAccountPost.js");
|
|
6
6
|
const axios = require("axios");
|
|
7
7
|
const { headers, server } = require("../config.json");
|
|
8
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
gameVersion: 21,
|
|
11
|
-
binaryVersion: 35,
|
|
12
|
-
gdw: 0,
|
|
13
|
-
str: str,
|
|
14
|
-
secret: "Wmfd2893gb7"
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
18
|
-
headers: headers
|
|
19
|
-
}).catch(e => {
|
|
20
|
-
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
21
|
-
throw new Error(e.response.data);
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
let id = r.data.split(":16:")[1].split(":3:")[0];
|
|
25
|
-
if(Number(id) < 71 || id.includes(":")) id = r.data.split(":16:")[2].split(":3:")[0];
|
|
10
|
+
let user = await searchUsers(str);
|
|
26
11
|
|
|
27
12
|
let ACdata = {
|
|
28
13
|
gameVersion: 21,
|
|
29
14
|
binaryVersion: 35,
|
|
30
15
|
gdw: 0,
|
|
31
|
-
accountID:
|
|
16
|
+
accountID: user.accountID,
|
|
32
17
|
secret: "Wmfd2893gb7",
|
|
33
18
|
page: page - 1
|
|
34
19
|
};
|
|
@@ -6,24 +6,7 @@ module.exports = {
|
|
|
6
6
|
const {headers, server} = require("../config.json");
|
|
7
7
|
const {decCommentFromHistory} = require("../misc/decCommentFromHistory.js");
|
|
8
8
|
const {getProfile} = require("./getProfile.js");
|
|
9
|
-
|
|
10
|
-
const userData = {
|
|
11
|
-
gameVersion: 21,
|
|
12
|
-
binaryVersion: 35,
|
|
13
|
-
gdw: 0,
|
|
14
|
-
str: str,
|
|
15
|
-
secret: "Wmfd2893gb7"
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
let r = await axios.post(server + "getGJUsers20.php", userData, {
|
|
19
|
-
headers: headers
|
|
20
|
-
}).catch(e => {
|
|
21
|
-
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
22
|
-
throw new Error(e.response.data);
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
let id = r.data.split(":2:")[1].split(":13:")[0];
|
|
26
|
-
|
|
9
|
+
|
|
27
10
|
const user = await getProfile(id);
|
|
28
11
|
if(user.commentHistory != "all") throw new Error("Whoops! This user has disabled viewing his comment history!")
|
|
29
12
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
getCreatorScores:
|
|
3
3
|
async function() {
|
|
4
|
-
const {
|
|
4
|
+
const { decScoresUser } = require("../misc/decScoresUser.js");
|
|
5
5
|
const axios = require("axios");
|
|
6
6
|
const { headers, server, secret } = require("../config.json");
|
|
7
7
|
|
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
|
22
22
|
|
|
23
23
|
let result = [];
|
|
24
24
|
players.forEach(p => {
|
|
25
|
-
result.push(
|
|
25
|
+
result.push(decScoresUser(p));
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
return result;
|
package/functions/getMapPacks.js
CHANGED
|
@@ -2,6 +2,7 @@ module.exports = {
|
|
|
2
2
|
getMapPacks:
|
|
3
3
|
async function(page = 1) {
|
|
4
4
|
const { decodeMapPack } = require("../misc/decodeMapPack.js");
|
|
5
|
+
|
|
5
6
|
const axios = require("axios");
|
|
6
7
|
const { headers, server } = require("../config.json");
|
|
7
8
|
const data = {
|
|
@@ -16,26 +17,11 @@ module.exports = {
|
|
|
16
17
|
throw new Error(e.response.data);
|
|
17
18
|
})
|
|
18
19
|
|
|
19
|
-
let
|
|
20
|
-
let
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
let sixthMapPack;
|
|
25
|
-
let seventhMapPack;
|
|
26
|
-
let eighthMapPack;
|
|
27
|
-
let ninthMapPack;
|
|
28
|
-
let tenthMapPack;
|
|
29
|
-
let result = [decodeMapPack(firstMapPack),decodeMapPack(secondMapPack),decodeMapPack(thirdMapPack),decodeMapPack(fourthMapPack),decodeMapPack(fifthMapPack)]
|
|
30
|
-
|
|
31
|
-
if(res.data.split("|").length - 1 == 9) {
|
|
32
|
-
sixthMapPack = res.data.split("|")[5].split("|")[0];
|
|
33
|
-
seventhMapPack = res.data.split("|")[6].split("|")[0];
|
|
34
|
-
eighthMapPack = res.data.split("|")[7].split("|")[0];
|
|
35
|
-
ninthMapPack = res.data.split("|")[8].split("|")[0];
|
|
36
|
-
tenthMapPack = res.data.split("|")[9].split("|")[0];
|
|
37
|
-
result.push(decodeMapPack(sixthMapPack),decodeMapPack(seventhMapPack),decodeMapPack(eighthMapPack),decodeMapPack(ninthMapPack),decodeMapPack(tenthMapPack))
|
|
38
|
-
}
|
|
20
|
+
let packs = res.data.split("|");
|
|
21
|
+
let result = [];
|
|
22
|
+
packs.forEach(p => {
|
|
23
|
+
result.push(decodeMapPack(p));
|
|
24
|
+
})
|
|
39
25
|
|
|
40
26
|
return result;
|
|
41
27
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
getMessages:
|
|
3
|
+
async function(user, pass, page = 1) {
|
|
4
|
+
if(!user || user == "") throw new Error("Please provide your player ID or username!");
|
|
5
|
+
if(!pass || pass == "") throw new Error("Please provide your password!");
|
|
6
|
+
if(Number(page) == NaN) throw new Error("The page should be a number!");
|
|
7
|
+
|
|
8
|
+
const axios = require("axios");
|
|
9
|
+
const {headers, server, secret} = require("../config.json");
|
|
10
|
+
const {gjp} = require("../misc/gjp.js");
|
|
11
|
+
const {decMsg} = require("../misc/decMsg.js");
|
|
12
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
13
|
+
|
|
14
|
+
let userObj = await searchUsers(user);
|
|
15
|
+
|
|
16
|
+
const msgData = {
|
|
17
|
+
accountID: userObj.accountID,
|
|
18
|
+
gjp: gjp(pass),
|
|
19
|
+
secret: secret,
|
|
20
|
+
page: page - 1
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let res = await axios.post(server + "getGJMessages20.php", msgData, {
|
|
24
|
+
headers: headers
|
|
25
|
+
}).catch(e => {
|
|
26
|
+
throw new Error(e.response.data)
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
let msgs = res.data.split("|");
|
|
30
|
+
let result = [];
|
|
31
|
+
msgs.forEach(m => {
|
|
32
|
+
result.push(decMsg(m));
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
}
|
package/functions/getProfile.js
CHANGED
|
@@ -4,34 +4,19 @@ module.exports = {
|
|
|
4
4
|
if(!str || str == "") throw new Error("Please provide a user ID or name!");
|
|
5
5
|
const axios = require("axios");
|
|
6
6
|
const { headers, server } = require("../config.json");
|
|
7
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
gameVersion: 21,
|
|
10
|
-
binaryVersion: 35,
|
|
11
|
-
gdw: 0,
|
|
12
|
-
str: str,
|
|
13
|
-
secret: "Wmfd2893gb7"
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
17
|
-
headers: headers
|
|
18
|
-
}).catch(e => {
|
|
19
|
-
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
20
|
-
throw new Error(e.response.data);
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
let id = r.data.split(":16:")[1].split(":3:")[0];
|
|
24
|
-
if(Number(id) < 71 || id.includes(":")) id = r.data.split(":16:")[2].split(":3:")[0];
|
|
9
|
+
let user = await searchUsers(str);
|
|
25
10
|
|
|
26
|
-
let
|
|
11
|
+
let data = {
|
|
27
12
|
gameVersion: 21,
|
|
28
13
|
binaryVersion: 35,
|
|
29
14
|
gdw: 0,
|
|
30
|
-
targetAccountID:
|
|
15
|
+
targetAccountID: user.accountID,
|
|
31
16
|
secret: "Wmfd2893gb7"
|
|
32
17
|
};
|
|
33
18
|
|
|
34
|
-
let res = await axios.post(server + "getGJUserInfo20.php",
|
|
19
|
+
let res = await axios.post(server + "getGJUserInfo20.php", data, {
|
|
35
20
|
headers: headers
|
|
36
21
|
}).catch(e => {
|
|
37
22
|
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
package/functions/getTop100.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
getTop100:
|
|
3
3
|
async function() {
|
|
4
|
-
const {
|
|
4
|
+
const { decScoresUser } = require("../misc/decScoresUser.js");
|
|
5
5
|
const axios = require("axios");
|
|
6
6
|
const { headers, server, secret } = require("../config.json");
|
|
7
7
|
|
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
|
22
22
|
|
|
23
23
|
let result = [];
|
|
24
24
|
players.forEach(p => {
|
|
25
|
-
result.push(
|
|
25
|
+
result.push(decScoresUser(p));
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
return result;
|
|
@@ -7,22 +7,6 @@ module.exports = {
|
|
|
7
7
|
const { headers, secret, server } = require("../config.json");
|
|
8
8
|
const { getLevelByID } = require("../functions/getLevelByID.js");
|
|
9
9
|
|
|
10
|
-
const userdata = {
|
|
11
|
-
gameVersion: 21,
|
|
12
|
-
binaryVersion: 35,
|
|
13
|
-
gdw: 0,
|
|
14
|
-
str: str,
|
|
15
|
-
secret: "Wmfd2893gb7"
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
let r = await axios.post(server + "getGJUsers20.php", userdata, {
|
|
19
|
-
headers: headers
|
|
20
|
-
}).catch(e => {
|
|
21
|
-
throw new Error(e.response.data);
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
let id = r.data.split(":2:")[1].split(":13:")[0];
|
|
25
|
-
|
|
26
10
|
const data = {
|
|
27
11
|
type: 5,
|
|
28
12
|
str: id,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
searchUsers:
|
|
3
|
+
async function(str) {
|
|
4
|
+
if(!str || str == '') throw new Error("Please provide a query!");
|
|
5
|
+
|
|
6
|
+
const axios = require("axios");
|
|
7
|
+
const { headers, server, secret } = require("../config.json");
|
|
8
|
+
const { decodeUserResult } = require("../misc/decodeUserResult.js");
|
|
9
|
+
|
|
10
|
+
let res = await axios.post(server + "getGJUsers20.php", {
|
|
11
|
+
str: str,
|
|
12
|
+
secret: "Wmfd2893gb7"
|
|
13
|
+
}, {
|
|
14
|
+
headers: headers
|
|
15
|
+
}).catch(e => {
|
|
16
|
+
if(e.response.data == -1) throw new Error(`Couldn't find a "${username}" user.`)
|
|
17
|
+
throw new Error(e.response.data)
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
return decodeUserResult(res.data);
|
|
21
|
+
}
|
|
22
|
+
}
|
package/functions/unblockUser.js
CHANGED
|
@@ -6,37 +6,10 @@ module.exports = {
|
|
|
6
6
|
if(!password || password == "") throw new Error("Please provide your password!");
|
|
7
7
|
const axios = require("axios");
|
|
8
8
|
const {headers, server} = require("../config.json");
|
|
9
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
9
10
|
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
binaryVersion: 35,
|
|
13
|
-
gdw: 0,
|
|
14
|
-
str: username,
|
|
15
|
-
secret: "Wmfd2893gb7"
|
|
16
|
-
}, {
|
|
17
|
-
headers: headers
|
|
18
|
-
}).catch(e => {
|
|
19
|
-
if(e.response.data == -1) throw new Error(`Couldn't find a "${username}" user.`)
|
|
20
|
-
throw new Error(e.response.data)
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
let accID = resp.data.split(":16:")[1].split(":3:")[0];
|
|
24
|
-
|
|
25
|
-
const userData = {
|
|
26
|
-
gameVersion: 21,
|
|
27
|
-
binaryVersion: 35,
|
|
28
|
-
gdw: 0,
|
|
29
|
-
str: target,
|
|
30
|
-
secret: "Wmfd2893gb7"
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
let r = await axios.post(server + "getGJUsers20.php", userData, {
|
|
34
|
-
headers: headers
|
|
35
|
-
}).catch(e => {
|
|
36
|
-
if(e.response.data == -1) throw new Error(`Couldn't find a "${username}" user.`)
|
|
37
|
-
throw new Error(e.response.data)
|
|
38
|
-
})
|
|
39
|
-
let targetId = r.data.split(":16:")[1].split(":3:")[0];
|
|
11
|
+
let user = await searchUsers(username);
|
|
12
|
+
let target = await searchUsers(target);
|
|
40
13
|
|
|
41
14
|
const {gjp} = require("../misc/gjp.js");
|
|
42
15
|
|
|
@@ -45,8 +18,8 @@ module.exports = {
|
|
|
45
18
|
binaryVersion: 35,
|
|
46
19
|
gdw: 0,
|
|
47
20
|
secret: "Wmfd2893gb7",
|
|
48
|
-
targetAccountID:
|
|
49
|
-
accountID:
|
|
21
|
+
targetAccountID: target.accountID,
|
|
22
|
+
accountID: user.accountID,
|
|
50
23
|
gjp: gjp(password)
|
|
51
24
|
}
|
|
52
25
|
|
|
@@ -11,32 +11,18 @@ module.exports = {
|
|
|
11
11
|
|
|
12
12
|
const axios = require("axios");
|
|
13
13
|
const { headers, server, secret } = require("../config.json");
|
|
14
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
gameVersion: 21,
|
|
17
|
-
binaryVersion: 35,
|
|
18
|
-
gdw: 0,
|
|
19
|
-
str: user,
|
|
20
|
-
secret: secret
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
24
|
-
headers: headers
|
|
25
|
-
}).catch(e => {
|
|
26
|
-
throw new Error(e.response.data);
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
let id = r.data.split(":16:")[1].split(":3:")[0];
|
|
30
|
-
if(Number(id) < 71 || id.includes(":")) id = r.data.split(":16:")[2].split(":3:")[0];
|
|
16
|
+
let userObj = await searchUsers(user);
|
|
31
17
|
|
|
32
18
|
const { gjp } = require("../misc/gjp.js");
|
|
33
|
-
const {
|
|
19
|
+
const { encB64 } = require("../misc/encB64.js");
|
|
34
20
|
|
|
35
21
|
const uLDdata = {
|
|
36
|
-
accountID:
|
|
22
|
+
accountID: userObj.accountID,
|
|
37
23
|
gjp: gjp(password),
|
|
38
24
|
levelID: level,
|
|
39
|
-
levelDesc:
|
|
25
|
+
levelDesc: encB64(desc),
|
|
40
26
|
secret: secret
|
|
41
27
|
}
|
|
42
28
|
|
|
@@ -1,42 +1,27 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
uploadAccountPost:
|
|
3
3
|
async function(content, str, password) {
|
|
4
|
-
const {
|
|
4
|
+
const {encB64} = require("../misc/encB64.js");
|
|
5
5
|
if(!content || content == "") throw new Error("Please provide an account post content!");
|
|
6
6
|
if(!str || str == "") throw new Error("Please provide a user ID or name!");
|
|
7
7
|
if(!password || password == "") throw new Error("Please provide a password!");
|
|
8
8
|
|
|
9
9
|
const axios = require("axios");
|
|
10
10
|
const { headers, server } = require("../config.json");
|
|
11
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
gameVersion: 21,
|
|
14
|
-
binaryVersion: 35,
|
|
15
|
-
gdw: 0,
|
|
16
|
-
str: str,
|
|
17
|
-
secret: "Wmfd2893gb7"
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
21
|
-
headers: headers
|
|
22
|
-
}).catch(e => {
|
|
23
|
-
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
24
|
-
throw new Error(e.response.data);
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
let id = r.data.split(":16:")[1].split(":3:")[0];
|
|
28
|
-
if(Number(id) < 71 || id.includes(":")) id = r.data.split(":16:")[2].split(":3:")[0];
|
|
13
|
+
let user = await searchUsers(str);
|
|
29
14
|
|
|
30
15
|
const XOR = require("../misc/xor.js");
|
|
31
16
|
const xor = new XOR();
|
|
32
17
|
|
|
33
|
-
const comment =
|
|
18
|
+
const comment = encB64(content);
|
|
34
19
|
|
|
35
20
|
let uACdata = {
|
|
36
21
|
gameVersion: 21,
|
|
37
22
|
binaryVersion: 35,
|
|
38
23
|
gdw: 0,
|
|
39
|
-
accountID:
|
|
24
|
+
accountID: user.accountID,
|
|
40
25
|
secret: "Wmfd2893gb7",
|
|
41
26
|
gjp: xor.encrypt(password, 37526),
|
|
42
27
|
comment: comment,
|
|
@@ -8,45 +8,29 @@ module.exports = {
|
|
|
8
8
|
if(Number(percent) > 100) throw new Error("The percentage cannot be more than 100!");
|
|
9
9
|
|
|
10
10
|
const { gjp } = require("../misc/gjp.js");
|
|
11
|
-
const {
|
|
11
|
+
const { encB64 } = require("../misc/encB64.js");
|
|
12
12
|
const axios = require("axios");
|
|
13
13
|
const { headers, server } = require("../config.json");
|
|
14
14
|
const crypto = require('crypto')
|
|
15
|
+
const { searchUsers } = require("./searchUsers.js");
|
|
15
16
|
|
|
16
17
|
function sha1(data) {
|
|
17
18
|
return crypto.createHash("sha1").update(data, "binary").digest("hex");
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
gameVersion: 21,
|
|
22
|
-
binaryVersion: 35,
|
|
23
|
-
gdw: 0,
|
|
24
|
-
str: user,
|
|
25
|
-
secret: "Wmfd2893gb7"
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
29
|
-
headers: headers
|
|
30
|
-
}).catch(e => {
|
|
31
|
-
if(r.data == -1) throw new Error("-1 This user is not found.")
|
|
32
|
-
throw new Error(e.response.data)
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
let username = r.data.split("1:")[1].split(":2:")[0];
|
|
36
|
-
let accID = r.data.split(":16:")[1].split(":3:")[0];
|
|
37
|
-
if(Number(accID) < 71 || accID.includes(":")) accID = r.data.split(":16:")[2].split(":3:")[0];
|
|
21
|
+
let userObj = await searchUsers(user);
|
|
38
22
|
|
|
39
23
|
const XOR = require("../misc/xor.js");
|
|
40
24
|
const xor = new XOR();
|
|
41
25
|
|
|
42
|
-
let chkStr = username +
|
|
26
|
+
let chkStr = userObj.username + encB64(comment) + Number(id) + Number(percent) + "0xPT6iUrtws0J";
|
|
43
27
|
let chk = xor.encrypt(sha1(chkStr), 29481);
|
|
44
28
|
|
|
45
29
|
const uCdata = {
|
|
46
|
-
accountID:
|
|
30
|
+
accountID: userObj.accountID,
|
|
47
31
|
gjp: gjp(password),
|
|
48
|
-
userName: username,
|
|
49
|
-
comment:
|
|
32
|
+
userName: userObj.username,
|
|
33
|
+
comment: encB64(comment),
|
|
50
34
|
levelID: id,
|
|
51
35
|
percent: percent,
|
|
52
36
|
chk: chk,
|