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