gj-boomlings-api 1.3.6 → 1.4.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/.nvmrc CHANGED
Binary file
@@ -4,16 +4,16 @@ module.exports = {
4
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
- const axios = require("axios");
7
+
8
+ const {gjReq} = require("../misc/gjReq.js");
8
9
  const { searchUsers } = require("./searchUsers.js");
9
- const {headers, server} = require("../config.json");
10
-
10
+
11
11
  let user = await searchUsers(username);
12
12
  let targetObj = await searchUsers(target);
13
13
 
14
14
  const {gjp} = require("../misc/gjp.js");
15
-
16
- const blockData = {
15
+
16
+ const data = {
17
17
  gameVersion: 21,
18
18
  binaryVersion: 35,
19
19
  gdw: 0,
@@ -23,12 +23,7 @@ module.exports = {
23
23
  gjp: gjp(password)
24
24
  }
25
25
 
26
- let res = await axios.post(server + "blockGJUser20.php", blockData, {
27
- headers: headers
28
- }).catch(e => {
29
- if(res.data.toString().toLowerCase() == "error code: 1020") throw new Error("1020 error: Request denied.");
30
- throw new Error(e)
31
- })
26
+ let res = await gjReq("blockGJUser20", data);
32
27
 
33
28
  return 1;
34
29
  }
@@ -5,8 +5,7 @@ module.exports = {
5
5
  if(!str || str == "") throw new Error("Please provide a user ID or name!");
6
6
  if(!password || password == "") throw new Error("Please provide a password!");
7
7
 
8
- const axios = require("axios");
9
- const { headers, server } = require("../config.json");
8
+ const {gjReq} = require("../misc/gjReq.js");
10
9
  const { searchUsers } = require("./searchUsers.js");
11
10
 
12
11
  let user = await searchUsers(str);
@@ -14,7 +13,7 @@ module.exports = {
14
13
  const XOR = require("../misc/xor.js");
15
14
  const xor = new XOR();
16
15
 
17
- let dACdata = {
16
+ let data = {
18
17
  gameVersion: 21,
19
18
  binaryVersion: 35,
20
19
  gdw: 0,
@@ -24,12 +23,7 @@ module.exports = {
24
23
  commentID: id,
25
24
  };
26
25
 
27
- let res = await axios.post(server + "deleteGJAccComment20.php", dACdata, {
28
- headers: headers
29
- }).catch(e => {
30
- throw new Error(e.response.data);
31
- })
32
-
26
+ let res = await gjReq("deleteGJAccComment20", data);
33
27
  if(res.data == -1) throw new Error(-1);
34
28
 
35
29
  return 1;
@@ -6,8 +6,7 @@ module.exports = {
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
- const axios = require("axios");
10
- const { headers, server } = require("../config.json");
9
+ const {gjReq} = require("../misc/gjReq.js");
11
10
  const { searchUsers } = require("./searchUsers.js");
12
11
 
13
12
  let user = await searchUsers(str);
@@ -15,7 +14,7 @@ module.exports = {
15
14
  const XOR = require("../misc/xor.js");
16
15
  const xor = new XOR();
17
16
 
18
- let dACdata = {
17
+ let data = {
19
18
  accountID: user.accountID,
20
19
  secret: "Wmfd2893gb7",
21
20
  levelID: lvl,
@@ -23,12 +22,7 @@ module.exports = {
23
22
  commentID: id,
24
23
  };
25
24
 
26
- let res = await axios.post(server + "deleteGJComment20.php", dACdata, {
27
- headers: headers
28
- }).catch(e => {
29
- throw new Error(e.response.data);
30
- })
31
-
25
+ let res = await gjReq("deleteGJComment20", data);
32
26
  if(res.data == -1) throw new Error(-1);
33
27
 
34
28
  return 1;
@@ -6,8 +6,8 @@ module.exports = {
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.");
8
8
 
9
- const axios = require("axios");
10
- const { headers, server } = require("../config.json");
9
+ const {gjReq} = require("../misc/gjReq.js");
10
+ const { server } = require("../config.json");
11
11
 
12
12
  const XOR = require("../misc/xor.js");
13
13
  let xor = new XOR()
@@ -20,12 +20,7 @@ module.exports = {
20
20
  secret: "Wmfd2893gb7"
21
21
  }
22
22
 
23
- let res = await axios.post(server + 'downloadGJLevel22.php', data, {
24
- headers: headers
25
- }).catch(e => {
26
- throw new Error(e.response.data);
27
- })
28
-
23
+ let res = await gjReq('downloadGJLevel22', data);
29
24
  if(res.data == -1) throw new Error("-1 This level is not found.");
30
25
 
31
26
  let spl = res.data.split(":");
@@ -63,8 +58,7 @@ module.exports = {
63
58
 
64
59
  if(password.length == 7) password = password.replace("1", "");
65
60
 
66
- let disliked = false;
67
- if(likes.includes("-")) disliked = true;
61
+ let disliked = likes.includes("-") ? true : false;
68
62
 
69
63
  if(verifiedCoins == "0") verifiedCoins = false;
70
64
  if(verifiedCoins == "1") verifiedCoins = true;
@@ -171,36 +165,7 @@ module.exports = {
171
165
  }
172
166
 
173
167
  if(getLvl.pointercrate != undefined && server.includes("boomlings.com/database")) {
174
- result = {
175
- id: Number(id),
176
- name: name,
177
- description: description,
178
- creator: getLvl.creator,
179
- level_version: Number(version),
180
- difficulty: difficultyDecoding[difficulty],
181
- stars: Number(stars),
182
- downloads: Number(downloads),
183
- likes: Number(likes),
184
- disliked: disliked,
185
- length: lengthDecoding[length],
186
- password: password.replace("1", ""),
187
- demon: demonBoolDecoding[demonBool],
188
- featured: featured,
189
- epic: demonBoolDecoding[epic],
190
- objects: objects,
191
- uploaded: uploaded,
192
- updated: updated,
193
- stars_requested: Number(starsRequested),
194
- game_version: decodeGameVersion[gameVersion],
195
- ldm: demonBoolDecoding[ldm],
196
- copied: Number(copiedID),
197
- large: Number(objs) > 40000 ? true : false,
198
- two_p: demonBoolDecoding[twoPlayer],
199
- coins: Number(coins),
200
- verified_coins: verifiedCoins,
201
- song: getLvl.song,
202
- pointercrate: getLvl.pointercrate
203
- }
168
+ result.pointercrate = getLvl.pointercrate;
204
169
  }
205
170
 
206
171
  return result;
@@ -6,27 +6,22 @@ module.exports = {
6
6
  if(!user || user == "") throw new Error("Please provide your player ID or username!");
7
7
  if(!pass || pass == "") throw new Error("Please provide your password!");
8
8
 
9
- const axios = require("axios");
10
- const {headers, server, secret} = require("../config.json");
9
+ const {gjReq} = require("../misc/gjReq.js");
10
+ const {secret} = require("../config.json");
11
11
  const { searchUsers } = require("./searchUsers.js");
12
12
  const {gjp} = require("../misc/gjp.js");
13
13
  const {decMessage} = require("../misc/decMessage.js");
14
14
 
15
15
  let userObj = await searchUsers(user);
16
16
 
17
- const msgData = {
17
+ const data = {
18
18
  accountID: userObj.accountID,
19
19
  gjp: gjp(pass),
20
20
  secret: secret,
21
21
  messageID: id
22
22
  }
23
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
-
24
+ let res = await gjReq("downloadGJMessage20", data);
30
25
  if(res.data == -1) throw new Error(-1);
31
26
 
32
27
  return decMessage(res.data);
@@ -3,8 +3,7 @@ module.exports = {
3
3
  async function(str, page = 1) {
4
4
  if(!str || str == "") throw new Error("Please provide a user ID or name!");
5
5
  const { decodeAccountPost } = require("../misc/decodeAccountPost.js");
6
- const axios = require("axios");
7
- const { headers, server } = require("../config.json");
6
+ const {gjReq} = require("../misc/gjReq.js");
8
7
  const { searchUsers } = require("./searchUsers.js");
9
8
 
10
9
  let user = await searchUsers(str);
@@ -18,13 +17,9 @@ module.exports = {
18
17
  page: page - 1
19
18
  };
20
19
 
21
- let res = await axios.post(server + "getGJAccountComments20.php", ACdata, {
22
- headers: headers
23
- }).catch(e => {
24
- if(e.response.data == -1) throw new Error("-1 Not found.");
25
- if(e.response.data.startsWith("#")) throw new Error("Whoops! Couldn't find anything!");
26
- throw new Error(e.response.data);
27
- })
20
+ let res = await gjReq("getGJAccountComments20", ACdata);
21
+ if(res.data == -1) throw new Error("-1 Not found.");
22
+ if(res.data.startsWith("#")) throw new Error("Whoops! Couldn't find anything!");
28
23
 
29
24
  let accPosts = res.data.split("|");
30
25
  let result = [];
@@ -0,0 +1,56 @@
1
+ module.exports = {
2
+ getBlockedList:
3
+ async function(str, pass) {
4
+ if(!str || str == "") throw new Error("Please provide your player ID or username!");
5
+ if(!pass || pass == "") throw new Error("Please provide your password!");
6
+
7
+ const {gjReq} = require("../misc/gjReq.js");
8
+ const {gjp} = require("../misc/gjp.js");
9
+ const { searchUsers } = require("./searchUsers.js");
10
+
11
+ let user = await searchUsers(str);
12
+
13
+ const data = {
14
+ accountID: user.accountID,
15
+ gjp: gjp(pass),
16
+ secret: "Wmfd2893gb7",
17
+ type: 1
18
+ }
19
+
20
+ let res = await gjReq("getGJUserList20", data);
21
+ if(res.data == -1) throw new Error(-1);
22
+ if(res.data == -2) throw new Error("No players have been found in the blocklist.");
23
+
24
+ let players = res.data.split("|");
25
+ let result = [];
26
+
27
+ let colors = require("../misc/colors.json");
28
+ const { rgbToHEX } = require("../misc/rgbToHEX.js");
29
+
30
+ players.forEach(p => {
31
+ let username = p.split(":")[1];
32
+ let playerID = p.split(":")[3];
33
+ let p1 = p.split(":")[7];
34
+ let p2 = p.split(":")[9];
35
+ let accID = p.split(":")[15];
36
+ let msg = p.split(":")[17];
37
+
38
+ let msgState = {
39
+ "0": "all",
40
+ "1": "friends",
41
+ "2": "none"
42
+ }
43
+
44
+ result.push({
45
+ username: username,
46
+ playerID: Number(playerID),
47
+ accountID: Number(accID),
48
+ color1: rgbToHEX(colors[p1]),
49
+ color2: rgbToHEX(colors[p2]),
50
+ messages: msgState[msg]
51
+ })
52
+ })
53
+
54
+ return result;
55
+ }
56
+ }
@@ -2,13 +2,15 @@ module.exports = {
2
2
  getCommentHistory:
3
3
  async function(str, page = 1, mode = 1) {
4
4
  if(!str || str == "") throw new Error("Please provide a player ID or name!");
5
- const axios = require("axios");
6
- const {headers, server} = require("../config.json");
5
+ if(page && isNaN(page)) throw new Error("Please provide a page!");
6
+ if(mode && isNaN(mode)) throw new Error("Please provide a mode ID! 0 for recent, 1 for most liked.");
7
+
8
+ const {gjReq} = require("../misc/gjReq.js");
7
9
  const {decCommentFromHistory} = require("../misc/decCommentFromHistory.js");
8
10
  const {getProfile} = require("./getProfile.js");
9
11
 
10
12
  const user = await getProfile(str);
11
- if(user.commentHistory != "all") throw new Error("Whoops! This user has disabled viewing his comment history!")
13
+ if(user.commentHistory != "all") throw new Error("Whoops! This user has disabled viewing his comment history!");
12
14
 
13
15
  const CHData = {
14
16
  gameVersion: 21,
@@ -16,16 +18,11 @@ module.exports = {
16
18
  gdw: 0,
17
19
  secret: "Wmfd2893gb7",
18
20
  userID: user.playerID,
19
- page: page - 1,
20
- mode: 1
21
+ page: Number(page) - 1,
22
+ mode: Number(mode)
21
23
  }
22
24
 
23
- let res = await axios.post(server + "getGJCommentHistory.php", CHData, {
24
- headers: headers
25
- }).catch(e => {
26
- throw new Error(e.response.data);
27
- })
28
-
25
+ let res = await gjReq("getGJCommentHistory", CHData);
29
26
  if(res.data == -1) throw new Error("-1 Not found.");
30
27
 
31
28
  let comments = res.data.split("|");
@@ -3,26 +3,22 @@ module.exports = {
3
3
  async function(level, page = 1, mode = 1) {
4
4
  if(!level || level == "") throw new Error("Please provide a level ID!");
5
5
  if(isNaN(level)) throw new Error("A level ID should be a number.");
6
- const axios = require("axios");
7
- const {headers, server} = require("../config.json");
6
+ if(mode && isNaN(mode)) throw new Error("Please provide a mode ID! 0 for recent, 1 for most liked.");
7
+
8
+ const {gjReq} = require("../misc/gjReq.js");
8
9
  const { decodeGJComment } = require("../misc/decodeGJComment.js");
9
10
 
10
11
  const data = {
11
12
  levelID: level,
12
- page: page - 1,
13
- mode: mode,
13
+ page: Number(page) - 1,
14
+ mode: Number(mode),
14
15
  secret: "Wmfd2893gb7",
15
16
  gameVersion: 21,
16
17
  binaryVersion: 35,
17
18
  gdw: 0
18
19
  }
19
20
 
20
- let res = await axios.post(server + "getGJComments21.php", data, {
21
- headers: headers
22
- }).catch(e => {
23
- throw new Error(e.response.data);
24
- })
25
-
21
+ let res = await gjReq("getGJComments21", data);
26
22
  if(res.data.startsWith("#")) throw new Error("-1 No comments have been found.");
27
23
 
28
24
  let comments = res.data.split("|");
@@ -2,8 +2,8 @@ module.exports = {
2
2
  getCreatorScores:
3
3
  async function() {
4
4
  const { decScoresUser } = require("../misc/decScoresUser.js");
5
- const axios = require("axios");
6
- const { headers, server, secret } = require("../config.json");
5
+ const {gjReq} = require("../misc/gjReq.js");
6
+ const { secret } = require("../config.json");
7
7
 
8
8
  const data = {
9
9
  secret: secret,
@@ -11,9 +11,7 @@ module.exports = {
11
11
  count: 100
12
12
  }
13
13
 
14
- let res = await axios.post(server + "getGJScores20.php", data, {
15
- headers: headers
16
- })
14
+ let res = await gjReq("getGJScores20", data);
17
15
 
18
16
  let players = res.data.split("|");
19
17
  let emptyElem = players.indexOf(100);
@@ -0,0 +1,52 @@
1
+ module.exports = {
2
+ getFriendsList:
3
+ async function(str, pass) {
4
+ if(!str || str == "") throw new Error("Please provide your player ID or username!");
5
+ if(!pass || pass == "") throw new Error("Please provide your password!");
6
+
7
+ const {gjReq} = require("../misc/gjReq.js");
8
+ const {gjp} = require("../misc/gjp.js");
9
+ const { searchUsers } = require("./searchUsers.js");
10
+
11
+ let user = await searchUsers(str);
12
+
13
+ const data = {
14
+ accountID: user.accountID,
15
+ gjp: gjp(pass),
16
+ secret: "Wmfd2893gb7"
17
+ }
18
+
19
+ let res = await gjReq("getGJUserList20", data);
20
+ let players = res.data.split("|");
21
+ let result = [];
22
+
23
+ let colors = require("../misc/colors.json");
24
+ const { rgbToHEX } = require("../misc/rgbToHEX.js");
25
+
26
+ players.forEach(p => {
27
+ let username = p.split(":")[1];
28
+ let playerID = p.split(":")[3];
29
+ let p1 = p.split(":")[7];
30
+ let p2 = p.split(":")[9];
31
+ let accID = p.split(":")[15];
32
+ let msg = p.split(":")[17];
33
+
34
+ let msgState = {
35
+ "0": "all",
36
+ "1": "friends",
37
+ "2": "none"
38
+ }
39
+
40
+ result.push({
41
+ username: username,
42
+ playerID: Number(playerID),
43
+ accountID: Number(accID),
44
+ color1: rgbToHEX(colors[p1]),
45
+ color2: rgbToHEX(colors[p2]),
46
+ messages: msgState[msg]
47
+ })
48
+ })
49
+
50
+ return result;
51
+ }
52
+ }
@@ -1,8 +1,7 @@
1
1
  module.exports = {
2
2
  getGauntlets:
3
3
  async function() {
4
- const axios = require('axios');
5
- const {headers, server} = require("../config.json");
4
+ const {gjReq} = require("../misc/gjReq.js");
6
5
  const { decodeGJGauntlet } = require("../misc/decodeGJGauntlet.js")
7
6
 
8
7
  const data = {
@@ -12,11 +11,7 @@ module.exports = {
12
11
  gdw: 0
13
12
  }
14
13
 
15
- let res = await axios.post(server + "getGJGauntlets21.php", data, {
16
- headers: headers
17
- }).catch(e => {
18
- throw new Error(e.response.data);
19
- })
14
+ let res = await gjReq("getGJGauntlets21", data)
20
15
 
21
16
  let gauntlets = res.data.split("|");
22
17
  let result = [];
@@ -5,8 +5,8 @@ module.exports = {
5
5
  if(isNaN(id)) throw new Error("The level ID should be a number!");
6
6
 
7
7
  const {decodeLevel} = require("../misc/decodeLevel.js");
8
- const axios = require("axios");
9
- const {headers, server, secret} = require("../config.json");
8
+ const {gjReq} = require("../misc/gjReq.js");
9
+ const {secret} = require("../config.json");
10
10
 
11
11
  const data = {
12
12
  secret: secret,
@@ -17,12 +17,7 @@ module.exports = {
17
17
  type: 0
18
18
  }
19
19
 
20
- let res = await axios.post(server + "getGJLevels21.php", data, {
21
- headers: headers
22
- }).catch(e => {
23
- throw new Error(e.response.data);
24
- })
25
-
20
+ let res = await gjReq("getGJLevels21", data);
26
21
  if(res.data == -1) throw new Error("-1 Not found.");
27
22
 
28
23
  return await decodeLevel(res.data);
@@ -3,19 +3,13 @@ module.exports = {
3
3
  async function(page = 1) {
4
4
  const { decodeMapPack } = require("../misc/decodeMapPack.js");
5
5
 
6
- const axios = require("axios");
7
- const { headers, server } = require("../config.json");
6
+ const {gjReq} = require("../misc/gjReq.js");
8
7
  const data = {
9
8
  secret: "Wmfd2893gb7",
10
9
  page: Number(page) - 1
11
10
  }
12
11
 
13
- let res = await axios.post(server + "getGJMapPacks21.php", data, {
14
- headers: headers
15
- }).catch(e => {
16
- throw new Error(e.response.data);
17
- })
18
-
12
+ let res = await gjReq("getGJMapPacks21", data);
19
13
  if(res.data.startsWith("#")) throw new Error("-1 Not found.");
20
14
 
21
15
  let packs = res.data.split("|");
@@ -5,27 +5,22 @@ module.exports = {
5
5
  if(!pass || pass == "") throw new Error("Please provide your password!");
6
6
  if(Number(page) == NaN) throw new Error("The page should be a number!");
7
7
 
8
- const axios = require("axios");
9
- const {headers, server, secret} = require("../config.json");
8
+ const {gjReq} = require("../misc/gjReq.js");
9
+ const {secret} = require("../config.json");
10
10
  const {gjp} = require("../misc/gjp.js");
11
11
  const {decMsg} = require("../misc/decMsg.js");
12
12
  const { searchUsers } = require("./searchUsers.js");
13
13
 
14
14
  let userObj = await searchUsers(user);
15
15
 
16
- const msgData = {
16
+ const data = {
17
17
  accountID: userObj.accountID,
18
18
  gjp: gjp(pass),
19
19
  secret: secret,
20
- page: page - 1
20
+ page: Number(page) - 1
21
21
  }
22
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
-
23
+ let res = await gjReq("getGJMessages20", data);
29
24
  if(res.data == -1) throw new Error(-1);
30
25
 
31
26
  let msgs = res.data.split("|");
@@ -2,8 +2,7 @@ module.exports = {
2
2
  getProfile:
3
3
  async function(str) {
4
4
  if(!str || str == "") throw new Error("Please provide a user ID or name!");
5
- const axios = require("axios");
6
- const { headers, server } = require("../config.json");
5
+ const {gjReq} = require("../misc/gjReq.js");
7
6
  const { searchUsers } = require("./searchUsers.js");
8
7
 
9
8
  let user = await searchUsers(str);
@@ -16,12 +15,7 @@ module.exports = {
16
15
  secret: "Wmfd2893gb7"
17
16
  };
18
17
 
19
- let res = await axios.post(server + "getGJUserInfo20.php", data, {
20
- headers: headers
21
- }).catch(e => {
22
- throw new Error(e.response.data);
23
- })
24
-
18
+ let res = await gjReq("getGJUserInfo20", data);
25
19
  if(res.data == -1) throw new Error("-1 This user is not found.");
26
20
 
27
21
  let spl = res.data.split(':');
@@ -52,13 +46,10 @@ module.exports = {
52
46
  let twitch = userInfo[27].split("45:")[1];
53
47
  let modState = userInfo[28].split("49:")[1];
54
48
 
55
- let ytLnk = `https://youtube.com/channel/${youtube}`;
56
- let twitterLnk = `https://twitter.com/${twitter}`;
57
- let twitchLnk = `https://twitch.tv/${twitch}`;
58
-
59
- if(youtube == "") ytLnk = null;
60
- if(twitter == "") twitterLnk = null;
61
- if(twitch == "") twitchLnk = null;
49
+ let ytLnk = youtube != "" ? `https://youtube.com/channel/${youtube}` : null;
50
+ let twitterLnk = twitter != "" ? `https://twitter.com/${twitter}` : null;
51
+ let twitchLnk = twitch != "" ? `https://twitch.tv/${twitch}` : null;
52
+
62
53
  if(youtube.endsWith("123")) ytLnk = `https://youtube.com/channel/${youtube.split("123")[0]}`;
63
54
  if(twitter.endsWith("123")) twitterLnk = `https://twitter.com/${twitter.split("123")[0]}`;
64
55
  if(twitch.endsWith("123")) twitchLnk = `https://twitch.tv/${twitch.split("123")[0]}`;
@@ -3,18 +3,14 @@ module.exports = {
3
3
  async function(song) {
4
4
  if(!song || song == "") throw new Error("Please provide a song ID.");
5
5
  if(isNaN(song)) throw new Error("A song ID must be a number.")
6
- const axios = require("axios")
7
- const {headers, server} = require("../config.json")
6
+ const {gjReq} = require("../misc/gjReq.js");
8
7
 
9
8
  const data = {
10
9
  songID: song,
11
10
  secret: "Wmfd2893gb7"
12
11
  }
13
12
 
14
- let res = await axios.post(server + 'getGJSongInfo.php', data, {
15
- headers: headers
16
- })
17
-
13
+ let res = await gjReq('getGJSongInfo', data);
18
14
  if(res.data == -2) throw new Error(`-2. Couldn't find a song with ID ${song}.`)
19
15
 
20
16
  const result = {
@@ -2,8 +2,8 @@ module.exports = {
2
2
  getTop100:
3
3
  async function() {
4
4
  const { decScoresUser } = require("../misc/decScoresUser.js");
5
- const axios = require("axios");
6
- const { headers, server, secret } = require("../config.json");
5
+ const {gjReq} = require("../misc/gjReq.js");
6
+ const { secret } = require("../config.json");
7
7
 
8
8
  const data = {
9
9
  secret: secret,
@@ -11,9 +11,7 @@ module.exports = {
11
11
  count: 100
12
12
  }
13
13
 
14
- let res = await axios.post(server + "getGJScores20.php", data, {
15
- headers: headers
16
- })
14
+ let res = await gjReq("getGJScores20", data);
17
15
 
18
16
  let players = res.data.split("|");
19
17
  let emptyElem = players.indexOf(100);
@@ -3,8 +3,8 @@ module.exports = {
3
3
  async function(str, page = 1) {
4
4
  if(!str || str == "") throw new Error("Please provide a username or player ID!");
5
5
 
6
- const axios = require("axios");
7
- const { headers, secret, server } = require("../config.json");
6
+ const {gjReq} = require("../misc/gjReq.js");
7
+ const { secret } = require("../config.json");
8
8
  const { decodeLevelRes } = require("../misc/decodeLevelRes.js");
9
9
  const { searchUsers } = require("./searchUsers.js");
10
10
 
@@ -17,11 +17,7 @@ module.exports = {
17
17
  page: Number(page) - 1
18
18
  }
19
19
 
20
- let res = await axios.post(server + "getGJLevels21.php", data, {
21
- headers: headers
22
- }).catch(e => {
23
- throw new Error(e.response.data);
24
- })
20
+ let res = await gjReq("getGJLevels21", data)
25
21
 
26
22
  let levels = res.data.split("#")[0].split("|");
27
23
  let creators = res.data.split("#")[1].split("|");
@@ -4,19 +4,15 @@ module.exports = {
4
4
  if(!level || level == "") throw new Error("Please provide a level ID.");
5
5
  if(isNaN(Number(level))) throw new Error("The level ID should be a number.");
6
6
 
7
- const axios = require("axios")
8
- const {headers, server} = require("../config.json");
7
+ const {gjReq} = require("../misc/gjReq.js");
9
8
 
10
9
  const data = {
11
10
  levelID: level.toString().trim(),
12
11
  secret: "Wmfd2893gb7"
13
12
  }
14
13
 
15
- let res = await axios.post(server + "reportGJLevel.php", data, {
16
- headers: headers
17
- }).catch(e => {
18
- throw new Error(e.response.data)
19
- })
14
+ let res = await gjReq("reportGJLevel", data);
15
+
20
16
  return res.data;
21
17
  }
22
18
  }
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
2
  searchLevels:
3
3
  async function(query, page = 1) {
4
- const axios = require("axios");
5
- const { headers, server, secret } = require("../config.json");
4
+ const {gjReq} = require("../misc/gjReq.js");
5
+ const { secret } = require("../config.json");
6
6
 
7
7
  const { decodeLevelRes } = require("../misc/decodeLevelRes.js");
8
8
 
@@ -13,11 +13,7 @@ module.exports = {
13
13
  secret: secret
14
14
  }
15
15
 
16
- let res = await axios.post(server + "getGJLevels21.php", data, {
17
- headers: headers
18
- }).catch(e => {
19
- throw new Error(e.response.data);
20
- })
16
+ let res = await gjReq("getGJLevels21", data)
21
17
 
22
18
  let levels = res.data.split("#")[0].split("|");
23
19
  let creators = res.data.split("#")[1].split("|");
@@ -3,18 +3,13 @@ module.exports = {
3
3
  async function(str) {
4
4
  if(!str || str == '') throw new Error("Please provide a query!");
5
5
 
6
- const axios = require("axios");
7
- const { headers, server, secret } = require("../config.json");
6
+ const {gjReq} = require("../misc/gjReq.js");
8
7
  const { decodeUserResult } = require("../misc/decodeUserResult.js");
9
8
 
10
- let res = await axios.post(server + "getGJUsers20.php", {
9
+ let res = await gjReq("getGJUsers20", {
11
10
  str: str,
12
11
  secret: "Wmfd2893gb7"
13
- }, {
14
- headers: headers
15
- }).catch(e => {
16
- throw new Error(e.response.data)
17
- });
12
+ })
18
13
 
19
14
  if(res.data == -1) throw new Error(`Couldn't find a "${str}" user.`)
20
15
 
@@ -4,16 +4,16 @@ module.exports = {
4
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
- const axios = require("axios");
8
- const {headers, server} = require("../config.json");
7
+
8
+ const {gjReq} = require("../misc/gjReq.js");
9
9
  const { searchUsers } = require("./searchUsers.js");
10
-
10
+
11
11
  let user = await searchUsers(username);
12
12
  let targetObj = await searchUsers(target);
13
13
 
14
14
  const {gjp} = require("../misc/gjp.js");
15
-
16
- const blockData = {
15
+
16
+ const data = {
17
17
  gameVersion: 21,
18
18
  binaryVersion: 35,
19
19
  gdw: 0,
@@ -23,12 +23,7 @@ module.exports = {
23
23
  gjp: gjp(password)
24
24
  }
25
25
 
26
- let res = await axios.post(server + "unblockGJUser20.php", blockData, {
27
- headers: headers
28
- }).catch(e => {
29
- if(res.data.toString().toLowerCase() == "error code: 1020") throw new Error("1020 error: Request denied.");
30
- throw new Error(e)
31
- })
26
+ let res = await gjReq("unblockGJUser20", data)
32
27
 
33
28
  return 1;
34
29
  }
@@ -8,9 +8,9 @@ module.exports = {
8
8
  if(!desc) desc = "(No description provided)";
9
9
  if(!user || user == "") throw new Error("Please provide a user ID or name!");
10
10
  if(!password || password == "") throw new Error("Please provide a password!");
11
-
12
- const axios = require("axios");
13
- const { headers, server, secret } = require("../config.json");
11
+
12
+ const {gjReq} = require("../misc/gjReq.js");
13
+ const { secret } = require("../config.json");
14
14
  const { searchUsers } = require("./searchUsers.js");
15
15
 
16
16
  let userObj = await searchUsers(user);
@@ -26,13 +26,9 @@ module.exports = {
26
26
  secret: secret
27
27
  }
28
28
 
29
- let res = await axios.post(server + "updateGJDesc20.php", uLDdata, {
30
- headers: headers
31
- }).catch(e => {
32
- if(e.response.data == -1) throw new Error("-1 Failed to update the description.")
33
- throw new Error(e.response.data);
34
- })
35
-
29
+ let res = await gjReq("updateGJDesc20", uLDdata);
30
+ if(res.data == -1) throw new Error("-1 Failed to update the description.");
31
+
36
32
  return 1;
37
33
  }
38
34
  }
@@ -6,8 +6,7 @@ module.exports = {
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
- const axios = require("axios");
10
- const { headers, server } = require("../config.json");
9
+ const {gjReq} = require("../misc/gjReq.js");
11
10
  const { searchUsers } = require("./searchUsers.js");
12
11
 
13
12
  let user = await searchUsers(str);
@@ -28,12 +27,8 @@ module.exports = {
28
27
  cType: 1
29
28
  };
30
29
 
31
- let res = await axios.post(server + "uploadGJAccComment20.php", uACdata, {
32
- headers: headers
33
- }).catch(e => {
34
- if(e.response.status == 500) throw new Error("500 Error: couldn't post!");
35
- throw new Error(e.response.data);
36
- })
30
+ let res = await gjReq("uploadGJAccComment20", uACdata);
31
+ if(res.status == 500) throw new Error("500 Error: couldn't post!");
37
32
 
38
33
  return res.data;
39
34
  }
@@ -9,8 +9,7 @@ module.exports = {
9
9
 
10
10
  const { gjp } = require("../misc/gjp.js");
11
11
  const { encB64 } = require("../misc/encB64.js");
12
- const axios = require("axios");
13
- const { headers, server } = require("../config.json");
12
+ const {gjReq} = require("../misc/gjReq.js");
14
13
  const crypto = require('crypto')
15
14
  const { searchUsers } = require("./searchUsers.js");
16
15
 
@@ -37,17 +36,11 @@ module.exports = {
37
36
  secret: "Wmfd2893gb7"
38
37
  }
39
38
 
40
- let res = await axios.post(server + "uploadGJComment21.php", uCdata, {
41
- headers: headers
42
- }).catch(e => {
43
- let edata = e.response.data;
44
- if(edata == -10) edata = "You're permanently banned from commenting by RobTop!";
45
- if(edata.startsWith("temp_")) edata = `You're temporarily banned from commenting by RobTop or Elder Moderators!\nRemaining duration: ${edata.split("_")[1].split("_")[0]}\nReason: ${edata.split("_")[2]}`;
46
- if(edata == '') edata = "Whoops, the servers have rejected your request!";
47
- throw new Error(edata)
48
- })
39
+ let res = await gjReq("uploadGJComment21", uCdata);
49
40
 
50
41
  if(res.data == -1) throw new Error("Whoops, the servers have rejected your request!");
42
+ if(res.data == -10) throw new Error("You're permanently banned from commenting!");
43
+ if(res.data.startsWith("temp_")) throw new Error(`You're temporarily banned from commenting!\nRemaining duration: ${edata.split("_")[1]}\nReason: ${edata.split("_")[2]}`);
51
44
 
52
45
  return res.data;
53
46
  }
@@ -9,8 +9,8 @@ module.exports = {
9
9
 
10
10
  const { gjp } = require("../misc/gjp.js");
11
11
  const { encB64 } = require("../misc/encB64.js");
12
- const axios = require("axios");
13
- const { headers, server, secret } = require("../config.json");
12
+ const {gjReq} = require("../misc/gjReq.js");
13
+ const { secret } = require("../config.json");
14
14
  const { searchUsers } = require("./searchUsers.js");
15
15
 
16
16
  let receiverObj = await searchUsers(receiver);
@@ -19,7 +19,7 @@ module.exports = {
19
19
  const XOR = require("../misc/xor.js");
20
20
  const xor = new XOR();
21
21
 
22
- const uMdata = {
22
+ const data = {
23
23
  accountID: userObj.accountID,
24
24
  toAccountID: receiverObj.accountID,
25
25
  gjp: gjp(pass),
@@ -28,12 +28,7 @@ module.exports = {
28
28
  secret: secret
29
29
  }
30
30
 
31
- let res = await axios.post(server + "uploadGJMessage20.php", uMdata, {
32
- headers: headers
33
- }).catch(e => {
34
- throw new Error(e.response.data)
35
- });
36
-
31
+ let res = await gjReq("uploadGJMessage20", data);
37
32
  if(res.data == -1) throw new Error(-1);
38
33
 
39
34
  return 1;
package/index.js CHANGED
@@ -29,8 +29,10 @@ const { getMessages } = require("./functions/getMessages.js");
29
29
  const { dlMessage } = require("./functions/dlMessage.js");
30
30
  const { uploadMessage } = require("./functions/uploadMessage.js");
31
31
  const { searchUsers } = require("./functions/searchUsers.js");
32
+ const { getFriendsList } = require("./functions/getFriendsList.js");
33
+ const { getBlockedList } = require("./functions/getBlockedList.js");
32
34
 
33
- module.exports.dlLevel = dlLevel
35
+ module.exports.dlLevel = dlLevel;
34
36
  module.exports.getSongInfo = getSongInfo;
35
37
  module.exports.getOfficialSongInfo = getOfficialSongInfo;
36
38
  module.exports.getDailyLevel = getDailyLevel;
@@ -57,4 +59,6 @@ module.exports.unblockUser = unblockUser;
57
59
  module.exports.getMessages = getMessages;
58
60
  module.exports.dlMessage = dlMessage;
59
61
  module.exports.uploadMessage = uploadMessage;
60
- module.exports.searchUsers = searchUsers;
62
+ module.exports.searchUsers = searchUsers;
63
+ module.exports.getFriendsList = getFriendsList;
64
+ module.exports.getBlockedList = getBlockedList;
package/misc/demonlist.js CHANGED
@@ -1,14 +1,14 @@
1
1
  module.exports = {
2
2
  demonlist:
3
3
  async function(name) {
4
- const axios = require("axios");
5
- let r = await axios.get(`https://pointercrate.com/api/v2/demons/?name=${name}`);
6
- if(r.data[0] == undefined) return null;
4
+ let r = await fetch(`https://pointercrate.com/api/v2/demons/?name=${name}`);
5
+ let lvlObj = await r.json();
6
+ if(lvlObj == undefined) return null;
7
7
 
8
8
  const res = {
9
- "position": r.data[0].position,
10
- "publisher": r.data[0].publisher.name,
11
- "verifier": r.data[0].verifier.name,
9
+ "position": lvlObj[0].position,
10
+ "publisher": lvlObj[0].publisher.name,
11
+ "verifier": lvlObj[0].verifier.name,
12
12
  }
13
13
 
14
14
  return res;
package/misc/gjReq.js ADDED
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ gjReq:
3
+ async function(endpoint, data) {
4
+ const { server } = require("../config.json");
5
+
6
+ let r = await fetch(`${server}${endpoint.endsWith(".php") ? endpoint.split(".php")[0] : endpoint}.php`, {
7
+ method: 'POST',
8
+ headers: {
9
+ "Content-Type":"application/x-www-form-urlencoded",
10
+ "user-agent":"",
11
+ "Accept-Encoding":"*",
12
+ "Accept":"*/*"
13
+ },
14
+ body: new URLSearchParams(data)
15
+ })
16
+
17
+ let res = await r.text()
18
+ if(res.toLowerCase() == "error code: 1005") throw new Error("1005 Error: Your IP is banned from making requests to this server.");
19
+
20
+ return {
21
+ data: res,
22
+ status: r.status
23
+ };
24
+ }
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gj-boomlings-api",
3
- "version": "1.3.6",
3
+ "version": "1.4.0",
4
4
  "description": "A light-weight Geometry Dash API wrapper",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -30,8 +30,5 @@
30
30
  "engines": {
31
31
  "npm": ">=8.19.2 <10.0.0",
32
32
  "node": ">=18.0.0 <20.0.0"
33
- },
34
- "dependencies": {
35
- "axios": "^1.2.1"
36
33
  }
37
34
  }