// Metro module 10475 (f10476). import ConnectedAccountsStore from "./ConnectedAccountsStore"; import StreamerModeStore from "./StreamerModeStore"; import { PlatformTypes } from "../Constants"; import Durations from "../utils/Durations"; import { HTTP } from "../_bundle/sendRequest"; import ConnectedAccountsActionCreators from "../actions/ConnectedAccountsActionCreators"; import Dispatcher from "../Dispatcher"; import { getAssetFromImageURL } from "../utils/ApplicationAssetUtils"; import Platforms from "../lib/Platforms"; import isUndefinedOrNull from "../_bundle/isUndefinedOrNull"; import Module589 from "../_bundle/Module589"; function $mk115679($env) { return function getTwitchGame() { return $env[16].apply(this, arguments); }; } function $mk115680($env) { return function parseUsernameFromThumbnail(a0) { const r5 = c7022_9.exec(a0); return r5 == null ? void 0 : r5[1]; }; } function $mk115681($env) { return (a0) => { const r0 = $env; return r0[2]._checkTwitch(r0[0], a0); }; } function $mk115683($env) { return (a0) => { const r0 = $env; return r0[2]._checkYouTube(r0[0], a0); }; } let streamerModeUpdate, c7022_7, c7022_8, c7022_9, c7022_13, c7022_14, c7022_17, c7022_19; let env7022 = {}; const makeTwitchRequest = function makeTwitchRequest(a0, a1, a2) { return HTTP.get({ url: `https://api.twitch.tv/helix${a0}`, query: a1, headers: { "Client-ID": "33kozedd0zs6fbauka98psnc7zwom2s", Authorization: `Bearer ${a2}` }, rejectWithError: false }); }; env7022[16] = function _getTwitchGame() { const r8 = async (id, c26677_1) => { let r26; let c30224_0, c30224_1, c30224_2; L14: { c30224_0 = id; c30224_1 = void 0; c30224_2 = void 0; r26 = c7022_14[id]; if (r26 != null) { break L14; } c30224_1 = (await makeTwitchRequest("/games", { id }, c26677_1)).body.data; c30224_2 = c30224_1[0]?.name; c7022_14[c30224_0] = c30224_2; return c30224_2; } return r26; }; env7022[16] = r8; return r8.apply(this, arguments); }; streamerModeUpdate = function streamerModeUpdate() { if (StreamerModeStore.enabled) { c7022_17.start(); } else { c7022_17.stop(); } }; c7022_7 = 1 * Durations.Millis.MINUTE; c7022_8 = 5 * Durations.Millis.MINUTE; c7022_9 = /live_user_(.*)-\{width\}/; env7022[10] = null; env7022[11] = 0; env7022[12] = null; c7022_13 = new Set(); c7022_14 = {}; class StreamingPoller { _started = false; start() { if (!this._started) { this._started = true; if (ConnectedAccountsStore.isFetching()) { ConnectedAccountsActionCreators.fetch(); } else { this._check(); } } } stop() { this._started = false; env7022[12] = null; env7022[11] = 0; if (this._nextCheck != null) { clearTimeout(this._nextCheck); } Dispatcher.dispatch({ type: "STREAMING_UPDATE", stream: null }); } async _checkTwitch(a0) { let r186, r206; let env17989 = { $parent: env7022 }; env17989[0] = a0; let r5 = arguments[1]; if (r5 === void 0) { r5 = null; } env17989[1] = r5; env17989[2] = this; let accessToken, assetFromImageURL, name, c26678_3, c26678_4, c26678_5; let c26678_6 = 0; const r22 = env17989; L36: { L35: { L34: { try { let env30225; c26678_4 = r22; const r45 = env30225 = { $parent: r22 }; c26678_3 = r45; env30225[0] = void 0; env30225[1] = void 0; env30225[2] = void 0; env30225[3] = void 0; env30225[4] = void 0; env30225[5] = void 0; env30225[6] = void 0; env30225[7] = void 0; env30225[8] = void 0; env30225[9] = void 0; if (env17989[0].revoked) { break L36; } accessToken = env17989[1]; if (accessToken == null) { accessToken = env17989[0].accessToken; } env17989[1] = accessToken; if (accessToken == null) { break L35; } c26678_6 = 1; env30225[0] = (await makeTwitchRequest("/streams", { user_id: env17989[0].id, first: 1 }, env17989[1])).body.data[0]; if (env30225[0] != null && env30225[0].type === "live") { env30225[1] = env30225[0].thumbnail_url; env30225[2] = env30225[0].game_id; env30225[3] = env30225[0].title; const r102 = env30225[1] != null; let large_image = void 0; if (r102) { assetFromImageURL = getAssetFromImageURL(PlatformTypes.TWITCH, env30225[1]); if (assetFromImageURL == null) { assetFromImageURL = void 0; } large_image = assetFromImageURL; } env30225[4] = { large_image }; const r106 = env30225[2]; const r107 = env17989[1]; env30225[5] = await $mk115679(env7022)(r106, r107); env30225[6] = Platforms.get(PlatformTypes.TWITCH); const r156 = env30225[1]; name = $mk115680(env7022)(r156); if (name == null) { name = env17989[0].name; } env30225[7] = name; env30225[8] = env30225[3] != null ? env30225[3] !== "" ? env30225[3].slice(0, 128) : void 0 : void 0; env30225[9] = env30225[5] != null ? env30225[5] !== "" ? env30225[5].slice(0, 128) : void 0 : void 0; const r177 = env30225[6]; const getPlatformUserUrl = r177.getPlatformUserUrl; r186 = { url: getPlatformUserUrl == null ? void 0 : getPlatformUserUrl.call(r177, { id: env17989[0].id, name: env30225[7] }), name: env30225[6].name, assets: env30225[4], details: env30225[8], state: env30225[9] }; c26678_6 = 0; break L34; } throw new Error("no stream"); } catch ($e) { const r43 = $e; let r13 = r43; c26678_5 = r43; if (c26678_6 !== 0) { while (true) { try { const r203 = c26678_5; c26678_6 = 0; r206 = r203.status === 401 ? env17989[1] == null ? ConnectedAccountsActionCreators.refreshAccessToken(env17989[0].type, env17989[0].id).then($mk115681(env17989)).catch(() => null) : null : null; } catch (r201) { r13 = r201; c26678_5 = r201; if (c26678_6 === 0) { break; } continue; } return r206; } } throw r13; } } return r186; } return null; } return null; } async _checkYouTube(a0) { let r135, r166; let env17990 = { $parent: env7022 }; env17990[0] = a0; let r5 = arguments[1]; if (r5 === void 0) { r5 = null; } env17990[1] = r5; env17990[2] = this; let assetFromImageURL2, c26679_1, c26679_2, c26679_3; let c26679_4 = 0; const r22 = env17990; L23: { try { let env30226; c26679_2 = r22; const r44 = env30226 = { $parent: r22 }; c26679_1 = r44; env30226[0] = void 0; env30226[1] = void 0; env30226[2] = void 0; env30226[3] = void 0; env30226[4] = void 0; env30226[5] = void 0; env30226[6] = void 0; env30226[7] = void 0; env30226[8] = void 0; env7022[12] = null; if (env17990[0].revoked) { break L23; } if (c7022_13.has(env17990[0].id)) { break L23; } c26679_4 = 1; env30226[0] = (await HTTP.get({ url: "https://www.googleapis.com/youtube/v3/liveBroadcasts", query: { part: "id,snippet", broadcastStatus: "active", broadcastType: "all" }, headers: { Authorization: `Bearer ${env17990[1] != null ? env17990[1] : env17990[0].accessToken}` }, oldFormErrors: true, rejectWithError: false })).body.items; if (env30226[0].length < 1) { throw new Error("no stream"); } env30226[1] = env30226[0][0]; env30226[2] = env30226[1].id; env30226[3] = env30226[1].snippet; env30226[4] = env30226[3].title; env30226[5] = env30226[3].thumbnails; assetFromImageURL2 = getAssetFromImageURL(PlatformTypes.YOUTUBE, env30226[5].high.url); if (assetFromImageURL2 == null) { assetFromImageURL2 = void 0; } env30226[6] = { large_image: assetFromImageURL2 }; env30226[7] = env30226[4] != null ? env30226[4] !== "" ? env30226[4].slice(0, 128) : void 0 : void 0; env30226[8] = env30226[2]; r135 = { url: `https://youtube.com/watch?v=${env30226[8]}`, name: Platforms.get(PlatformTypes.YOUTUBE).name, details: env30226[7], assets: env30226[6] }; env7022[12] = r135; c26679_4 = 0; } catch ($e) { const r42 = $e; let r13 = r42; c26679_3 = r42; if (c26679_4 !== 0) { while (true) { L34: { try { const r159 = c26679_3; c26679_4 = 0; env30226[9] = r159; if (env30226[9].status === 401 && env17990[1] == null) { r166 = ConnectedAccountsActionCreators.refreshAccessToken(env17990[0].type, env17990[0].id).then($mk115683(env17990)).catch(() => null); break L34; } const status = env30226[9].status; r166 = null; if (status === 403) { c7022_13.add(env17990[0].id); r166 = null; } } catch (r156) { r13 = r156; c26679_3 = r156; if (c26679_4 === 0) { break; } continue; } } return r166; } } throw r13; } return r135; } return null; } _check() { let c17991_0; if (this._started) { const accounts = ConnectedAccountsStore.getAccounts(); if (accounts != null) { if (this._nextCheck != null) { clearTimeout(this._nextCheck); } const r8 = [PlatformTypes.TWITCH]; c17991_0 = r8; const r20 = Date.now(); if (env7022[11] <= r20) { r8.push(PlatformTypes.YOUTUBE); env7022[11] = r20 + c7022_8; } Promise.allSettled(accounts.filter((account) => c17991_0.includes(account.type)).map((item) => item.type === PlatformTypes.TWITCH ? this._checkTwitch(item) : this._checkYouTube(item))).then((result) => { if (this._started) { let stream = result.find((item) => item.status === "fulfilled" && item.value != null)?.value; if (stream == null && env7022[12] != null) { stream = env7022[12]; } Dispatcher.dispatch({ type: "STREAMING_UPDATE", stream }); } this._scheduleCheck(); }); } } } _scheduleCheck() { if (this._started) { this._nextCheck = setTimeout(() => this._check(), c7022_7); } } } const r64 = { __proto__: StreamingPoller.prototype }; r64._started = false; c7022_17 = r64; class ExternalStreamingStore extends Module589.Store { static displayName = "ExternalStreamingStore"; constructor() { super(...arguments); } initialize() { const enabled = StreamerModeStore.enabled; if (enabled) { c7022_17.start(); } else { c7022_17.stop(); } this.waitFor(ConnectedAccountsStore, StreamerModeStore); this.syncWith([StreamerModeStore], streamerModeUpdate); } getStream() { return env7022[10]; } } c7022_19 = ExternalStreamingStore; const r82 = new ExternalStreamingStore(Dispatcher, { STREAMING_UPDATE: function streamUpdate(a0) { if (isUndefinedOrNull(a0.stream, env7022[10])) { return false; } let stream = a0.stream; if (stream == null) { stream = null; } env7022[10] = stream; }, USER_CONNECTIONS_UPDATE: () => c7022_17._check() }); export default r82;