// Module ID: 9563 // Function ID: 74523 // Name: trackSearchStart // Dependencies: [] // Exports: addFavoriteGIF, fetchSuggestions, fetchTrending, fetchTrendingGIFs, fetchTrendingSearchTerms, initializeSearch, removeFavoriteGIF, search, trackSelectGIF // Module 9563 (trackSearchStart) function trackSearchStart(arg0) { if (null != arg0) { let obj = {}; obj[arg0] = 1; } else { obj = {}; } obj = { search_type: constants3.GIF, load_id: store.getAnalyticsID() }; obj.num_modifiers = Object.keys(obj).length; obj.modifiers = obj; const obj3 = importDefault(dependencyMap[4]); obj.gif_provider = arg1(dependencyMap[5]).getProviderForAPIRequest(); obj3.trackWithMetadata(constants.SEARCH_STARTED, obj); } function trackSearchResultViewed(arg0, type) { let obj = arg2; if (arg2 === undefined) { obj = {}; } const startTime = obj.startTime; obj = Object.create(null); obj.startTime = 0; const merged = Object.assign(obj, obj); obj = { "Null": true, "Null": true, totalResults: arg0.length }; let obj2 = type(dependencyMap[6]); const obj1 = {}; const analyticsID = store.getAnalyticsID(); const merged1 = Object.assign(obj); const merged2 = Object.assign(merged); obj1["results"] = arg0.length; const result = obj2.calculateAnalyticsMetadata(analyticsID, type, obj1); if (null == startTime) { obj2 = {}; } else { obj2 = {}; const _Date = Date; obj2.load_duration_ms = Date.now() - startTime; } const obj3 = {}; const merged3 = Object.assign(result); const merged4 = Object.assign(obj2); const obj6 = importDefault(dependencyMap[4]); obj3["gif_provider"] = type(dependencyMap[5]).getProviderForAPIRequest(); obj6.trackWithMetadata(constants.SEARCH_RESULT_VIEWED, obj3); } function doSearchRequest(q, arg1, limit) { arg1 = q; const importDefault = arg1; const dependencyMap = limit; let closure_3 = Date.now(); trackSearchStart(arg1); const HTTP = arg1(dependencyMap[7]).HTTP; let obj = { url: constants2.GIFS_SEARCH }; obj = { q, media_format: store.getSelectedFormat(), provider: arg1(dependencyMap[5]).getProviderForAPIRequest(), locale: closure_3.locale, limit }; obj.query = obj; obj.oldFormErrors = true; obj.rejectWithError = true; const value = HTTP.get(obj); value.then((body) => { body = body.body; let obj = { startTime: closure_3, limit: arg2 }; callback(body, arg1, obj); obj = { type: "GIF_PICKER_QUERY_SUCCESS", query: body, items: body }; arg1(arg2[8]).dispatch(obj); }, () => { let obj = arg1(arg2[8]); obj = { type: "GIF_PICKER_QUERY_FAILURE", query: arg0 }; return obj.dispatch(obj); }); } function resetSearch() { importDefault(dependencyMap[8]).dispatch({}); } function gifUrlKey(uri) { let str = uri; const toURLSafeResult = importDefault(dependencyMap[11]).toURLSafe(uri); let tmp3 = uri; if (null != toURLSafeResult) { if (obj2.isAttachmentUrl(toURLSafeResult)) { str = arg1(dependencyMap[12]).removeSignedUrlParameters(toURLSafeResult); str = str.toString(); const obj3 = arg1(dependencyMap[12]); } tmp3 = str; const obj2 = arg1(dependencyMap[12]); } return tmp3; } function isProxiedAttachment(src) { const toURLSafeResult = importDefault(dependencyMap[11]).toURLSafe(src.src); let tmp2 = null != toURLSafeResult; if (tmp2) { let result = arg1(dependencyMap[12]).isExternalProxiedAttachmentUrl(toURLSafeResult); if (!result) { result = arg1(dependencyMap[12]).isAttachmentUrl(toURLSafeResult); const obj3 = arg1(dependencyMap[12]); } tmp2 = result; const obj2 = arg1(dependencyMap[12]); } return tmp2; } function isImageExtensionUrl(arg0) { return regex.test(arg0); } let closure_3 = importDefault(dependencyMap[0]); let closure_4 = importDefault(dependencyMap[1]); ({ AnalyticEvents: closure_5, Endpoints: closure_6, SearchTypes: closure_7, GIFPickerResultTypes: closure_8 } = arg1(dependencyMap[2])); const tmp2 = arg1(dependencyMap[2]); ({ MAX_FAVORITE_GIFS_SIZE: closure_9, UserSettingsDelay: closure_10 } = arg1(dependencyMap[3])); let closure_11 = /-/g; const tmp3 = arg1(dependencyMap[3]); let closure_12 = importDefault(dependencyMap[9]).debounce(doSearchRequest, 250); let closure_13 = /\.(webp|avif|gif)(\?|$)/i; const importDefaultResult = importDefault(dependencyMap[9]); const result = arg1(dependencyMap[18]).fileFinishedImporting("actions/GIFPickerActionCreators.tsx"); export { trackSearchStart }; export { trackSearchResultViewed }; export const search = function search(query, arg1, arg2, limit) { let flag = arg2; if (arg2 === undefined) { flag = false; } if ("" === query) { resetSearch(); } else { let obj = importDefault(dependencyMap[8]); obj = { type: "GIF_PICKER_QUERY", query }; obj.dispatch(obj); if (flag) { doSearchRequest(query, arg1, limit); } else { callback(query, arg1, limit); } } }; export const fetchSuggestions = function fetchSuggestions(resultQuery) { const arg1 = resultQuery; let tmp = "" !== resultQuery; if (tmp) { tmp = null != resultQuery; } if (tmp) { const HTTP = arg1(dependencyMap[7]).HTTP; let obj = { url: constants2.GIFS_SUGGEST }; obj = { q: resultQuery, provider: arg1(dependencyMap[5]).getProviderForAPIRequest(), limit: 5, locale: closure_3.locale }; obj.query = obj; obj.oldFormErrors = true; obj.rejectWithError = true; const value = HTTP.get(obj); value.then((body) => { let obj = callback(closure_2[8]); obj = { type: "GIF_PICKER_SUGGESTIONS_SUCCESS", query: body, items: body.body }; obj.dispatch(obj); }); const obj3 = arg1(dependencyMap[5]); } }; export { resetSearch }; export const trackSelectGIF = function trackSelectGIF(arg0) { let gifId; let index; let limit; let offset; let query; let results; let totalResults; let type; ({ query, gifId } = arg0); ({ type, index, offset, limit, results, totalResults } = arg0); let obj = arg1(dependencyMap[6]); const result = obj.calculateAnalyticsMetadata(store.getAnalyticsID(), type, { offset, limit, results, totalResults }); let obj1 = importDefault(dependencyMap[4]); obj = {}; const merged = Object.assign(result); obj["index_num"] = index; obj["source_object"] = "GIF Picker"; obj["query"] = query; obj1.trackWithMetadata(constants.SEARCH_RESULT_SELECTED, obj); if (null != gifId) { const providerForAPIRequest = arg1(dependencyMap[5]).getProviderForAPIRequest(); const HTTP = arg1(dependencyMap[7]).HTTP; obj = { url: constants2.GIFS_SELECT }; obj1 = { id: gifId, q: query, provider: providerForAPIRequest }; obj.body = obj1; obj.oldFormErrors = true; obj.rejectWithError = true; HTTP.post(obj); const obj4 = arg1(dependencyMap[5]); } }; export const initializeSearch = function initializeSearch() { let obj = arg1(dependencyMap[10]); const replaced = obj.v4().replace(closure_11, ""); const arg1 = replaced; const str = obj.v4(); obj = { search_type: constants3.GIF, load_id: replaced }; importDefault(dependencyMap[4]).trackWithMetadata(constants.SEARCH_OPENED, obj); const obj2 = importDefault(dependencyMap[4]); importDefault(dependencyMap[8]).wait(() => { let obj = callback(closure_2[8]); obj = { type: "GIF_PICKER_INITIALIZE", analyticsID: replaced }; obj.dispatch(obj); }); }; export const fetchTrending = function fetchTrending() { const HTTP = arg1(dependencyMap[7]).HTTP; let obj = { url: constants2.GIFS_TRENDING }; obj = { provider: arg1(dependencyMap[5]).getProviderForAPIRequest(), locale: closure_3.locale, media_format: store.getSelectedFormat() }; obj.query = obj; obj.oldFormErrors = true; obj.rejectWithError = true; const value = HTTP.get(obj); value.then((body) => { let categories; let gifs; ({ categories, gifs } = body.body); let obj = callback(closure_2[8]); obj = { type: "GIF_PICKER_TRENDING_FETCH_SUCCESS", trendingCategories: categories, trendingGIFPreview: gifs[0] }; obj.dispatch(obj); }); }; export const fetchTrendingGIFs = function fetchTrendingGIFs(closure_10) { const arg1 = closure_10; let closure_1 = Date.now(); trackSearchStart(constants4.TRENDING_GIFS); const HTTP = arg1(dependencyMap[7]).HTTP; let obj = { url: constants2.GIFS_TRENDING_GIFS }; obj = { media_format: store.getSelectedFormat(), provider: arg1(dependencyMap[5]).getProviderForAPIRequest(), locale: closure_3.locale, limit: closure_10 }; obj.query = obj; obj.oldFormErrors = true; obj.rejectWithError = true; const value = HTTP.get(obj); value.then((body) => { body = body.body; callback2(body, constants.TRENDING_GIFS, { startTime: callback, limit: body }); callback(closure_2[8]).dispatch({ type: "GIF_PICKER_QUERY_SUCCESS", items: body }); }, () => { callback(closure_2[8]).dispatch({ type: "GIF_PICKER_QUERY_FAILURE" }); }); }; export { gifUrlKey }; export const addFavoriteGIF = function addFavoriteGIF(item) { const arg1 = item; const FrecencyUserSettingsActionCreators = arg1(dependencyMap[13]).FrecencyUserSettingsActionCreators; FrecencyUserSettingsActionCreators.updateAsync("favoriteGifs", (gifs) => { let obj = callback(closure_2[9]); const values = Object.values(gifs.gifs); const maxResult = obj.max(values.map((order) => order.order)); let num = 0; if (null != maxResult) { num = maxResult; } let obj1 = /\.(mp4|webm)(\?|$)/i; if (obj1.test(gifs.src)) { if (null != tmp2.gifSrc) { if ("" !== tmp2.gifSrc) { let obj3 = src; if (callback3(tmp2)) { obj3 = src; if (callback4(src)) { const str2 = callback(closure_2[11]).toURLSafe(src); let tmp7 = src; if (null != str2) { const formatted = str2.pathname.toLowerCase(); let endsWithResult1 = formatted.endsWith(".avif"); const endsWithResult2 = formatted.endsWith(".gif"); if (!endsWithResult) { tmp7 = src; } if (!endsWithResult1) { endsWithResult1 = endsWithResult2; } if (endsWithResult1) { const searchParams = str2.searchParams; const result = searchParams.set("format", "webp"); } const searchParams2 = str2.searchParams; const result1 = searchParams2.set("animated", "true"); let src = str2.toString(); const endsWithResult = formatted.endsWith(".webp"); const str12 = str2.pathname; } obj3 = tmp7; const obj4 = callback(closure_2[11]); } } let combined = obj3; if (obj3.startsWith("//")) { const _HermesInternal = HermesInternal; combined = "https:" + obj3; } if (callback4(combined)) { let format = gifs(closure_2[14]).GIFType.IMAGE; } else { format = gifs.format; } obj = {}; const merged = Object.assign(gifs); obj["src"] = combined; obj["format"] = format; obj["order"] = num + 1; gifs.gifs[callback2(gifs.url)] = obj; const FavoriteGIFs = gifs(closure_2[14]).FavoriteGIFs; if (FavoriteGIFs.toBinary(gifs).length > closure_9) { obj = {}; const intl = gifs(closure_2[16]).intl; obj.title = intl.string(gifs(closure_2[16]).t.+XYXtZ); const intl2 = gifs(closure_2[16]).intl; obj.body = intl2.string(gifs(closure_2[16]).t.YSDH9n); callback(closure_2[15]).show(obj); return false; } else { const sizeResult = callback(closure_2[9]).size(gifs.gifs); if (sizeResult > 2) { gifs.hideTooltip = true; } const obj6 = callback(closure_2[9]); obj1 = { total_num_favorited: sizeResult }; callback(closure_2[17]).track(constants.GIF_FAVORITED, obj1); } const tmp20 = callback2(gifs.url); } src = tmp2.gifSrc; } } src = tmp2.src; }, constants5.INFREQUENT_USER_ACTION); }; export const removeFavoriteGIF = function removeFavoriteGIF(uri) { const arg1 = uri; const FrecencyUserSettingsActionCreators = arg1(dependencyMap[13]).FrecencyUserSettingsActionCreators; FrecencyUserSettingsActionCreators.updateAsync("favoriteGifs", (gifs) => { if (gifs in gifs.gifs) { delete r1[r0]; } else { callback2(gifs); delete r1[r2]; } let obj = callback(closure_2[17]); obj = { total_num_favorited: callback(closure_2[9]).size(gifs.gifs) }; obj.track(constants.GIF_UNFAVORITED, obj); }, constants5.INFREQUENT_USER_ACTION); }; export const fetchTrendingSearchTerms = function fetchTrendingSearchTerms() { const HTTP = arg1(dependencyMap[7]).HTTP; let obj = { url: constants2.GIFS_TRENDING_SEARCH }; obj = { provider: arg1(dependencyMap[5]).getProviderForAPIRequest(), limit: 5, locale: closure_3.locale }; obj.query = obj; obj.oldFormErrors = true; obj.rejectWithError = true; const value = HTTP.get(obj); value.then((items) => { callback(closure_2[8]).dispatch({ type: "GIF_PICKER_TRENDING_SEARCH_TERMS_SUCCESS", items: items.body }); }); };