gj-boomlings-api 1.0.3 → 1.1.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/README.md +1 -1
- package/functions/blockUser.js +1 -1
- package/functions/deleteComment.js +53 -0
- package/functions/dlLevel.js +3 -0
- package/functions/encURLSafeBase64.js +1 -1
- package/functions/getProfile.js +7 -4
- package/functions/unblockUser.js +62 -0
- package/functions/uploadComment.js +0 -2
- package/index.js +6 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<a href="https://www.npmjs.com/package/gj-boomlings-api"><img src="https://shikoshib.github.io/font1.png" width="600"></a><hr>
|
|
3
3
|
<a href="https://www.npmjs.com/package/gj-boomlings-api"><img src="https://img.shields.io/npm/v/gj-boomlings-api.svg?maxAge=3600" alt="npm version" /></a>
|
|
4
|
-
<a href="https://www.npmjs.com/package/gj-boomlings-api"><img src="https://img.shields.io/npm/
|
|
4
|
+
<a href="https://www.npmjs.com/package/gj-boomlings-api"><img src="https://img.shields.io/npm/dm/gj-boomlings-api.svg?maxAge=2592000" /></a>
|
|
5
5
|
<a href="https://snyk.io/test/github/shikoshib/gj-boomlings-api"><img src="https://snyk.io/test/github/shikoshib/gj-boomlings-api/badge.svg" alt="Known Vulnerabilities" /></a>
|
|
6
6
|
<a href="https://packagequality.com/#?package=gj-boomlings-api"><img src="https://packagequality.com/shield/gj-boomlings-api.svg"/></a>
|
|
7
7
|
</div>
|
package/functions/blockUser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
blockUser:
|
|
3
3
|
async function(target, username, password) {
|
|
4
|
-
if(!target || target == "") throw new Error("Please provide a player ID or username!");
|
|
4
|
+
if(!target || target == "") throw new Error("Please provide a target's player ID or username!");
|
|
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");
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
deleteComment:
|
|
3
|
+
async function(id, lvl, str, password) {
|
|
4
|
+
const {encURLSafeBase64} = require("./encURLSafeBase64.js");
|
|
5
|
+
if(!id || id == "") throw new Error("Please provide a comment ID!");
|
|
6
|
+
if(!lvl || lvl == "") throw new Error("Please provide a level ID!");
|
|
7
|
+
if(!str || str == "") throw new Error("Please provide a user ID or name!");
|
|
8
|
+
if(!password || password == "") throw new Error("Please provide a password!");
|
|
9
|
+
|
|
10
|
+
const axios = require("axios");
|
|
11
|
+
const { headers, server } = require("../config.json");
|
|
12
|
+
|
|
13
|
+
const data = {
|
|
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];
|
|
30
|
+
|
|
31
|
+
const XOR = require("../misc/xor.js");
|
|
32
|
+
const xor = new XOR();
|
|
33
|
+
|
|
34
|
+
let dACdata = {
|
|
35
|
+
gameVersion: 21,
|
|
36
|
+
binaryVersion: 35,
|
|
37
|
+
gdw: 0,
|
|
38
|
+
accountID: accId,
|
|
39
|
+
secret: "Wmfd2893gb7",
|
|
40
|
+
levelID: lvl,
|
|
41
|
+
gjp: xor.encrypt(password, 37526),
|
|
42
|
+
commentID: id,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
let res = await axios.post(server + "deleteGJComment20.php", dACdata, {
|
|
46
|
+
headers: headers
|
|
47
|
+
}).catch(e => {
|
|
48
|
+
throw new Error(e.response.data);
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
return 1;
|
|
52
|
+
}
|
|
53
|
+
}
|
package/functions/dlLevel.js
CHANGED
|
@@ -21,6 +21,9 @@ module.exports = {
|
|
|
21
21
|
|
|
22
22
|
let res = await axios.post(server + 'downloadGJLevel22.php', data, {
|
|
23
23
|
headers: headers
|
|
24
|
+
}).catch(e => {
|
|
25
|
+
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
26
|
+
throw new Error(e.response.data);
|
|
24
27
|
})
|
|
25
28
|
|
|
26
29
|
let spl = res.data.split(":");
|
|
@@ -3,7 +3,7 @@ module.exports = {
|
|
|
3
3
|
function(string) {
|
|
4
4
|
const bs = require("js-base64");
|
|
5
5
|
if(!string || string == "") throw new Error("No string provided!")
|
|
6
|
-
let str = bs.encode(string).replace(/\//g, '_').replace(
|
|
6
|
+
let str = bs.encode(string).replace(/\//g, '_').replace(/\+/g, '-');
|
|
7
7
|
return str;
|
|
8
8
|
}
|
|
9
9
|
}
|
package/functions/getProfile.js
CHANGED
|
@@ -15,6 +15,9 @@ module.exports = {
|
|
|
15
15
|
|
|
16
16
|
let r = await axios.post(server + "getGJUsers20.php", data, {
|
|
17
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);
|
|
18
21
|
})
|
|
19
22
|
|
|
20
23
|
let id = r.data.split(":16:")[1].split(":3:")[0];
|
|
@@ -30,11 +33,10 @@ module.exports = {
|
|
|
30
33
|
|
|
31
34
|
let res = await axios.post(server + "getGJUserInfo20.php", GJUI20data, {
|
|
32
35
|
headers: headers
|
|
36
|
+
}).catch(e => {
|
|
37
|
+
if(e.response.data == -1) throw new Error("-1 This user is not found.");
|
|
38
|
+
throw new Error(e.response.data);
|
|
33
39
|
})
|
|
34
|
-
|
|
35
|
-
if(res.data == -1) throw new Error("-1 Not found.")
|
|
36
|
-
if(res.data.toLowerCase() == "error code: 1020") throw new Error("1020 error: Request denied.");
|
|
37
|
-
if(res.data.toLowerCase() == "error code: 1005") throw new Error("1005 error: Your IP address has been blocked from sending requests to a server. It's recommended to use locally (directly from a PC).")
|
|
38
40
|
|
|
39
41
|
let spl = res.data.split(':');
|
|
40
42
|
let userInfo = [];
|
|
@@ -113,6 +115,7 @@ module.exports = {
|
|
|
113
115
|
twitter: twitterLnk,
|
|
114
116
|
twitch: twitchLnk
|
|
115
117
|
}
|
|
118
|
+
|
|
116
119
|
return result;
|
|
117
120
|
}
|
|
118
121
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
unblockUser:
|
|
3
|
+
async function(target, username, password) {
|
|
4
|
+
if(!target || target == "") throw new Error("Please provide a target's player ID or username!");
|
|
5
|
+
if(!username || username == "") throw new Error("Please provide your player ID or username!");
|
|
6
|
+
if(!password || password == "") throw new Error("Please provide your password!");
|
|
7
|
+
const axios = require("axios");
|
|
8
|
+
const {headers, server} = require("../config.json");
|
|
9
|
+
|
|
10
|
+
let resp = await axios.post(server + "getGJUsers20.php", {
|
|
11
|
+
gameVersion: 21,
|
|
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];
|
|
40
|
+
|
|
41
|
+
const {gjp} = require("../misc/gjp.js");
|
|
42
|
+
|
|
43
|
+
const blockData = {
|
|
44
|
+
gameVersion: 21,
|
|
45
|
+
binaryVersion: 35,
|
|
46
|
+
gdw: 0,
|
|
47
|
+
secret: "Wmfd2893gb7",
|
|
48
|
+
targetAccountID: targetId,
|
|
49
|
+
accountID: accID,
|
|
50
|
+
gjp: gjp(password)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let res = await axios.post(server + "unblockGJUser20.php", blockData, {
|
|
54
|
+
headers: headers
|
|
55
|
+
}).catch(e => {
|
|
56
|
+
if(res.data.toString().toLowerCase() == "error code: 1020") throw new Error("1020 error: Request denied.");
|
|
57
|
+
throw new Error(e)
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
}
|
package/index.js
CHANGED
|
@@ -25,6 +25,8 @@ const { updateLevelDesc } = require("./functions/updateLevelDesc.js");
|
|
|
25
25
|
const { deleteAccountPost } = require("./functions/deleteAccountPost.js");
|
|
26
26
|
const { getUserLevels } = require("./functions/getUserLevels.js");
|
|
27
27
|
const { searchLevels } = require("./functions/searchLevels.js");
|
|
28
|
+
const { deleteComment } = require("./functions/deleteComment.js");
|
|
29
|
+
const { unblockUser } = require("./functions/unblockUser.js");
|
|
28
30
|
|
|
29
31
|
module.exports.dlLevel = dlLevel;
|
|
30
32
|
module.exports.getSongInfo = getSongInfo;
|
|
@@ -33,7 +35,7 @@ module.exports.decURLSafeBase64 = decURLSafeBase64;
|
|
|
33
35
|
module.exports.encURLSafeBase64 = encURLSafeBase64;
|
|
34
36
|
module.exports.getDailyLevel = getDailyLevel;
|
|
35
37
|
module.exports.getWeeklyDemon = getWeeklyDemon;
|
|
36
|
-
module.exports.getProfile = getProfile;
|
|
38
|
+
module.exports.getProfile = getProfile;
|
|
37
39
|
module.exports.reportLevel = reportLevel;
|
|
38
40
|
module.exports.getComments = getComments;
|
|
39
41
|
module.exports.getCommentHistory = getCommentHistory;
|
|
@@ -49,4 +51,6 @@ module.exports.getCreatorScores = getCreatorScores;
|
|
|
49
51
|
module.exports.updateLevelDesc = updateLevelDesc;
|
|
50
52
|
module.exports.deleteAccountPost = deleteAccountPost;
|
|
51
53
|
module.exports.getUserLevels = getUserLevels;
|
|
52
|
-
module.exports.searchLevels = searchLevels;
|
|
54
|
+
module.exports.searchLevels = searchLevels;
|
|
55
|
+
module.exports.deleteComment = deleteComment;
|
|
56
|
+
module.exports.unblockUser = unblockUser;
|