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 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/dt/gj-boomlings-api.svg?maxAge=3600" alt="npm downloads" /></a>
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>
@@ -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
+ }
@@ -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(/w+/g, '-');
6
+ let str = bs.encode(string).replace(/\//g, '_').replace(/\+/g, '-');
7
7
  return str;
8
8
  }
9
9
  }
@@ -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
+ }
@@ -60,8 +60,6 @@ module.exports = {
60
60
  if(edata == '') edata = "Whoops, the servers have rejected your request!"
61
61
  throw new Error(edata)
62
62
  })
63
-
64
- if(res.data.toLowerCase() == "error code: 1020") throw new Error("1020 error: Request denied.");
65
63
 
66
64
  return 1;
67
65
  }
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; // to fix
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gj-boomlings-api",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "A Node.js module that allows you to fetch boomlings.com easily",
5
5
  "main": "index.js",
6
6
  "scripts": {