alicezetion 1.5.7 → 1.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/.cache/replit/__replit_disk_meta.json +1 -1
  2. package/.cache/replit/nix/env.json +1 -1
  3. package/index.js +489 -526
  4. package/leiamnash/addExternalModule.js +15 -19
  5. package/leiamnash/addUserToGroup.js +77 -113
  6. package/leiamnash/changeAdminStatus.js +47 -79
  7. package/leiamnash/changeArchivedStatus.js +41 -55
  8. package/leiamnash/changeBio.js +64 -77
  9. package/leiamnash/changeBlockedStatus.js +36 -47
  10. package/leiamnash/changeGroupImage.js +105 -129
  11. package/leiamnash/changeNickname.js +43 -59
  12. package/leiamnash/changeThreadColor.js +61 -71
  13. package/leiamnash/changeThreadEmoji.js +41 -55
  14. package/leiamnash/chat.js +324 -459
  15. package/leiamnash/createNewGroup.js +70 -86
  16. package/leiamnash/createPoll.js +59 -71
  17. package/leiamnash/deleteMessage.js +44 -56
  18. package/leiamnash/deleteThread.js +42 -56
  19. package/leiamnash/forwardAttachment.js +47 -60
  20. package/leiamnash/forwardMessage.js +0 -0
  21. package/leiamnash/getCurrentUserID.js +7 -7
  22. package/leiamnash/getEmojiUrl.js +27 -29
  23. package/leiamnash/getFriendsList.js +73 -84
  24. package/leiamnash/getThreadHistory.js +537 -645
  25. package/leiamnash/getThreadHistoryDeprecated.js +71 -93
  26. package/leiamnash/getThreadInfo.js +171 -206
  27. package/leiamnash/getThreadInfoDeprecated.js +56 -80
  28. package/leiamnash/getThreadList.js +213 -238
  29. package/leiamnash/getThreadListDeprecated.js +46 -75
  30. package/leiamnash/getThreadPictures.js +59 -79
  31. package/leiamnash/getUserID.js +61 -66
  32. package/leiamnash/getUserInfo.js +66 -72
  33. package/leiamnash/handleFriendRequest.js +46 -61
  34. package/leiamnash/handleMessageRequest.js +47 -65
  35. package/leiamnash/httpGet.js +47 -52
  36. package/leiamnash/httpPost.js +47 -52
  37. package/leiamnash/listen.js +553 -0
  38. package/leiamnash/listenMqtt-Test.js +687 -0
  39. package/leiamnash/listenMqtt.js +685 -789
  40. package/leiamnash/logout.js +68 -75
  41. package/leiamnash/markAsDelivered.js +47 -58
  42. package/leiamnash/markAsRead.js +70 -80
  43. package/leiamnash/markAsReadAll.js +39 -49
  44. package/leiamnash/markAsSeen.js +48 -59
  45. package/leiamnash/muteThread.js +45 -52
  46. package/leiamnash/removeUserFromGroup.js +45 -79
  47. package/leiamnash/resolvePhotoUrl.js +36 -45
  48. package/leiamnash/searchForThread.js +42 -53
  49. package/leiamnash/sendTypingIndicator.js +70 -103
  50. package/leiamnash/setMessageReaction.js +103 -117
  51. package/leiamnash/setPostReaction.js +63 -76
  52. package/leiamnash/setTitle.js +70 -86
  53. package/leiamnash/threadColors.js +41 -57
  54. package/leiamnash/unfriend.js +42 -52
  55. package/leiamnash/unsendMessage.js +39 -49
  56. package/package.json +73 -71
  57. package/utils.js +1198 -1356
@@ -1,117 +1,103 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var log = require("npmlog");
5
-
6
- module.exports = function(defaultFuncs, api, ctx) {
7
- return function setMessageReaction(reaction, messageID, callback, forceCustomReaction) {
8
- var resolveFunc = function(){};
9
- var rejectFunc = function(){};
10
- var returnPromise = new Promise(function (resolve, reject) {
11
- resolveFunc = resolve;
12
- rejectFunc = reject;
13
- });
14
-
15
- if (!callback) {
16
- callback = function (err, friendList) {
17
- if (err) {
18
- return rejectFunc(err);
19
- }
20
- resolveFunc(friendList);
21
- };
22
- }
23
-
24
- switch (reaction) {
25
- case "\uD83D\uDE0D": //:heart_eyes:
26
- case "\uD83D\uDE06": //:laughing:
27
- case "\uD83D\uDE2E": //:open_mouth:
28
- case "\uD83D\uDE22": //:cry:
29
- case "\uD83D\uDE20": //:angry:
30
- case "\uD83D\uDC4D": //:thumbsup:
31
- case "\uD83D\uDC4E": //:thumbsdown:
32
- case "\u2764": //:heart:
33
- case "\uD83D\uDC97": //:glowingheart:
34
- case "":
35
- //valid
36
- break;
37
- case ":heart_eyes:":
38
- case ":love:":
39
- reaction = "\uD83D\uDE0D";
40
- break;
41
- case ":laughing:":
42
- case ":haha:":
43
- reaction = "\uD83D\uDE06";
44
- break;
45
- case ":open_mouth:":
46
- case ":wow:":
47
- reaction = "\uD83D\uDE2E";
48
- break;
49
- case ":cry:":
50
- case ":sad:":
51
- reaction = "\uD83D\uDE22";
52
- break;
53
- case ":angry:":
54
- reaction = "\uD83D\uDE20";
55
- break;
56
- case ":thumbsup:":
57
- case ":like:":
58
- reaction = "\uD83D\uDC4D";
59
- break;
60
- case ":thumbsdown:":
61
- case ":dislike:":
62
- reaction = "\uD83D\uDC4E";
63
- break;
64
- case ":heart:":
65
- reaction = "\u2764";
66
- break;
67
- case ":glowingheart:":
68
- reaction = "\uD83D\uDC97";
69
- break;
70
- default:
71
- if (forceCustomReaction) {
72
- break;
73
- }
74
- return callback({ error: "Reaction is not a valid emoji." });
75
- }
76
-
77
- var variables = {
78
- data: {
79
- client_mutation_id: ctx.clientMutationId++,
80
- actor_id: ctx.userID,
81
- action: reaction == "" ? "REMOVE_REACTION" : "ADD_REACTION",
82
- message_id: messageID,
83
- reaction: reaction
84
- }
85
- };
86
-
87
- var qs = {
88
- doc_id: "1491398900900362",
89
- variables: JSON.stringify(variables),
90
- dpr: 1
91
- };
92
-
93
- defaultFuncs
94
- .postFormData(
95
- "https://www.facebook.com/webgraphql/mutation/",
96
- ctx.jar,
97
- {},
98
- qs
99
- )
100
- .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
101
- .then(function(resData) {
102
- if (!resData) {
103
- throw { error: "setReaction returned empty object." };
104
- }
105
- if (resData.error) {
106
- throw resData;
107
- }
108
- callback(null);
109
- })
110
- .catch(function(err) {
111
- log.error("setReaction", err);
112
- return callback(err);
113
- });
114
-
115
- return returnPromise;
116
- };
117
- };
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function setMessageReaction(reaction, messageID, callback, forceCustomReaction) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err, data) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(data);
19
+ };
20
+ }
21
+
22
+ switch (reaction) {
23
+ case "\uD83D\uDE0D": //:heart_eyes:
24
+ case "\uD83D\uDE06": //:laughing:
25
+ case "\uD83D\uDE2E": //:open_mouth:
26
+ case "\uD83D\uDE22": //:cry:
27
+ case "\uD83D\uDE20": //:angry:
28
+ case "\uD83D\uDC4D": //:thumbsup:
29
+ case "\uD83D\uDC4E": //:thumbsdown:
30
+ case "\u2764": //:heart:
31
+ case "\uD83D\uDC97": //:glowingheart:
32
+ case "":
33
+ //valid
34
+ break;
35
+ case ":heart_eyes:":
36
+ case ":love:":
37
+ reaction = "\uD83D\uDE0D";
38
+ break;
39
+ case ":laughing:":
40
+ case ":haha:":
41
+ reaction = "\uD83D\uDE06";
42
+ break;
43
+ case ":open_mouth:":
44
+ case ":wow:":
45
+ reaction = "\uD83D\uDE2E";
46
+ break;
47
+ case ":cry:":
48
+ case ":sad:":
49
+ reaction = "\uD83D\uDE22";
50
+ break;
51
+ case ":angry:":
52
+ reaction = "\uD83D\uDE20";
53
+ break;
54
+ case ":thumbsup:":
55
+ case ":like:":
56
+ reaction = "\uD83D\uDC4D";
57
+ break;
58
+ case ":thumbsdown:":
59
+ case ":dislike:":
60
+ reaction = "\uD83D\uDC4E";
61
+ break;
62
+ case ":heart:":
63
+ reaction = "\u2764";
64
+ break;
65
+ case ":glowingheart:":
66
+ reaction = "\uD83D\uDC97";
67
+ break;
68
+ default:
69
+ if (forceCustomReaction) break;
70
+ return callback({ error: "Reaction is not a valid emoji." });
71
+ }
72
+
73
+ var variables = {
74
+ data: {
75
+ client_mutation_id: ctx.clientMutationId++,
76
+ actor_id: ctx.userID,
77
+ action: reaction == "" ? "REMOVE_REACTION" : "ADD_REACTION",
78
+ message_id: messageID,
79
+ reaction: reaction
80
+ }
81
+ };
82
+
83
+ var qs = {
84
+ doc_id: "1491398900900362",
85
+ variables: JSON.stringify(variables),
86
+ dpr: 1
87
+ };
88
+
89
+ defaultFuncs
90
+ .postFormData("https://www.facebook.com/webgraphql/mutation/", ctx.jar, {}, qs)
91
+ .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
92
+ .then(function (resData) {
93
+ if (!resData) throw { error: "setReaction returned empty object." };
94
+ if (resData.error) throw resData;
95
+ callback(null);
96
+ })
97
+ .catch(function (err) {
98
+ log.error("setReaction", err);
99
+ return callback(err);
100
+ });
101
+ return returnPromise;
102
+ };
103
+ };
@@ -1,76 +1,63 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var log = require("npmlog");
5
-
6
- module.exports = function(defaultFuncs, api, ctx) {
7
- return function unsendMessage(postID, type, callback) {
8
- var resolveFunc = function(){};
9
- var rejectFunc = function(){};
10
- var returnPromise = new Promise(function (resolve, reject) {
11
- resolveFunc = resolve;
12
- rejectFunc = reject;
13
- });
14
-
15
- if (!callback) {
16
- callback = function (err, friendList) {
17
- if (err) {
18
- return rejectFunc(err);
19
- }
20
- resolveFunc(friendList);
21
- };
22
- }
23
-
24
- var map = {
25
- like: 1,
26
- heart: 2,
27
- wow: 3,
28
- haha: 4,
29
- sad: 7,
30
- angry: 8
31
- };
32
- if (typeof type != "number") {
33
- type = map[type.toLocaleLowerCase()];
34
- if (!type) {
35
- type = 1;
36
- }
37
- }
38
- var form = {
39
- av: ctx.userID,
40
- fb_api_caller_class: "RelayModern",
41
- fb_api_req_friendly_name: "UFI2FeedbackReactMutation",
42
- //This doc_id is valid as of January 17th, 2020
43
- doc_id: "2580813318646067",
44
- variables: JSON.stringify({
45
- input: {
46
- client_mutation_id: "7",
47
- actor_id: ctx.userID,
48
- feedback_reaction: type,
49
-
50
- },
51
- useDefaultActor: true
52
- })
53
- };
54
-
55
- defaultFuncs
56
- .post(
57
- "https://www.facebook.com/api/graphql/",
58
- ctx.jar,
59
- form
60
- )
61
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
62
- .then(function(resData) {
63
- if (resData.error) {
64
- throw resData;
65
- }
66
-
67
- return callback();
68
- })
69
- .catch(function(err) {
70
- log.error("setPostReaction", err);
71
- return callback(err);
72
- });
73
-
74
- return returnPromise;
75
- };
76
- };
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function setPostReaction(postID, type, callback) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
+ resolveFunc = resolve;
12
+ rejectFunc = reject;
13
+ });
14
+
15
+ if (!callback) {
16
+ callback = function (err, data) {
17
+ if (err) return rejectFunc(err);
18
+ resolveFunc(data);
19
+ };
20
+ }
21
+
22
+ var map = {
23
+ like: 1,
24
+ heart: 2,
25
+ wow: 3,
26
+ haha: 4,
27
+ sad: 7,
28
+ angry: 8
29
+ };
30
+ if (typeof type != "number") {
31
+ type = map[type.toLocaleLowerCase()];
32
+ if (!type) type = 1;
33
+ }
34
+ var form = {
35
+ av: ctx.userID,
36
+ fb_api_caller_class: "RelayModern",
37
+ fb_api_req_friendly_name: "UFI2FeedbackReactMutation",
38
+ //This doc_id is valid as of January 17th, 2020
39
+ doc_id: "2580813318646067",
40
+ variables: JSON.stringify({
41
+ input: {
42
+ client_mutation_id: "7",
43
+ actor_id: ctx.userID,
44
+ feedback_reaction: type
45
+ },
46
+ useDefaultActor: true
47
+ })
48
+ };
49
+
50
+ defaultFuncs
51
+ .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
52
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
53
+ .then(function (resData) {
54
+ if (resData.error) throw resData;
55
+ return callback();
56
+ })
57
+ .catch(function (err) {
58
+ log.error("setPostReaction", err);
59
+ return callback(err);
60
+ });
61
+ return returnPromise;
62
+ };
63
+ };
@@ -1,86 +1,70 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var log = require("npmlog");
5
-
6
- module.exports = function(defaultFuncs, api, ctx) {
7
- return function setTitle(newTitle, threadID, callback) {
8
- if (
9
- !callback &&
10
- (utils.getType(threadID) === "Function" ||
11
- utils.getType(threadID) === "AsyncFunction")
12
- ) {
13
- throw { error: "please pass a threadID as a second argument." };
14
- }
15
-
16
- var resolveFunc = function(){};
17
- var rejectFunc = function(){};
18
- var returnPromise = new Promise(function (resolve, reject) {
19
- resolveFunc = resolve;
20
- rejectFunc = reject;
21
- });
22
-
23
- if (!callback) {
24
- callback = function (err, friendList) {
25
- if (err) {
26
- return rejectFunc(err);
27
- }
28
- resolveFunc(friendList);
29
- };
30
- }
31
-
32
- var messageAndOTID = utils.generateOfflineThreadingID();
33
- var form = {
34
- client: "mercury",
35
- action_type: "ma-type:log-message",
36
- author: "fbid:" + ctx.userID,
37
- author_email: "",
38
- coordinates: "",
39
- timestamp: Date.now(),
40
- timestamp_absolute: "Today",
41
- timestamp_relative: utils.generateTimestampRelative(),
42
- timestamp_time_passed: "0",
43
- is_unread: false,
44
- is_cleared: false,
45
- is_forward: false,
46
- is_filtered_content: false,
47
- is_spoof_warning: false,
48
- source: "source:chat:web",
49
- "source_tags[0]": "source:chat",
50
- status: "0",
51
- offline_threading_id: messageAndOTID,
52
- message_id: messageAndOTID,
53
- threading_id: utils.generateThreadingID(ctx.clientID),
54
- manual_retry_cnt: "0",
55
- thread_fbid: threadID,
56
- thread_name: newTitle,
57
- thread_id: threadID,
58
- log_message_type: "log:thread-name"
59
- };
60
-
61
- defaultFuncs
62
- .post("https://www.facebook.com/messaging/set_thread_name/", ctx.jar, form)
63
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
64
- .then(function(resData) {
65
- if (resData.error && resData.error === 1545012) {
66
- throw { error: "Cannot change chat title: Not member of chat." };
67
- }
68
-
69
- if (resData.error && resData.error === 1545003) {
70
- throw { error: "Cannot set title of single-user chat." };
71
- }
72
-
73
- if (resData.error) {
74
- throw resData;
75
- }
76
-
77
- return callback();
78
- })
79
- .catch(function(err) {
80
- log.error("setTitle", err);
81
- return callback(err);
82
- });
83
-
84
- return returnPromise;
85
- };
86
- };
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ return function setTitle(newTitle, threadID, callback) {
8
+ if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction"))
9
+ throw { error: "please pass a threadID as a second argument." };
10
+
11
+
12
+ var resolveFunc = function () { };
13
+ var rejectFunc = function () { };
14
+ var returnPromise = new Promise(function (resolve, reject) {
15
+ resolveFunc = resolve;
16
+ rejectFunc = reject;
17
+ });
18
+
19
+ if (!callback) {
20
+ callback = function (err, data) {
21
+ if (err) return rejectFunc(err);
22
+ resolveFunc(data);
23
+ };
24
+ }
25
+
26
+ var messageAndOTID = utils.generateOfflineThreadingID();
27
+ var form = {
28
+ client: "mercury",
29
+ action_type: "ma-type:log-message",
30
+ author: "fbid:" + ctx.userID,
31
+ author_email: "",
32
+ coordinates: "",
33
+ timestamp: Date.now(),
34
+ timestamp_absolute: "Today",
35
+ timestamp_relative: utils.generateTimestampRelative(),
36
+ timestamp_time_passed: "0",
37
+ is_unread: false,
38
+ is_cleared: false,
39
+ is_forward: false,
40
+ is_filtered_content: false,
41
+ is_spoof_warning: false,
42
+ source: "source:chat:web",
43
+ "source_tags[0]": "source:chat",
44
+ status: "0",
45
+ offline_threading_id: messageAndOTID,
46
+ message_id: messageAndOTID,
47
+ threading_id: utils.generateThreadingID(ctx.clientID),
48
+ manual_retry_cnt: "0",
49
+ thread_fbid: threadID,
50
+ thread_name: newTitle,
51
+ thread_id: threadID,
52
+ log_message_type: "log:thread-name"
53
+ };
54
+
55
+ defaultFuncs
56
+ .post("https://www.facebook.com/messaging/set_thread_name/", ctx.jar, form)
57
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
58
+ .then(function (resData) {
59
+ if (resData.error && resData.error === 1545012) throw { error: "Cannot change chat title: Not member of chat." };
60
+ if (resData.error && resData.error === 1545003) throw { error: "Cannot set title of single-user chat." };
61
+ if (resData.error) throw resData;
62
+ return callback();
63
+ })
64
+ .catch(function (err) {
65
+ log.error("setTitle", err);
66
+ return callback(err);
67
+ });
68
+ return returnPromise;
69
+ };
70
+ };
@@ -1,57 +1,41 @@
1
- "use strict";
2
-
3
- module.exports = function(_defaultFuncs, _api, _ctx) {
4
- // Currently the only colors that can be passed to api.changeThreadColor(); may change if Facebook adds more
5
- return {
6
- //Old hex colors.
7
- ////MessengerBlue: null,
8
- ////Viking: "#44bec7",
9
- ////GoldenPoppy: "#ffc300",
10
- ////RadicalRed: "#fa3c4c",
11
- ////Shocking: "#d696bb",
12
- ////PictonBlue: "#6699cc",
13
- ////FreeSpeechGreen: "#13cf13",
14
- ////Pumpkin: "#ff7e29",
15
- ////LightCoral: "#e68585",
16
- ////MediumSlateBlue: "#7646ff",
17
- ////DeepSkyBlue: "#20cef5",
18
- ////Fern: "#67b868",
19
- ////Cameo: "#d4a88c",
20
- ////BrilliantRose: "#ff5ca1",
21
- ////BilobaFlower: "#a695c7"
22
-
23
- //#region This part is for backward compatibly
24
- //trying to match the color one-by-one. kill me plz
25
- MessengerBlue: "196241301102133", //DefaultBlue
26
- Viking: "1928399724138152", //TealBlue
27
- GoldenPoppy: "174636906462322", //Yellow
28
- RadicalRed: "2129984390566328", //Red
29
- Shocking: "2058653964378557", //LavenderPurple
30
- FreeSpeechGreen: "2136751179887052", //Green
31
- Pumpkin: "175615189761153", //Orange
32
- LightCoral: "980963458735625", //CoralPink
33
- MediumSlateBlue: "234137870477637", //BrightPurple
34
- DeepSkyBlue: "2442142322678320", //AquaBlue
35
- BrilliantRose: "169463077092846", //HotPink
36
- //i've tried my best, everything else can't be mapped. (or is it?) -UIRI 2020
37
- //#endregion
38
-
39
- DefaultBlue: "196241301102133",
40
- HotPink: "169463077092846",
41
- AquaBlue: "2442142322678320",
42
- BrightPurple: "234137870477637",
43
- CoralPink: "980963458735625",
44
- Orange: "175615189761153",
45
- Green: "2136751179887052",
46
- LavenderPurple: "2058653964378557",
47
- Red: "2129984390566328",
48
- Yellow: "174636906462322",
49
- TealBlue: "1928399724138152",
50
- Aqua: "417639218648241",
51
- Mango: "930060997172551",
52
- Berry: "164535220883264",
53
- Citrus: "370940413392601",
54
- Candy: "205488546921017",
55
- //StarWars: "809305022860427" Removed.
56
- };
57
- };
1
+ "use strict";
2
+
3
+ module.exports = function (_defaultFuncs, _api, _ctx) {
4
+ // Currently the only colors that can be passed to api.changeThreadColor(); may change if Facebook adds more
5
+ return {
6
+
7
+ //#region This part is for backward compatibly
8
+ //trying to match the color one-by-one. kill me plz
9
+ MessengerBlue: "196241301102133", //DefaultBlue
10
+ Viking: "1928399724138152", //TealBlue
11
+ GoldenPoppy: "174636906462322", //Yellow
12
+ RadicalRed: "2129984390566328", //Red
13
+ Shocking: "2058653964378557", //LavenderPurple
14
+ FreeSpeechGreen: "2136751179887052", //Green
15
+ Pumpkin: "175615189761153", //Orange
16
+ LightCoral: "980963458735625", //CoralPink
17
+ MediumSlateBlue: "234137870477637", //BrightPurple
18
+ DeepSkyBlue: "2442142322678320", //AquaBlue
19
+ BrilliantRose: "169463077092846", //HotPink
20
+ //i've tried my best, everything else can't be mapped. (or is it?) -UIRI 2020
21
+ //#endregion
22
+
23
+ DefaultBlue: "196241301102133",
24
+ HotPink: "169463077092846",
25
+ AquaBlue: "2442142322678320",
26
+ BrightPurple: "234137870477637",
27
+ CoralPink: "980963458735625",
28
+ Orange: "175615189761153",
29
+ Green: "2136751179887052",
30
+ LavenderPurple: "2058653964378557",
31
+ Red: "2129984390566328",
32
+ Yellow: "174636906462322",
33
+ TealBlue: "1928399724138152",
34
+ Aqua: "417639218648241",
35
+ Mango: "930060997172551",
36
+ Berry: "164535220883264",
37
+ Citrus: "370940413392601",
38
+ Candy: "205488546921017",
39
+ //StarWars: "809305022860427" Removed.
40
+ };
41
+ };