toru-fca 1.0.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.
Files changed (113) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +319 -0
  3. package/advancedSystem.js +95 -0
  4. package/build/messagix.dll +0 -0
  5. package/build/messagix.so +0 -0
  6. package/checkUpdate.js +37 -0
  7. package/config.json +45 -0
  8. package/e2ee.js +719 -0
  9. package/index.js +715 -0
  10. package/lib/index.mjs +1412 -0
  11. package/package.json +69 -0
  12. package/src/OldMessage.js +357 -0
  13. package/src/addExternalModule.js +25 -0
  14. package/src/addUserToGroup.js +117 -0
  15. package/src/changeAdminStatus.js +105 -0
  16. package/src/changeArchivedStatus.js +57 -0
  17. package/src/changeAvatar.js +138 -0
  18. package/src/changeAvatarV2.js +86 -0
  19. package/src/changeAvt.js +85 -0
  20. package/src/changeBio.js +78 -0
  21. package/src/changeBlockedStatus.js +51 -0
  22. package/src/changeBlockedStatusMqtt.js +80 -0
  23. package/src/changeCover.js +72 -0
  24. package/src/changeGroupImage.js +137 -0
  25. package/src/changeName.js +79 -0
  26. package/src/changeNickname.js +61 -0
  27. package/src/changeThreadColor.js +67 -0
  28. package/src/changeThreadEmoji.js +57 -0
  29. package/src/changeUsername.js +59 -0
  30. package/src/createCommentPost.js +230 -0
  31. package/src/createNewGroup.js +90 -0
  32. package/src/createPoll.js +73 -0
  33. package/src/createPost.js +276 -0
  34. package/src/data/getThreadInfo.json +1 -0
  35. package/src/deleteMessage.js +58 -0
  36. package/src/deleteThread.js +58 -0
  37. package/src/editMessage.js +81 -0
  38. package/src/editMessageOld.js +67 -0
  39. package/src/follow.js +74 -0
  40. package/src/forwardAttachment.js +62 -0
  41. package/src/friendList.js +104 -0
  42. package/src/getAccess.js +112 -0
  43. package/src/getAvatarUser.js +78 -0
  44. package/src/getBotInitialData.js +42 -0
  45. package/src/getCtx.js +5 -0
  46. package/src/getCurrentUserID.js +7 -0
  47. package/src/getEmojiUrl.js +29 -0
  48. package/src/getFriendsList.js +85 -0
  49. package/src/getMessage.js +849 -0
  50. package/src/getOptions.js +5 -0
  51. package/src/getRegion.js +7 -0
  52. package/src/getThreadHistory.js +682 -0
  53. package/src/getThreadHistoryDeprecated.js +71 -0
  54. package/src/getThreadInfo.js +232 -0
  55. package/src/getThreadInfoDeprecated.js +56 -0
  56. package/src/getThreadList.js +213 -0
  57. package/src/getThreadListDeprecated.js +46 -0
  58. package/src/getThreadPictures.js +59 -0
  59. package/src/getThreadTheme.js +81 -0
  60. package/src/getUID.js +119 -0
  61. package/src/getUserID.js +61 -0
  62. package/src/getUserInfo.js +66 -0
  63. package/src/handleFriendRequest.js +46 -0
  64. package/src/handleMessageRequest.js +47 -0
  65. package/src/httpGet.js +49 -0
  66. package/src/httpPost.js +48 -0
  67. package/src/httpPostFormData.js +70 -0
  68. package/src/listenMqtt.js +955 -0
  69. package/src/listenNotification.js +85 -0
  70. package/src/logout.js +19 -0
  71. package/src/markAsDelivered.js +47 -0
  72. package/src/markAsRead.js +72 -0
  73. package/src/markAsReadAll.js +40 -0
  74. package/src/markAsSeen.js +48 -0
  75. package/src/metaTheme.js +189 -0
  76. package/src/muteThread.js +45 -0
  77. package/src/note.js +228 -0
  78. package/src/pinMessage.js +59 -0
  79. package/src/refreshFb_dtsg.js +91 -0
  80. package/src/removeSuspiciousAccount.js +78 -0
  81. package/src/removeUserFromGroup.js +81 -0
  82. package/src/reply.js +442 -0
  83. package/src/resolvePhotoUrl.js +47 -0
  84. package/src/searchForThread.js +53 -0
  85. package/src/searchFriends.js +140 -0
  86. package/src/searchStickers.js +53 -0
  87. package/src/send.js +46 -0
  88. package/src/sendButtons.js +163 -0
  89. package/src/sendComment.js +159 -0
  90. package/src/sendFriendRequest.js +112 -0
  91. package/src/sendMessage.js +440 -0
  92. package/src/sendMessageMqtt.js +323 -0
  93. package/src/sendTypingIndicator.js +54 -0
  94. package/src/setActiveStatus.js +92 -0
  95. package/src/setMessageReaction.js +149 -0
  96. package/src/setMessageReactionMqtt.js +62 -0
  97. package/src/setPostReaction.js +114 -0
  98. package/src/setProfileGuard.js +44 -0
  99. package/src/setProfileLock.js +97 -0
  100. package/src/setStoryReaction.js +133 -0
  101. package/src/setStorySeen.js +108 -0
  102. package/src/setThreadTheme.js +102 -0
  103. package/src/setTitle.js +92 -0
  104. package/src/shareContact.js +110 -0
  105. package/src/shareLink.js +59 -0
  106. package/src/stopListenMqtt.js +37 -0
  107. package/src/storyManager.js +357 -0
  108. package/src/suggestFriend.js +132 -0
  109. package/src/threadColors.js +131 -0
  110. package/src/unfriend.js +54 -0
  111. package/src/unsendMessage.js +68 -0
  112. package/src/uploadAttachment.js +115 -0
  113. package/utils.js +3044 -0
@@ -0,0 +1,849 @@
1
+ "use strict";
2
+
3
+ var log = require("npmlog");
4
+
5
+ // Original
6
+ /**
7
+ * @author https://github.com/Schmavery/facebook-chat-api/pull/865
8
+ */
9
+
10
+ const utils = require("../utils");
11
+ // HRIDOY
12
+
13
+ function formatMessage(threadID, data) {
14
+ if (!data || !data.__typename) {
15
+ return {
16
+ type: "unknown",
17
+ threadID: threadID,
18
+ messageID: data && data.message_id ? data.message_id : null,
19
+ body: "",
20
+ attachments: [],
21
+ mentions: [],
22
+ timestamp: data && data.timestamp_precise ? data.timestamp_precise : Date.now(),
23
+ error: "Invalid message data structure"
24
+ };
25
+ }
26
+
27
+ switch (data.__typename) {
28
+ case "ThreadNameMessage":
29
+ return {
30
+ type: "event",
31
+ threadID: threadID,
32
+ messageID: data.message_id,
33
+ logMessageType: "log:thread-name",
34
+ logMessageData: {
35
+ name: data.thread_name,
36
+ },
37
+ logMessageBody: data.snippet,
38
+ timestamp: data.timestamp_precise,
39
+ author: data.message_sender.id,
40
+ };
41
+ case "ThreadImageMessage":
42
+ const metadata = data.image_with_metadata;
43
+ return {
44
+ type: "event",
45
+ threadID: threadID,
46
+ messageID: data.message_id,
47
+ logMessageType: "log:thread-image",
48
+ logMessageData: metadata
49
+ ? {
50
+ attachmentID: metadata.legacy_attachment_id,
51
+ width: metadata.original_dimensions.x,
52
+ height: metadata.original_dimensions.y,
53
+ url: metadata.preview.uri,
54
+ }
55
+ : {
56
+ attachmentID: null,
57
+ width: null,
58
+ height: null,
59
+ url: null,
60
+ },
61
+ logMessageBody: data.snippet,
62
+ timestamp: data.timestamp_precise,
63
+ author: data.message_sender.id,
64
+ };
65
+ case "GenericAdminTextMessage":
66
+ switch (data.extensible_message_admin_text_type) {
67
+ case "CHANGE_THREAD_THEME":
68
+ return {
69
+ type: "event",
70
+ threadID: threadID,
71
+ messageID: data.message_id,
72
+ logMessageType: "log:thread-color",
73
+ logMessageData: colors.find(
74
+ (color) =>
75
+ color.theme_color ===
76
+ data.extensible_message_admin_text.theme_color,
77
+ ) || {
78
+ theme_color: data.extensible_message_admin_text.theme_color,
79
+ theme_id: null,
80
+ theme_emoji: null,
81
+ gradient: null,
82
+ should_show_icon: null,
83
+ theme_name_with_subtitle: null,
84
+ },
85
+ logMessageBody: data.snippet,
86
+ timestamp: data.timestamp_precise,
87
+ author: data.message_sender.id,
88
+ };
89
+ case "CHANGE_THREAD_ICON":
90
+ const thread_icon = data.extensible_message_admin_text.thread_icon;
91
+ return {
92
+ type: "event",
93
+ threadID: threadID,
94
+ messageID: data.message_id,
95
+ logMessageType: "log:thread-icon",
96
+ logMessageData: {
97
+ thread_icon_url: `https://static.xx.fbcdn.net/images/emoji.php/v9/t3c/1/16/${thread_icon
98
+ .codePointAt(0)
99
+ .toString(16)}.png`,
100
+ thread_icon: thread_icon,
101
+ },
102
+ logMessageBody: data.snippet,
103
+ timestamp: data.timestamp_precise,
104
+ author: data.message_sender.id,
105
+ };
106
+ case "CHANGE_THREAD_NICKNAME":
107
+ return {
108
+ type: "event",
109
+ threadID: threadID,
110
+ messageID: data.message_id,
111
+ logMessageType: "log:user-nickname",
112
+ logMessageData: {
113
+ nickname: data.extensible_message_admin_text.nickname,
114
+ participant_id: data.extensible_message_admin_text.participant_id,
115
+ },
116
+ logMessageBody: data.snippet,
117
+ timestamp: data.timestamp_precise,
118
+ author: data.message_sender.id,
119
+ };
120
+ case "GROUP_POLL":
121
+ const question = data.extensible_message_admin_text.question;
122
+ return {
123
+ type: "event",
124
+ threadID: threadID,
125
+ messageID: data.message_id,
126
+ logMessageType: "log:thread-poll",
127
+ logMessageData: {
128
+ question_json: JSON.stringify({
129
+ id: question.id,
130
+ text: question.text,
131
+ total_count: data.extensible_message_admin_text.total_count,
132
+ viewer_has_voted: question.viewer_has_voted,
133
+ question_type: "",
134
+ creator_id: data.message_sender.id,
135
+ options: question.options.nodes.map((option) => ({
136
+ id: option.id,
137
+ text: option.text,
138
+ total_count: option.voters.nodes.length,
139
+ viewer_has_voted: option.viewer_has_voted,
140
+ voters: option.voters.nodes.map((voter) => voter.id),
141
+ })),
142
+ }),
143
+ event_type:
144
+ data.extensible_message_admin_text.event_type.toLowerCase(),
145
+ question_id: question.id,
146
+ },
147
+ logMessageBody: data.snippet,
148
+ timestamp: data.timestamp_precise,
149
+ author: data.message_sender.id,
150
+ };
151
+ default:
152
+ throw new Error(
153
+ `Unknown admin text type: "${data.extensible_message_admin_text_type}", if this happens to you let me know when it happens. Please open an issue at https://github.com/ntkhang03/fb-chat-api/issues.`,
154
+ );
155
+ }
156
+ case "UserMessage":
157
+ return {
158
+ senderID: data.message_sender ? data.message_sender.id : null,
159
+ body: data.message && data.message.text ? data.message.text : "",
160
+ threadID: threadID,
161
+ messageID: data.message_id,
162
+ reactions: data.message_reactions && Array.isArray(data.message_reactions) ? data.message_reactions.map((r) => ({
163
+ [r.user && r.user.id ? r.user.id : "unknown"]: r.reaction || "",
164
+ })) : [],
165
+ attachments:
166
+ data.blob_attachments && data.blob_attachments.length > 0
167
+ ? (data.blob_attachments || []).map((att) => {
168
+ let x;
169
+ try {
170
+ x = utils._formatAttachment(att);
171
+ } catch (ex) {
172
+ x = att;
173
+ x.error = ex;
174
+ x.type = "unknown";
175
+ }
176
+ return x;
177
+ })
178
+ : data.extensible_attachment &&
179
+ Object.keys(data.extensible_attachment).length > 0
180
+ ? [
181
+ {
182
+ type: "share",
183
+ ID: data.extensible_attachment.legacy_attachment_id || null,
184
+ url: data.extensible_attachment.story_attachment ? data.extensible_attachment.story_attachment.url : null,
185
+
186
+ title: data.extensible_attachment.story_attachment &&
187
+ data.extensible_attachment.story_attachment.title_with_entities ?
188
+ data.extensible_attachment.story_attachment.title_with_entities.text : "",
189
+ description: data.extensible_attachment.story_attachment &&
190
+ data.extensible_attachment.story_attachment.description ?
191
+ data.extensible_attachment.story_attachment.description.text : "",
192
+ source: data.extensible_attachment.story_attachment ? data.extensible_attachment.story_attachment.source : null,
193
+
194
+ image: (
195
+ (data.extensible_attachment.story_attachment && data.extensible_attachment.story_attachment.media || {})
196
+ .image || {}
197
+ ).uri || null,
198
+ width: (
199
+ (data.extensible_attachment.story_attachment && data.extensible_attachment.story_attachment.media || {})
200
+ .image || {}
201
+ ).width || null,
202
+ height: (
203
+ (data.extensible_attachment.story_attachment && data.extensible_attachment.story_attachment.media || {})
204
+ .image || {}
205
+ ).height || null,
206
+ playable:
207
+ (data.extensible_attachment.story_attachment && data.extensible_attachment.story_attachment.media || {})
208
+ .is_playable || false,
209
+ duration:
210
+ (data.extensible_attachment.story_attachment && data.extensible_attachment.story_attachment.media || {})
211
+ .playable_duration_in_ms || 0,
212
+
213
+ subattachments: data.extensible_attachment.subattachments || [],
214
+ properties: data.extensible_attachment.story_attachment ? data.extensible_attachment.story_attachment.properties : {},
215
+ },
216
+ ]
217
+ : [],
218
+ mentions: data.message && data.message.ranges && data.message.text ? data.message.ranges.map((mention) => ({
219
+ [mention.entity && mention.entity.id ? mention.entity.id : "unknown"]: data.message.text.substring(
220
+ mention.offset || 0,
221
+ (mention.offset || 0) + (mention.length || 0),
222
+ ),
223
+ })) : [],
224
+ timestamp: data.timestamp_precise,
225
+ };
226
+ default:
227
+ throw new Error(
228
+ `Unknown message type: "${data.__typename}", if this happens to you let me know when it happens. Please open an issue at https://github.com/ntkhang03/fb-chat-api/issues.`,
229
+ );
230
+ // If this happens to you let me know when it happens
231
+ // Please open an issue at https://github.com/ntkhang03/fb-chat-api/issues.
232
+ // return Object.assign({ type: "unknown", data });
233
+ }
234
+ }
235
+
236
+ function parseDelta(threadID, delta) {
237
+ if (delta.replied_to_message) {
238
+ return Object.assign(
239
+ {
240
+ type: "message_reply",
241
+ },
242
+ formatMessage(threadID, delta),
243
+ {
244
+ messageReply: formatMessage(threadID, delta.replied_to_message.message),
245
+ },
246
+ );
247
+ } else {
248
+ return formatMessage(threadID, delta);
249
+ }
250
+ }
251
+
252
+ module.exports = function (defaultFuncs, api, ctx) {
253
+ return function getMessage(threadID, messageID, callback) {
254
+ let resolveFunc = function () {};
255
+ let rejectFunc = function () {};
256
+ const returnPromise = new Promise(function (resolve, reject) {
257
+ resolveFunc = resolve;
258
+ rejectFunc = reject;
259
+ });
260
+
261
+ if (!callback) {
262
+ callback = function (err, info) {
263
+ if (err) return rejectFunc(err);
264
+ resolveFunc(info);
265
+ };
266
+ }
267
+
268
+ if (!threadID || !messageID) {
269
+ return callback({ error: "getMessage: need threadID and messageID" });
270
+ }
271
+
272
+ const form = {
273
+ av: ctx.globalOptions.pageID,
274
+ queries: JSON.stringify({
275
+ o0: {
276
+ //This doc_id is valid as of ? (prob January 18, 2020)
277
+ doc_id: "1768656253222505",
278
+ query_params: {
279
+ thread_and_message_id: {
280
+ thread_id: threadID,
281
+ message_id: messageID,
282
+ },
283
+ },
284
+ },
285
+ }),
286
+ };
287
+
288
+ defaultFuncs
289
+ .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
290
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
291
+ .then((resData) => {
292
+ if (resData[resData.length - 1].error_results > 0) {
293
+ throw resData[0].o0.errors;
294
+ }
295
+
296
+ if (resData[resData.length - 1].successful_results === 0) {
297
+ throw {
298
+ error: "getMessage: there was no successful_results",
299
+ res: resData,
300
+ };
301
+ }
302
+
303
+ const fetchData = resData[0].o0.data.message;
304
+ if (fetchData) {
305
+ callback(null, parseDelta(threadID, fetchData));
306
+ } else {
307
+ throw fetchData;
308
+ }
309
+ })
310
+ .catch((err) => {
311
+ log.error("getMessage", err);
312
+ callback(err);
313
+ });
314
+
315
+ return returnPromise;
316
+ };
317
+ };
318
+
319
+ const colors = [
320
+ {
321
+ theme_color: "FF000000",
322
+ theme_id: "788274591712841",
323
+ theme_emoji: "🖤",
324
+ gradient: '["FFF0F0F0"]',
325
+ should_show_icon: "",
326
+ theme_name_with_subtitle: "Monochrome",
327
+ },
328
+ {
329
+ theme_color: "FFFF5CA1",
330
+ theme_id: "169463077092846",
331
+ theme_emoji: null,
332
+ gradient: null,
333
+ should_show_icon: "1",
334
+ theme_name_with_subtitle: "Hot Pink",
335
+ },
336
+ {
337
+ theme_color: "FF2825B5",
338
+ theme_id: "271607034185782",
339
+ theme_emoji: null,
340
+ gradient: '["FF5E007E","FF331290","FF2825B5"]',
341
+ should_show_icon: "1",
342
+ theme_name_with_subtitle: "Shadow",
343
+ },
344
+ {
345
+ theme_color: "FFD9A900",
346
+ theme_id: "2533652183614000",
347
+ theme_emoji: null,
348
+ gradient: '["FF550029","FFAA3232","FFD9A900"]',
349
+ should_show_icon: "1",
350
+ theme_name_with_subtitle: "Maple",
351
+ },
352
+ {
353
+ theme_color: "FFFB45DE",
354
+ theme_id: "2873642949430623",
355
+ theme_emoji: null,
356
+ gradient: null,
357
+ should_show_icon: "1",
358
+ theme_name_with_subtitle: "Tulip",
359
+ },
360
+ {
361
+ theme_color: "FF5E007E",
362
+ theme_id: "193497045377796",
363
+ theme_emoji: null,
364
+ gradient: null,
365
+ should_show_icon: "1",
366
+ theme_name_with_subtitle: "Grape",
367
+ },
368
+ {
369
+ theme_color: "FF7AA286",
370
+ theme_id: "1455149831518874",
371
+ theme_emoji: "🌑",
372
+ gradient: '["FF25C0E1","FFCE832A"]',
373
+ should_show_icon: "",
374
+ theme_name_with_subtitle: "Dune",
375
+ },
376
+ {
377
+ theme_color: "FFFAAF00",
378
+ theme_id: "672058580051520",
379
+ theme_emoji: null,
380
+ gradient: null,
381
+ should_show_icon: "1",
382
+ theme_name_with_subtitle: "Honey",
383
+ },
384
+ {
385
+ theme_color: "FF0084FF",
386
+ theme_id: "196241301102133",
387
+ theme_emoji: null,
388
+ gradient: null,
389
+ should_show_icon: "1",
390
+ theme_name_with_subtitle: "Default Blue",
391
+ },
392
+ {
393
+ theme_color: "FFFFC300",
394
+ theme_id: "174636906462322",
395
+ theme_emoji: null,
396
+ gradient: null,
397
+ should_show_icon: "1",
398
+ theme_name_with_subtitle: "Yellow",
399
+ },
400
+ {
401
+ theme_color: "FF44BEC7",
402
+ theme_id: "1928399724138152",
403
+ theme_emoji: null,
404
+ gradient: null,
405
+ should_show_icon: "1",
406
+ theme_name_with_subtitle: "Teal Blue",
407
+ },
408
+ {
409
+ theme_color: "FF7646FF",
410
+ theme_id: "234137870477637",
411
+ theme_emoji: null,
412
+ gradient: null,
413
+ should_show_icon: "1",
414
+ theme_name_with_subtitle: "Bright Purple",
415
+ },
416
+ {
417
+ theme_color: "FFF25C54",
418
+ theme_id: "3022526817824329",
419
+ theme_emoji: null,
420
+ gradient: null,
421
+ should_show_icon: "1",
422
+ theme_name_with_subtitle: "Peach",
423
+ },
424
+ {
425
+ theme_color: "FFF01D6A",
426
+ theme_id: "724096885023603",
427
+ theme_emoji: null,
428
+ gradient: '["FF005FFF","FF9200FF","FFFF2E19"]',
429
+ should_show_icon: "1",
430
+ theme_name_with_subtitle: "Berry",
431
+ },
432
+ {
433
+ theme_color: "FFFF7CA8",
434
+ theme_id: "624266884847972",
435
+ theme_emoji: null,
436
+ gradient: '["FFFF8FB2","FFA797FF","FF00E5FF"]',
437
+ should_show_icon: "1",
438
+ theme_name_with_subtitle: "Candy",
439
+ },
440
+ {
441
+ theme_color: "FF6E5B04",
442
+ theme_id: "365557122117011",
443
+ theme_emoji: "💛",
444
+ gradient: '["FFED9F9A","FFED9F9A","FFED9F9A"]',
445
+ should_show_icon: "",
446
+ theme_name_with_subtitle: "Support",
447
+ },
448
+ {
449
+ theme_color: "FF0052CD",
450
+ theme_id: "230032715012014",
451
+ theme_emoji: "âœŒī¸",
452
+ gradient: '["FF0052CD","FF00A1E6","FF0052CD"]',
453
+ should_show_icon: "",
454
+ theme_name_with_subtitle: "Tie-Dye",
455
+ },
456
+ {
457
+ theme_color: "FF601DDD",
458
+ theme_id: "1060619084701625",
459
+ theme_emoji: "â˜ī¸",
460
+ gradient: '["FFCA34FF","FF302CFF","FFBA009C"]',
461
+ should_show_icon: "",
462
+ theme_name_with_subtitle: "Lo-Fi",
463
+ },
464
+ {
465
+ theme_color: "FF0099FF",
466
+ theme_id: "3273938616164733",
467
+ theme_emoji: null,
468
+ gradient: null,
469
+ should_show_icon: "1",
470
+ theme_name_with_subtitle: "Classic",
471
+ },
472
+ {
473
+ theme_color: "FF1ADB5B",
474
+ theme_id: "370940413392601",
475
+ theme_emoji: null,
476
+ gradient: '["FFFFD200","FF6EDF00","FF00DFBB"]',
477
+ should_show_icon: "1",
478
+ theme_name_with_subtitle: "Citrus",
479
+ },
480
+ {
481
+ theme_color: "FFD696BB",
482
+ theme_id: "2058653964378557",
483
+ theme_emoji: null,
484
+ gradient: null,
485
+ should_show_icon: "1",
486
+ theme_name_with_subtitle: "Lavender Purple",
487
+ },
488
+ {
489
+ theme_color: "FFC03232",
490
+ theme_id: "1059859811490132",
491
+ theme_emoji: "🙃",
492
+ gradient: '["FFDB4040","FFA32424"]',
493
+ should_show_icon: "",
494
+ theme_name_with_subtitle: "Stranger Things",
495
+ },
496
+ {
497
+ theme_color: "FFFA3C4C",
498
+ theme_id: "2129984390566328",
499
+ theme_emoji: null,
500
+ gradient: null,
501
+ should_show_icon: "1",
502
+ theme_name_with_subtitle: "Red",
503
+ },
504
+ {
505
+ theme_color: "FF13CF13",
506
+ theme_id: "2136751179887052",
507
+ theme_emoji: null,
508
+ gradient: null,
509
+ should_show_icon: "1",
510
+ theme_name_with_subtitle: "Green",
511
+ },
512
+ {
513
+ theme_color: "FFFF7E29",
514
+ theme_id: "175615189761153",
515
+ theme_emoji: null,
516
+ gradient: null,
517
+ should_show_icon: "1",
518
+ theme_name_with_subtitle: "Orange",
519
+ },
520
+ {
521
+ theme_color: "FFE68585",
522
+ theme_id: "980963458735625",
523
+ theme_emoji: null,
524
+ gradient: null,
525
+ should_show_icon: "1",
526
+ theme_name_with_subtitle: "Coral Pink",
527
+ },
528
+ {
529
+ theme_color: "FF20CEF5",
530
+ theme_id: "2442142322678320",
531
+ theme_emoji: null,
532
+ gradient: null,
533
+ should_show_icon: "1",
534
+ theme_name_with_subtitle: "Aqua Blue",
535
+ },
536
+ {
537
+ theme_color: "FF0EDCDE",
538
+ theme_id: "417639218648241",
539
+ theme_emoji: null,
540
+ gradient: '["FF19C9FF","FF00E6D2","FF0EE6B7"]',
541
+ should_show_icon: "1",
542
+ theme_name_with_subtitle: "Aqua",
543
+ },
544
+ {
545
+ theme_color: "FFFF9C19",
546
+ theme_id: "930060997172551",
547
+ theme_emoji: null,
548
+ gradient: '["FFFFDC2D","FFFF9616","FFFF4F00"]',
549
+ should_show_icon: "1",
550
+ theme_name_with_subtitle: "Mango",
551
+ },
552
+ {
553
+ theme_color: "FFF01D6A",
554
+ theme_id: "164535220883264",
555
+ theme_emoji: null,
556
+ gradient: '["FF005FFF","FF9200FF","FFFF2E19"]',
557
+ should_show_icon: "1",
558
+ theme_name_with_subtitle: "Berry",
559
+ },
560
+ {
561
+ theme_color: "FFFF7CA8",
562
+ theme_id: "205488546921017",
563
+ theme_emoji: null,
564
+ gradient: '["FFFF8FB2","FFA797FF","FF00E5FF"]',
565
+ should_show_icon: "1",
566
+ theme_name_with_subtitle: "Candy",
567
+ },
568
+ {
569
+ theme_color: "FFFF6F07",
570
+ theme_id: "1833559466821043",
571
+ theme_emoji: "🌎",
572
+ gradient: '["FFFF6F07"]',
573
+ should_show_icon: "",
574
+ theme_name_with_subtitle: "Earth",
575
+ },
576
+ {
577
+ theme_color: "FF0B0085",
578
+ theme_id: "339021464972092",
579
+ theme_emoji: "🔈",
580
+ gradient: '["FF2FA9E4","FF648FEB","FF9B73F2"]',
581
+ should_show_icon: "",
582
+ theme_name_with_subtitle: "Music",
583
+ },
584
+ {
585
+ theme_color: "FF8A39EF",
586
+ theme_id: "1652456634878319",
587
+ theme_emoji: "đŸŗī¸â€đŸŒˆ",
588
+ gradient:
589
+ '["FFFF0018","FFFF0417","FFFF310E","FFFF5D06","FFFF7A01","FFFF8701","FFFFB001","FFD9C507","FF79C718","FF01C92D","FF01BE69","FF01B3AA","FF0BA1DF","FF3F77E6","FF724CEC","FF8A39EF","FF8A39EF"]',
590
+ should_show_icon: "",
591
+ theme_name_with_subtitle: "Pride",
592
+ },
593
+ {
594
+ theme_color: "FF004D7C",
595
+ theme_id: "538280997628317",
596
+ theme_emoji: "🌀",
597
+ gradient: '["FF931410","FF931410","FF931410"]',
598
+ should_show_icon: "",
599
+ theme_name_with_subtitle: "Doctor Strange",
600
+ },
601
+ {
602
+ theme_color: "FF4F4DFF",
603
+ theme_id: "3190514984517598",
604
+ theme_emoji: "🌤",
605
+ gradient: '["FF0080FF","FF9F1AFF"]',
606
+ should_show_icon: "",
607
+ theme_name_with_subtitle: "Sky",
608
+ },
609
+ {
610
+ theme_color: "FFE84B28",
611
+ theme_id: "357833546030778",
612
+ theme_emoji: "đŸ¯",
613
+ gradient: '["FFF69500","FFDA0050"]',
614
+ should_show_icon: "1",
615
+ theme_name_with_subtitle: "Lunar New Year",
616
+ },
617
+ {
618
+ theme_color: "FFB24B77",
619
+ theme_id: "627144732056021",
620
+ theme_emoji: "đŸĨŗ",
621
+ gradient: '["FFF1614E","FF660F84"]',
622
+ should_show_icon: "",
623
+ theme_name_with_subtitle: "Celebration!",
624
+ },
625
+ {
626
+ theme_color: "FF66A9FF",
627
+ theme_id: "390127158985345",
628
+ theme_emoji: "đŸĨļ",
629
+ gradient: '["FF8CB3FF","FF409FFF"]',
630
+ should_show_icon: "",
631
+ theme_name_with_subtitle: "Chill",
632
+ },
633
+ {
634
+ theme_color: "FF5797FC",
635
+ theme_id: "275041734441112",
636
+ theme_emoji: "😌",
637
+ gradient: '["FF4AC9E4","FF5890FF","FF8C91FF"]',
638
+ should_show_icon: "",
639
+ theme_name_with_subtitle: "Care",
640
+ },
641
+ {
642
+ theme_color: "FFFF595C",
643
+ theme_id: "3082966625307060",
644
+ theme_emoji: "đŸ’Ģ",
645
+ gradient: '["FFFF239A","FFFF8C21"]',
646
+ should_show_icon: "",
647
+ theme_name_with_subtitle: "Astrology",
648
+ },
649
+ {
650
+ theme_color: "FF0171FF",
651
+ theme_id: "184305226956268",
652
+ theme_emoji: "â˜ī¸",
653
+ gradient: '["FF0026ee","FF00b2ff"]',
654
+ should_show_icon: "",
655
+ theme_name_with_subtitle: "J Balvin",
656
+ },
657
+ {
658
+ theme_color: "FFA033FF",
659
+ theme_id: "621630955405500",
660
+ theme_emoji: "🎉",
661
+ gradient: '["FFFF7061","FFFF5280","FFA033FF","FF0099FF"]',
662
+ should_show_icon: "",
663
+ theme_name_with_subtitle: "Birthday",
664
+ },
665
+ {
666
+ theme_color: "FF006528",
667
+ theme_id: "539927563794799",
668
+ theme_emoji: "🍄",
669
+ gradient: '["FF00d52f","FF006528"]',
670
+ should_show_icon: "",
671
+ theme_name_with_subtitle: "Cottagecore",
672
+ },
673
+ {
674
+ theme_color: "FF4D3EC2",
675
+ theme_id: "736591620215564",
676
+ theme_emoji: null,
677
+ gradient: null,
678
+ should_show_icon: "1",
679
+ theme_name_with_subtitle: "Ocean",
680
+ },
681
+ {
682
+ theme_color: "FF4e4bf5",
683
+ theme_id: "3259963564026002",
684
+ theme_emoji: null,
685
+ gradient: '["FFAA00FF","FF0080FF"]',
686
+ should_show_icon: "1",
687
+ theme_name_with_subtitle: "Default",
688
+ },
689
+ {
690
+ theme_color: "FF3A12FF",
691
+ theme_id: "582065306070020",
692
+ theme_emoji: null,
693
+ gradient: '["FFFAAF00","FFFF2E2E","FF3A12FF"]',
694
+ should_show_icon: "1",
695
+ theme_name_with_subtitle: "Rocket",
696
+ },
697
+ {
698
+ theme_color: "FF3A1D8A",
699
+ theme_id: "273728810607574",
700
+ theme_emoji: null,
701
+ gradient: '["FFFB45DE","FF841DD5","FF3A1D8A"]',
702
+ should_show_icon: "1",
703
+ theme_name_with_subtitle: "Unicorn",
704
+ },
705
+ {
706
+ theme_color: "FF9FD52D",
707
+ theme_id: "262191918210707",
708
+ theme_emoji: null,
709
+ gradient: '["FF2A7FE3","FF00BF91","FF9FD52D"]',
710
+ should_show_icon: "1",
711
+ theme_name_with_subtitle: "Tropical",
712
+ },
713
+ {
714
+ theme_color: "FFF7B267",
715
+ theme_id: "909695489504566",
716
+ theme_emoji: null,
717
+ gradient: '["FFF25C54","FFF4845F","FFF7B267"]',
718
+ should_show_icon: "1",
719
+ theme_name_with_subtitle: "Sushi",
720
+ },
721
+ {
722
+ theme_color: "FF1ADB5B",
723
+ theme_id: "557344741607350",
724
+ theme_emoji: null,
725
+ gradient: '["FFFFD200","FF6EDF00","FF00DFBB"]',
726
+ should_show_icon: "1",
727
+ theme_name_with_subtitle: "Citrus",
728
+ },
729
+ {
730
+ theme_color: "FF4D3EC2",
731
+ theme_id: "280333826736184",
732
+ theme_emoji: null,
733
+ gradient: '["FFFF625B","FFC532AD","FF4D3EC2"]',
734
+ should_show_icon: "1",
735
+ theme_name_with_subtitle: "Lollipop",
736
+ },
737
+ {
738
+ theme_color: "FFFF311E",
739
+ theme_id: "1257453361255152",
740
+ theme_emoji: null,
741
+ gradient: null,
742
+ should_show_icon: "1",
743
+ theme_name_with_subtitle: "Rose",
744
+ },
745
+ {
746
+ theme_color: "FFA797FF",
747
+ theme_id: "571193503540759",
748
+ theme_emoji: null,
749
+ gradient: null,
750
+ should_show_icon: "1",
751
+ theme_name_with_subtitle: "Lavender",
752
+ },
753
+ {
754
+ theme_color: "FF6EDF00",
755
+ theme_id: "3151463484918004",
756
+ theme_emoji: null,
757
+ gradient: null,
758
+ should_show_icon: "1",
759
+ theme_name_with_subtitle: "Kiwi",
760
+ },
761
+ {
762
+ theme_color: "FF9D59D2",
763
+ theme_id: "737761000603635",
764
+ theme_emoji: "💛",
765
+ gradient: '["FFFFD600","FFFCB37B","FF9D59D2","FF282828"]',
766
+ should_show_icon: "",
767
+ theme_name_with_subtitle: "Non-Binary",
768
+ },
769
+ {
770
+ theme_color: "FF57C39C",
771
+ theme_id: "1288506208402340",
772
+ theme_emoji: "💐",
773
+ gradient: '["FF57C39C","FF57C39C","FF57C39C"]',
774
+ should_show_icon: "",
775
+ theme_name_with_subtitle: "Mother's Day",
776
+ },
777
+ {
778
+ theme_color: "FFF65900",
779
+ theme_id: "121771470870245",
780
+ theme_emoji: "đŸ’Ĩ",
781
+ gradient: '["FFFF8328","FFFF7014","FFFF5C00"]',
782
+ should_show_icon: "",
783
+ theme_name_with_subtitle: "APAHM",
784
+ },
785
+ {
786
+ theme_color: "FF978E21",
787
+ theme_id: "810978360551741",
788
+ theme_emoji: "đŸĒē",
789
+ gradient: '["FF978E21","FF978E21","FF978E21"]',
790
+ should_show_icon: "",
791
+ theme_name_with_subtitle: "Parenthood",
792
+ },
793
+ {
794
+ theme_color: "FFDD8800",
795
+ theme_id: "1438011086532622",
796
+ theme_emoji: "✨",
797
+ gradient: '["FFEDAB00","FFCD6300"]',
798
+ should_show_icon: "",
799
+ theme_name_with_subtitle: "Star Wars",
800
+ },
801
+ {
802
+ theme_color: "FF7D09B9",
803
+ theme_id: "101275642962533",
804
+ theme_emoji: "🚀",
805
+ gradient: '["FF5C22D6","FF8F1EB5","FFC31B92"]',
806
+ should_show_icon: "",
807
+ theme_name_with_subtitle: "Guardians of the Galaxy",
808
+ },
809
+ {
810
+ theme_color: "FF61C500",
811
+ theme_id: "158263147151440",
812
+ theme_emoji: "🐝",
813
+ gradient: '["FF61C500","FF61C500","FF61C500"]',
814
+ should_show_icon: "",
815
+ theme_name_with_subtitle: "Bloom",
816
+ },
817
+ {
818
+ theme_color: "FF826044",
819
+ theme_id: "195296273246380",
820
+ theme_emoji: "🧋",
821
+ gradient: '["FF886546","FFA27F57","FFC6A26E"]',
822
+ should_show_icon: "",
823
+ theme_name_with_subtitle: "Bubble Tea",
824
+ },
825
+ {
826
+ theme_color: "FFB02501",
827
+ theme_id: "6026716157422736",
828
+ theme_emoji: "â›šī¸",
829
+ gradient: '["FFAC2503","FFB02501","FFB42400"]',
830
+ should_show_icon: "",
831
+ theme_name_with_subtitle: "Basketball",
832
+ },
833
+ {
834
+ theme_color: "FF574DC1",
835
+ theme_id: "693996545771691",
836
+ theme_emoji: "🖤",
837
+ gradient: '["FF4533FF","FF574AE0","FF6C64BE"]',
838
+ should_show_icon: "",
839
+ theme_name_with_subtitle: "Elephants&Flowers",
840
+ },
841
+ {
842
+ theme_color: "FFA8B8DA",
843
+ theme_id: "504518465021637",
844
+ theme_emoji: "đŸŗī¸â€âš§ī¸",
845
+ gradient: '["FF55D0FF","FF7597D7","FFFF9FB3","FFFF9FB3"]',
846
+ should_show_icon: "",
847
+ theme_name_with_subtitle: "Transgender",
848
+ },
849
+ ];