| | "use strict"; |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | const utils = require("../utils"); |
| | const log = require("npmlog"); |
| |
|
| |
|
| | function formatMessage(threadID, data) { |
| | switch (data.__typename) { |
| | case "ThreadNameMessage": |
| | return { |
| | type: "event", |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | logMessageType: "log:thread-name", |
| | logMessageData: { |
| | name: data.thread_name |
| | }, |
| | logMessageBody: data.snippet, |
| | timestamp: data.timestamp_precise, |
| | author: data.message_sender.id |
| | }; |
| | case "ThreadImageMessage": |
| | const metadata = data.image_with_metadata; |
| | return { |
| | type: "event", |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | logMessageType: "log:thread-image", |
| | logMessageData: metadata ? { |
| | attachmentID: metadata.legacy_attachment_id, |
| | width: metadata.original_dimensions.x, |
| | height: metadata.original_dimensions.y, |
| | url: metadata.preview.uri |
| | } : |
| | { |
| | attachmentID: null, |
| | width: null, |
| | height: null, |
| | url: null |
| | }, |
| | logMessageBody: data.snippet, |
| | timestamp: data.timestamp_precise, |
| | author: data.message_sender.id |
| | }; |
| | case "GenericAdminTextMessage": |
| | switch (data.extensible_message_admin_text_type) { |
| | case "CHANGE_THREAD_THEME": |
| | return { |
| | type: "event", |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | logMessageType: "log:thread-color", |
| | logMessageData: colors.find(color => color.theme_color === data.extensible_message_admin_text.theme_color) || { |
| | theme_color: data.extensible_message_admin_text.theme_color, |
| | theme_id: null, |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: null, |
| | theme_name_with_subtitle: null |
| | }, |
| | logMessageBody: data.snippet, |
| | timestamp: data.timestamp_precise, |
| | author: data.message_sender.id |
| | }; |
| | case "CHANGE_THREAD_ICON": |
| | const thread_icon = data.extensible_message_admin_text.thread_icon; |
| | return { |
| | type: "event", |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | logMessageType: "log:thread-icon", |
| | logMessageData: { |
| | thread_icon_url: `https://static.xx.fbcdn.net/images/emoji.php/v9/t3c/1/16/${thread_icon.codePointAt(0).toString(16)}.png`, |
| | thread_icon: thread_icon |
| | }, |
| | logMessageBody: data.snippet, |
| | timestamp: data.timestamp_precise, |
| | author: data.message_sender.id |
| | }; |
| | case "CHANGE_THREAD_NICKNAME": |
| | return { |
| | type: "event", |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | logMessageType: "log:user-nickname", |
| | logMessageData: { |
| | nickname: data.extensible_message_admin_text.nickname, |
| | participant_id: data.extensible_message_admin_text.participant_id |
| | }, |
| | logMessageBody: data.snippet, |
| | timestamp: data.timestamp_precise, |
| | author: data.message_sender.id |
| | }; |
| | case "GROUP_POLL": |
| | const question = data.extensible_message_admin_text.question; |
| | return { |
| | type: "event", |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | logMessageType: "log:thread-poll", |
| | logMessageData: { |
| | question_json: JSON.stringify({ |
| | id: question.id, |
| | text: question.text, |
| | total_count: data.extensible_message_admin_text.total_count, |
| | viewer_has_voted: question.viewer_has_voted, |
| | question_type: "", |
| | creator_id: data.message_sender.id, |
| | options: question.options.nodes.map(option => ({ |
| | id: option.id, |
| | text: option.text, |
| | total_count: option.voters.nodes.length, |
| | viewer_has_voted: option.viewer_has_voted, |
| | voters: option.voters.nodes.map(voter => voter.id) |
| | })) |
| | }), |
| | event_type: data.extensible_message_admin_text.event_type.toLowerCase(), |
| | question_id: question.id |
| | }, |
| | logMessageBody: data.snippet, |
| | timestamp: data.timestamp_precise, |
| | author: data.message_sender.id |
| | }; |
| | default: |
| | throw new Error(`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.`); |
| | } |
| | case "UserMessage": |
| | return { |
| | senderID: data.message_sender.id, |
| | body: data.message.text, |
| | threadID: threadID, |
| | messageID: data.message_id, |
| | reactions: data.message_reactions.map(r => ({ |
| | [r.user.id]: r.reaction |
| | })), |
| | attachments: data.blob_attachments && data.blob_attachments.length > 0 ? |
| | data.blob_attachments.length.map(att => { |
| | let x; |
| | try { |
| | x = utils._formatAttachment(att); |
| | } catch (ex) { |
| | x = att; |
| | x.error = ex; |
| | x.type = "unknown"; |
| | } |
| | return x; |
| | }) : |
| | data.extensible_attachment && Object.keys(data.extensible_attachment).length > 0 ? |
| | [{ |
| | type: "share", |
| | ID: data.extensible_attachment.legacy_attachment_id, |
| | url: data.extensible_attachment.story_attachment.url, |
| |
|
| | title: data.extensible_attachment.story_attachment.title_with_entities.text, |
| | description: data.extensible_attachment.story_attachment.description.text, |
| | source: data.extensible_attachment.story_attachment.source, |
| |
|
| | image: ((data.extensible_attachment.story_attachment.media || {}).image || {}).uri, |
| | width: ((data.extensible_attachment.story_attachment.media || {}).image || {}).width, |
| | height: ((data.extensible_attachment.story_attachment.media || {}).image || {}).height, |
| | playable: (data.extensible_attachment.story_attachment.media || {}).is_playable || false, |
| | duration: (data.extensible_attachment.story_attachment.media || {}).playable_duration_in_ms || 0, |
| |
|
| | subattachments: data.extensible_attachment.subattachments, |
| | properties: data.extensible_attachment.story_attachment.properties |
| | }] : |
| | [], |
| | mentions: data.message.ranges.map(mention => ({ |
| | [mention.entity.id]: data.message.text.substring(mention.offset, mention.offset + mention.length) |
| | })), |
| | timestamp: data.timestamp_precise |
| | }; |
| | default: |
| | throw new Error(`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.`); |
| | |
| | |
| | |
| | } |
| | } |
| |
|
| |
|
| | function parseDelta(threadID, delta) { |
| | if (delta.replied_to_message) { |
| | return Object.assign({ |
| | type: "message_reply" |
| | }, formatMessage(threadID, delta), { |
| | messageReply: formatMessage(threadID, delta.replied_to_message.message) |
| | }); |
| | } |
| | else { |
| | return formatMessage(threadID, delta); |
| | } |
| | } |
| |
|
| |
|
| | module.exports = function (defaultFuncs, api, ctx) { |
| | return function getMessage(threadID, messageID, callback) { |
| | let resolveFunc = function () { }; |
| | let rejectFunc = function () { }; |
| | const returnPromise = new Promise(function (resolve, reject) { |
| | resolveFunc = resolve; |
| | rejectFunc = reject; |
| | }); |
| |
|
| | if (!callback) { |
| | callback = function (err, info) { |
| | if (err) |
| | return rejectFunc(err); |
| | resolveFunc(info); |
| | }; |
| | } |
| |
|
| | if (!threadID || !messageID) { |
| | return callback({ error: "getMessage: need threadID and messageID" }); |
| | } |
| |
|
| | const form = { |
| | "av": ctx.globalOptions.pageID, |
| | "queries": JSON.stringify({ |
| | "o0": { |
| | |
| | "doc_id": "1768656253222505", |
| | "query_params": { |
| | "thread_and_message_id": { |
| | "thread_id": threadID, |
| | "message_id": messageID |
| | } |
| | } |
| | } |
| | }) |
| | }; |
| |
|
| | defaultFuncs |
| | .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form) |
| | .then(utils.parseAndCheckLogin(ctx, defaultFuncs)) |
| | .then((resData) => { |
| | if (resData[resData.length - 1].error_results > 0) { |
| | throw resData[0].o0.errors; |
| | } |
| |
|
| | if (resData[resData.length - 1].successful_results === 0) { |
| | throw { error: "getMessage: there was no successful_results", res: resData }; |
| | } |
| |
|
| | const fetchData = resData[0].o0.data.message; |
| | if (fetchData) { |
| | callback(null, parseDelta(threadID, fetchData)); |
| | } |
| | else { |
| | throw fetchData; |
| | } |
| | }) |
| | .catch((err) => { |
| | log.error("getMessage", err); |
| | callback(err); |
| | }); |
| |
|
| | return returnPromise; |
| | }; |
| | }; |
| |
|
| | const colors = [ |
| | { |
| | theme_color: 'FF000000', |
| | theme_id: '788274591712841', |
| | theme_emoji: 'π€', |
| | gradient: '["FFF0F0F0"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Monochrome' |
| | }, |
| | { |
| | theme_color: 'FFFF5CA1', |
| | theme_id: '169463077092846', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Hot Pink' |
| | }, |
| | { |
| | theme_color: 'FF2825B5', |
| | theme_id: '271607034185782', |
| | theme_emoji: null, |
| | gradient: '["FF5E007E","FF331290","FF2825B5"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Shadow' |
| | }, |
| | { |
| | theme_color: 'FFD9A900', |
| | theme_id: '2533652183614000', |
| | theme_emoji: null, |
| | gradient: '["FF550029","FFAA3232","FFD9A900"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Maple' |
| | }, |
| | { |
| | theme_color: 'FFFB45DE', |
| | theme_id: '2873642949430623', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Tulip' |
| | }, |
| | { |
| | theme_color: 'FF5E007E', |
| | theme_id: '193497045377796', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Grape' |
| | }, |
| | { |
| | theme_color: 'FF7AA286', |
| | theme_id: '1455149831518874', |
| | theme_emoji: 'π', |
| | gradient: '["FF25C0E1","FFCE832A"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Dune' |
| | }, |
| | { |
| | theme_color: 'FFFAAF00', |
| | theme_id: '672058580051520', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Honey' |
| | }, |
| | { |
| | theme_color: 'FF0084FF', |
| | theme_id: '196241301102133', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Default Blue' |
| | }, |
| | { |
| | theme_color: 'FFFFC300', |
| | theme_id: '174636906462322', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Yellow' |
| | }, |
| | { |
| | theme_color: 'FF44BEC7', |
| | theme_id: '1928399724138152', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Teal Blue' |
| | }, |
| | { |
| | theme_color: 'FF7646FF', |
| | theme_id: '234137870477637', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Bright Purple' |
| | }, |
| | { |
| | theme_color: 'FFF25C54', |
| | theme_id: '3022526817824329', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Peach' |
| | }, |
| | { |
| | theme_color: 'FFF01D6A', |
| | theme_id: '724096885023603', |
| | theme_emoji: null, |
| | gradient: '["FF005FFF","FF9200FF","FFFF2E19"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Berry' |
| | }, |
| | { |
| | theme_color: 'FFFF7CA8', |
| | theme_id: '624266884847972', |
| | theme_emoji: null, |
| | gradient: '["FFFF8FB2","FFA797FF","FF00E5FF"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Candy' |
| | }, |
| | { |
| | theme_color: 'FF6E5B04', |
| | theme_id: '365557122117011', |
| | theme_emoji: 'π', |
| | gradient: '["FFED9F9A","FFED9F9A","FFED9F9A"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Support' |
| | }, |
| | { |
| | theme_color: 'FF0052CD', |
| | theme_id: '230032715012014', |
| | theme_emoji: 'βοΈ', |
| | gradient: '["FF0052CD","FF00A1E6","FF0052CD"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Tie-Dye' |
| | }, |
| | { |
| | theme_color: 'FF601DDD', |
| | theme_id: '1060619084701625', |
| | theme_emoji: 'βοΈ', |
| | gradient: '["FFCA34FF","FF302CFF","FFBA009C"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Lo-Fi' |
| | }, |
| | { |
| | theme_color: 'FF0099FF', |
| | theme_id: '3273938616164733', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Classic' |
| | }, |
| | { |
| | theme_color: 'FF1ADB5B', |
| | theme_id: '370940413392601', |
| | theme_emoji: null, |
| | gradient: '["FFFFD200","FF6EDF00","FF00DFBB"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Citrus' |
| | }, |
| | { |
| | theme_color: 'FFD696BB', |
| | theme_id: '2058653964378557', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Lavender Purple' |
| | }, |
| | { |
| | theme_color: 'FFC03232', |
| | theme_id: '1059859811490132', |
| | theme_emoji: 'π', |
| | gradient: '["FFDB4040","FFA32424"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Stranger Things' |
| | }, |
| | { |
| | theme_color: 'FFFA3C4C', |
| | theme_id: '2129984390566328', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Red' |
| | }, |
| | { |
| | theme_color: 'FF13CF13', |
| | theme_id: '2136751179887052', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Green' |
| | }, |
| | { |
| | theme_color: 'FFFF7E29', |
| | theme_id: '175615189761153', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Orange' |
| | }, |
| | { |
| | theme_color: 'FFE68585', |
| | theme_id: '980963458735625', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Coral Pink' |
| | }, |
| | { |
| | theme_color: 'FF20CEF5', |
| | theme_id: '2442142322678320', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Aqua Blue' |
| | }, |
| | { |
| | theme_color: 'FF0EDCDE', |
| | theme_id: '417639218648241', |
| | theme_emoji: null, |
| | gradient: '["FF19C9FF","FF00E6D2","FF0EE6B7"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Aqua' |
| | }, |
| | { |
| | theme_color: 'FFFF9C19', |
| | theme_id: '930060997172551', |
| | theme_emoji: null, |
| | gradient: '["FFFFDC2D","FFFF9616","FFFF4F00"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Mango' |
| | }, |
| | { |
| | theme_color: 'FFF01D6A', |
| | theme_id: '164535220883264', |
| | theme_emoji: null, |
| | gradient: '["FF005FFF","FF9200FF","FFFF2E19"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Berry' |
| | }, |
| | { |
| | theme_color: 'FFFF7CA8', |
| | theme_id: '205488546921017', |
| | theme_emoji: null, |
| | gradient: '["FFFF8FB2","FFA797FF","FF00E5FF"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Candy' |
| | }, |
| | { |
| | theme_color: 'FFFF6F07', |
| | theme_id: '1833559466821043', |
| | theme_emoji: 'π', |
| | gradient: '["FFFF6F07"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Earth' |
| | }, |
| | { |
| | theme_color: 'FF0B0085', |
| | theme_id: '339021464972092', |
| | theme_emoji: 'π', |
| | gradient: '["FF2FA9E4","FF648FEB","FF9B73F2"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Music' |
| | }, |
| | { |
| | theme_color: 'FF8A39EF', |
| | theme_id: '1652456634878319', |
| | theme_emoji: 'π³οΈβπ', |
| | gradient: '["FFFF0018","FFFF0417","FFFF310E","FFFF5D06","FFFF7A01","FFFF8701","FFFFB001","FFD9C507","FF79C718","FF01C92D","FF01BE69","FF01B3AA","FF0BA1DF","FF3F77E6","FF724CEC","FF8A39EF","FF8A39EF"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Pride' |
| | }, |
| | { |
| | theme_color: 'FF004D7C', |
| | theme_id: '538280997628317', |
| | theme_emoji: 'π', |
| | gradient: '["FF931410","FF931410","FF931410"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Doctor Strange' |
| | }, |
| | { |
| | theme_color: 'FF4F4DFF', |
| | theme_id: '3190514984517598', |
| | theme_emoji: 'π€', |
| | gradient: '["FF0080FF","FF9F1AFF"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Sky' |
| | }, |
| | { |
| | theme_color: 'FFE84B28', |
| | theme_id: '357833546030778', |
| | theme_emoji: 'π―', |
| | gradient: '["FFF69500","FFDA0050"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Lunar New Year' |
| | }, |
| | { |
| | theme_color: 'FFB24B77', |
| | theme_id: '627144732056021', |
| | theme_emoji: 'π₯³', |
| | gradient: '["FFF1614E","FF660F84"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Celebration!' |
| | }, |
| | { |
| | theme_color: 'FF66A9FF', |
| | theme_id: '390127158985345', |
| | theme_emoji: 'π₯Ά', |
| | gradient: '["FF8CB3FF","FF409FFF"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Chill' |
| | }, |
| | { |
| | theme_color: 'FF5797FC', |
| | theme_id: '275041734441112', |
| | theme_emoji: 'π', |
| | gradient: '["FF4AC9E4","FF5890FF","FF8C91FF"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Care' |
| | }, |
| | { |
| | theme_color: 'FFFF595C', |
| | theme_id: '3082966625307060', |
| | theme_emoji: 'π«', |
| | gradient: '["FFFF239A","FFFF8C21"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Astrology' |
| | }, |
| | { |
| | theme_color: 'FF0171FF', |
| | theme_id: '184305226956268', |
| | theme_emoji: 'βοΈ', |
| | gradient: '["FF0026ee","FF00b2ff"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'J Balvin' |
| | }, |
| | { |
| | theme_color: 'FFA033FF', |
| | theme_id: '621630955405500', |
| | theme_emoji: 'π', |
| | gradient: '["FFFF7061","FFFF5280","FFA033FF","FF0099FF"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Birthday' |
| | }, |
| | { |
| | theme_color: 'FF006528', |
| | theme_id: '539927563794799', |
| | theme_emoji: 'π', |
| | gradient: '["FF00d52f","FF006528"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Cottagecore' |
| | }, |
| | { |
| | theme_color: 'FF4D3EC2', |
| | theme_id: '736591620215564', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Ocean' |
| | }, |
| | { |
| | theme_color: 'FF4e4bf5', |
| | theme_id: '3259963564026002', |
| | theme_emoji: null, |
| | gradient: '["FFAA00FF","FF0080FF"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Default' |
| | }, |
| | { |
| | theme_color: 'FF3A12FF', |
| | theme_id: '582065306070020', |
| | theme_emoji: null, |
| | gradient: '["FFFAAF00","FFFF2E2E","FF3A12FF"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Rocket' |
| | }, |
| | { |
| | theme_color: 'FF3A1D8A', |
| | theme_id: '273728810607574', |
| | theme_emoji: null, |
| | gradient: '["FFFB45DE","FF841DD5","FF3A1D8A"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Unicorn' |
| | }, |
| | { |
| | theme_color: 'FF9FD52D', |
| | theme_id: '262191918210707', |
| | theme_emoji: null, |
| | gradient: '["FF2A7FE3","FF00BF91","FF9FD52D"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Tropical' |
| | }, |
| | { |
| | theme_color: 'FFF7B267', |
| | theme_id: '909695489504566', |
| | theme_emoji: null, |
| | gradient: '["FFF25C54","FFF4845F","FFF7B267"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Sushi' |
| | }, |
| | { |
| | theme_color: 'FF1ADB5B', |
| | theme_id: '557344741607350', |
| | theme_emoji: null, |
| | gradient: '["FFFFD200","FF6EDF00","FF00DFBB"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Citrus' |
| | }, |
| | { |
| | theme_color: 'FF4D3EC2', |
| | theme_id: '280333826736184', |
| | theme_emoji: null, |
| | gradient: '["FFFF625B","FFC532AD","FF4D3EC2"]', |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Lollipop' |
| | }, |
| | { |
| | theme_color: 'FFFF311E', |
| | theme_id: '1257453361255152', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Rose' |
| | }, |
| | { |
| | theme_color: 'FFA797FF', |
| | theme_id: '571193503540759', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Lavender' |
| | }, |
| | { |
| | theme_color: 'FF6EDF00', |
| | theme_id: '3151463484918004', |
| | theme_emoji: null, |
| | gradient: null, |
| | should_show_icon: '1', |
| | theme_name_with_subtitle: 'Kiwi' |
| | }, |
| | { |
| | theme_color: 'FF9D59D2', |
| | theme_id: '737761000603635', |
| | theme_emoji: 'π', |
| | gradient: '["FFFFD600","FFFCB37B","FF9D59D2","FF282828"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Non-Binary' |
| | }, |
| | { |
| | theme_color: 'FF57C39C', |
| | theme_id: '1288506208402340', |
| | theme_emoji: 'π', |
| | gradient: '["FF57C39C","FF57C39C","FF57C39C"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Mother\'s Day' |
| | }, |
| | { |
| | theme_color: 'FFF65900', |
| | theme_id: '121771470870245', |
| | theme_emoji: 'π₯', |
| | gradient: '["FFFF8328","FFFF7014","FFFF5C00"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'APAHM' |
| | }, |
| | { |
| | theme_color: 'FF978E21', |
| | theme_id: '810978360551741', |
| | theme_emoji: 'πͺΊ', |
| | gradient: '["FF978E21","FF978E21","FF978E21"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Parenthood' |
| | }, |
| | { |
| | theme_color: 'FFDD8800', |
| | theme_id: '1438011086532622', |
| | theme_emoji: 'β¨', |
| | gradient: '["FFEDAB00","FFCD6300"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Star Wars' |
| | }, |
| | { |
| | theme_color: 'FF7D09B9', |
| | theme_id: '101275642962533', |
| | theme_emoji: 'π', |
| | gradient: '["FF5C22D6","FF8F1EB5","FFC31B92"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Guardians of the Galaxy' |
| | }, |
| | { |
| | theme_color: 'FF61C500', |
| | theme_id: '158263147151440', |
| | theme_emoji: 'π', |
| | gradient: '["FF61C500","FF61C500","FF61C500"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Bloom' |
| | }, |
| | { |
| | theme_color: 'FF826044', |
| | theme_id: '195296273246380', |
| | theme_emoji: 'π§', |
| | gradient: '["FF886546","FFA27F57","FFC6A26E"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Bubble Tea' |
| | }, |
| | { |
| | theme_color: 'FFB02501', |
| | theme_id: '6026716157422736', |
| | theme_emoji: 'βΉοΈ', |
| | gradient: '["FFAC2503","FFB02501","FFB42400"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Basketball' |
| | }, |
| | { |
| | theme_color: 'FF574DC1', |
| | theme_id: '693996545771691', |
| | theme_emoji: 'π€', |
| | gradient: '["FF4533FF","FF574AE0","FF6C64BE"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Elephants&Flowers' |
| | }, |
| | { |
| | theme_color: 'FFA8B8DA', |
| | theme_id: '504518465021637', |
| | theme_emoji: 'π³οΈββ§οΈ', |
| | gradient: '["FF55D0FF","FF7597D7","FFFF9FB3","FFFF9FB3"]', |
| | should_show_icon: '', |
| | theme_name_with_subtitle: 'Transgender' |
| | } |
| | ]; |