Files
discord-decomp/sources/actions/StreamActionCreators.tsx
T
2026-07-27 16:20:00 +03:00

648 lines
26 KiB
TypeScript

/* Metro module 8913; source: actions/StreamActionCreators.tsx; dependencies: [5, 4295, 8043, 8914, 4492, 1226, 1379, 1867, 1934, 4297, 661, 4286, 694, 4285, 44, 4800, 7712, 8915, 507, 672, 5046, 480, 8912, 4796, 4603, 8916, 2] */
function _fun69539(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#69539, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:6, offset: 0x01c76232, size: 566 bytes, params: 8, frame: 24
const env0_0 = require;
const closure = watchStream;
const closure2 = watchStreamAndTransitionToStream;
const closure3 = stopStream;
const closure4 = closeStream;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */;
const popoutWindowStoreNative = importDefault(8043) /* metro dependency 8043: PopoutWindowStoreNative */;
const applicationStreamPreviewStore = importDefault(8914) /* metro dependency 8914: ApplicationStreamPreviewStore */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_13 = constantsModule.Endpoints;
const env0_14 = constantsModule.AppContext;
const env0_15 = constantsModule.PopoutWindowKeys;
const env0_16 = (require(4286) /* metro dependency 4286: Constants */).StreamTypes;
const Number = global.Number;
const env0_17 = Number.MAX_VALUE;
(require(2) /* metro dependency 2 */).fileFinishedImporting('actions/StreamActionCreators.tsx');
exports.startStream = function(a0, a1, a2) {
var r7;
var r6;
var defaultImport = importDefault(dependencyMap[12]);
var dispatch = defaultImport.dispatch;
var object = {type: 'STREAM_START'};
if (a0 != null) {
r6 = StreamTypes.GUILD;
r7 = StreamTypes;
} else {
r6 = StreamTypes.CALL;
}
object.streamType = r6;
object.guildId = a0;
object.channelId = a1;
object.appContext = AppContext.APP;
copyDataProperties(object, a2, r7);
Reflect.apply(dispatch, defaultImport, [object]);
};
exports.setStreamPaused = setStreamPaused;
exports.watchStream = closure;
exports.toggleSelfStreamHidden = toggleSelfStreamHidden;
exports.watchStreamAndTransitionToStream = closure2;
exports.stopStream = closure3;
exports.closeStream = closure4;
exports.fetchStreamPreview = function() {
return _fetchStreamPreview.apply(this, arguments);
};
exports.setLayout = setLayout;
exports.notifyStreamStart = function() {
return _notifyStreamStart.apply(this, arguments);
};
exports.updateStreamSettings = updateStreamSettings;
exports.changeStreamRegion = function(a0, a1) {
var HTTP = require(dependencyMap[18]).HTTP;
var object = {};
object.url = Endpoints.STREAM(a0);
object.body = {region: a1};
object.oldFormErrors = true;
object.rejectWithError = true;
HTTP.patch(object);
};
exports.stopOwnStream = stopOwnStream;
exports.joinPrivateChannelAndWatchStream = joinPrivateChannelAndWatchStream;
}
function isVoiceChannelFull(a0, a1) { // fn#69540, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:299, offset: 0x01c76468, size: 124 bytes, params: 3, frame: 17
const channel = ChannelStore.getChannel(a1);
(importDefault(44) /* metro dependency 44 */)(channel != null, 'Cannot join a null voice channel');
return !VoiceStateStore.isInChannel(a1) && (require(4800) /* metro dependency 4800: ChannelUtils */).isChannelFull(channel,
VoiceStateStore, GuildStore);
}
function watchStream(a0, a1) { // fn#69541, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:463, offset: 0x01c764e4, size: 304 bytes, params: 3, frame: 20
var forceMultiple;
var r5;
var guildId;
var channelId;
var value3;
var value4;
var allActiveStreamsForChannel;
var defaultImport;
var value;
if (GameConsoleStore.getRemoteSessionId() == null) {
guildId = a0.guildId;
channelId = a0.channelId;
if (guildId == null) {
value3 = undefined;
value4 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(a0);
forceMultiple = a1 == null ? value3 : a1.forceMultiple;
if (forceMultiple) {
r5 = forceMultiple;
} else {
allActiveStreamsForChannel = ApplicationStreamingStore.getAllActiveStreamsForChannel(channelId);
r5 = allActiveStreamsForChannel.filter(function({ownerId}) {
return ownerId !== AuthenticationStore.getId();
}).length >= MAX_VALUE;
}
defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */;
defaultImport.dispatch({type: 'STREAM_WATCH', streamKey: value4, allowMultiple: r5});
if (!((a1 == null ? value3 : a1.forceFocus) !== true && (!r5 ? a1 != null && a1.noFocus : r5))) {
value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
value.selectParticipant(a0.channelId, value4);
}
} else if (!isVoiceChannelFull(undefined, channelId)) {
value3 = undefined;
value4 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(a0);
forceMultiple = a1 == null ? value3 : a1.forceMultiple;
if (forceMultiple) {
r5 = forceMultiple;
} else {
allActiveStreamsForChannel = ApplicationStreamingStore.getAllActiveStreamsForChannel(channelId);
r5 = allActiveStreamsForChannel.filter(_fun69542).length >= MAX_VALUE;
}
defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */;
defaultImport.dispatch({type: 'STREAM_WATCH', streamKey: value4, allowMultiple: r5});
if (!((a1 == null ? value3 : a1.forceFocus) !== true && (!r5 ? a1 != null && a1.noFocus : r5))) {
value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
value.selectParticipant(a0.channelId, value4);
}
}
}
}
function watchStreamAndTransitionToStream(a0, a1) { // fn#69543, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:921, offset: 0x01c76634, size: 133 bytes, params: 3, frame: 16
const guildId = a0.guildId;
const channelId = a0.channelId;
if (guildId == null) {
watchStream(a0, a1);
if (!(PopoutWindowStoreNative.getWindowOpen(PopoutWindowKeys.CHANNEL_CALL_POPOUT) && SelectedChannelStore.getVoiceChannelId() === channelId)) {
(importDefault(8915) /* metro dependency 8915: transitionToStreamNative */)(a0);
}
} else if (!isVoiceChannelFull(undefined, channelId)) {
watchStream(a0, a1);
if (!(PopoutWindowStoreNative.getWindowOpen(PopoutWindowKeys.CHANNEL_CALL_POPOUT) && SelectedChannelStore.getVoiceChannelId() === channelId)) {
(importDefault(8915) /* metro dependency 8915: transitionToStreamNative */)(a0);
}
}
}
function stopStream(a0) { // fn#69544, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1145, offset: 0x01c766b9, size: 104 bytes, params: 2, frame: 16
const value = a1;
const value2 = a2;
if (!(value2 !== undefined) || value2) {
closeStream(a0, !(value !== undefined) || value);
}
const defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */;
const dispatch = defaultImport.dispatch;
const APP = AppContext.APP;
Reflect.apply(dispatch, defaultImport, [{type: 'STREAM_STOP', streamKey: a0, appContext: APP}]);
}
function closeStream(a0) { // fn#69545, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1267, offset: 0x01c76721, size: 69 bytes, params: 2, frame: 14
let value = a1;
const r4 = !(value !== undefined) || value;
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.dispatch({type: 'STREAM_CLOSE', streamKey: a0, canShowFeedback: r4});
}
function _fetchStreamPreview() { // fn#69546, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1367, offset: 0x01c76766, size: 50 bytes, params: 1, frame: 14
return env0_3(_fun69548).apply(this, arguments);
}
function _notifyStreamStart() { // fn#69549, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2043, offset: 0x01c7698f, size: 50 bytes, params: 1, frame: 14
return env0_3(_fun69551).apply(this, arguments);
}
function setStreamPaused(a0, a1) { // fn#69553, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2553, offset: 0x01c76ad5, size: 90 bytes, params: 3, frame: 14
const value2 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(a0);
const value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.dispatch({type: 'STREAM_SET_PAUSED', streamKey: value2, paused: a1});
}
function toggleSelfStreamHidden(a0, a1) { // fn#69554, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2736, offset: 0x01c76b2f, size: 62 bytes, params: 3, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'STREAM_UPDATE_SELF_HIDDEN',
channelId: a0, selfStreamHidden: a1});
}
function setLayout(a0) { // fn#69556, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3090, offset: 0x01c76b6d, size: 57 bytes, params: 2, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'STREAM_LAYOUT_UPDATE', layout: a0});
}
function updateStreamSettings(a0) { // fn#69558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3292, offset: 0x01c76ba6, size: 136 bytes, params: 2, frame: 18
var r8;
var value;
var trackStreamSettingsUpdate;
var preset;
var resolution;
var frameRate;
if (a0.noTrack !== true) {
value = require(8912) /* metro dependency 8912: StreamQualityUtils */;
trackStreamSettingsUpdate = value.trackStreamSettingsUpdate;
preset = a0.preset;
resolution = a0.resolution;
frameRate = a0.frameRate;
Reflect.apply(trackStreamSettingsUpdate, value, [preset, resolution, frameRate, a0.soundshareEnabled]);
r8 = frameRate;
}
value = importDefault(694) /* metro dependency 694: Dispatcher */;
const dispatch = value.dispatch;
const object2 = {type: 'STREAM_UPDATE_SETTINGS'};
copyDataProperties(object2, a0, r8);
Reflect.apply(dispatch, value, [object2]);
}
function stopOwnStream() { // fn#69560, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3650, offset: 0x01c76c8a, size: 77 bytes, params: 1, frame: 16
var stopStreamBinding;
let value = a0;
const r3 = !(value !== undefined) || value;
const currentUserActiveStream = ApplicationStreamingStore.getCurrentUserActiveStream();
if (currentUserActiveStream != null) {
stopStreamBinding = stopStream;
value = require(4285) /* metro dependency 4285: StreamKeyUtils */;
stopStreamBinding(value.encodeStreamKey(currentUserActiveStream), r3);
}
}
function joinPrivateChannelAndWatchStream(a0, a1) { // fn#69561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3803, offset: 0x01c76cd7, size: 176 bytes, params: 3, frame: 19
const env0_0 = a0;
const id = AuthenticationStore.getId();
const env0_1 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).decodeStreamKey(a1);
const voiceChannelId = SelectedChannelStore.getVoiceChannelId();
if (voiceChannelId != null && voiceChannelId !== a0) {
(importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */).disconnect();
}
(importDefault(4603) /* metro dependency 4603: ChannelActionCreators */).addRecipient(a0, id, undefined, _fun69562);
}
function _fun69542({ownerId}) { // fn#69542, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:706, offset: 0x01c76614, size: 32 bytes, params: 2, frame: 10
const getId = AuthenticationStore.getId;
return ownerId !== Reflect.apply(getId, AuthenticationStore, []);
}
function* _fun69548(a0, a1, a2) { // fn#69548, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1428, offset: 0x01c767a3, size: 492 bytes, params: 4, frame: 24
var r12;
var r5;
var value3;
var binding;
var shouldFetchPreview;
var value4;
var encodeStreamKey;
var object3;
var CALL;
var GUILD;
var value5;
var value6;
var dispatch;
var binding2;
var property;
var value7;
var HTTP;
var get;
var STREAM_PREVIEW;
var value8;
var object4;
var Date;
var now;
var value9;
var value10;
var value11;
var value12;
var binding3;
var value13;
var body;
var url;
var error;
var status;
var retry_after;
var Millis;
var SECOND;
var value14;
var value15;
let value = undefined;
if (true) {
reduciblePort52: while (true) {
exceptionLanding49: while (true) {
value = undefined;
value3 = environment.__proto__.__proto__;
binding = env2_6;
shouldFetchPreview = binding.shouldFetchPreview;
if (Reflect.apply(shouldFetchPreview, binding, [a0, a1, a2])) {
binding = env2_0;
value4 = binding(env2_2[13]);
encodeStreamKey = value4.encodeStreamKey;
if (a0 != null) {
GUILD = env2_16.GUILD;
r12 = GUILD;
} else {
CALL = env2_16.CALL;
r12 = CALL;
}
value5 = Reflect.apply(encodeStreamKey, value4, [{streamType: r12, guildId: a0, channelId: a1,
ownerId: a2}]);
binding = env2_1;
value6 = binding(env2_2[12]);
dispatch = value6.dispatch;
Reflect.apply(dispatch, value6, [{type: 'STREAM_PREVIEW_FETCH_START', streamKey: value5}]);
try {
binding = env2_0;
} catch (error) {
break exceptionLanding49;
}
try {
binding2 = env2_2;
} catch (error) {
break exceptionLanding49;
}
try {
property = binding2[18];
} catch (error) {
break exceptionLanding49;
}
try {
value7 = binding(property);
} catch (error) {
break exceptionLanding49;
}
try {
HTTP = value7.HTTP;
} catch (error) {
break exceptionLanding49;
}
try {
get = HTTP.get;
} catch (error) {
break exceptionLanding49;
}
try {
object3 = {};
} catch (error) {
break exceptionLanding49;
}
try {
binding = env2_13;
} catch (error) {
break exceptionLanding49;
}
try {
STREAM_PREVIEW = binding.STREAM_PREVIEW;
} catch (error) {
break exceptionLanding49;
}
try {
value8 = Reflect.apply(STREAM_PREVIEW, binding, [value5]);
} catch (error) {
break exceptionLanding49;
}
try {
object3.url = value8;
} catch (error) {
break exceptionLanding49;
}
try {
object4 = {};
} catch (error) {
break exceptionLanding49;
}
try {
Date = global.Date;
} catch (error) {
break exceptionLanding49;
}
try {
now = Date.now;
} catch (error) {
break exceptionLanding49;
}
try {
value9 = Reflect.apply(now, Date, []);
} catch (error) {
break exceptionLanding49;
}
try {
object4.version = value9;
} catch (error) {
break exceptionLanding49;
}
try {
object3.query = object4;
} catch (error) {
break exceptionLanding49;
}
try {
object3.oldFormErrors = true;
} catch (error) {
break exceptionLanding49;
}
try {
object3.rejectWithError = false;
} catch (error) {
break exceptionLanding49;
}
try {
value10 = Reflect.apply(get, HTTP, [object3]);
} catch (error) {
break exceptionLanding49;
}
yield value10;
try {
value11 = undefined;
value12 = false;
} catch (error) {
break exceptionLanding49;
}
if (value12) {
return value11;
}
try {
binding = env2_1;
} catch (error) {
break exceptionLanding49;
}
try {
binding3 = env2_2;
} catch (error) {
break exceptionLanding49;
}
try {
property = binding3[12];
} catch (error) {
break exceptionLanding49;
}
try {
value13 = binding(property);
} catch (error) {
break exceptionLanding49;
}
try {
dispatch = value13.dispatch;
} catch (error) {
break exceptionLanding49;
}
try {
object3 = {};
} catch (error) {
break exceptionLanding49;
}
try {
object3.type = 'STREAM_PREVIEW_FETCH_SUCCESS';
} catch (error) {
break exceptionLanding49;
}
try {
object3.streamKey = value5;
} catch (error) {
break exceptionLanding49;
}
try {
body = value11.body;
} catch (error) {
break exceptionLanding49;
}
try {
url = body.url;
} catch (error) {
break exceptionLanding49;
}
try {
object3.previewURL = url;
} catch (error) {
break exceptionLanding49;
}
try {
Reflect.apply(dispatch, value13, [object3]);
} catch (error) {
break exceptionLanding49;
}
break reduciblePort52;
}
break reduciblePort52;
}
status = error.status;
reducibleJoin51: while (true) {
if (status !== 429) {
r5 = value;
break reducibleJoin51;
}
body = error.body;
retry_after = body.retry_after;
binding = env2_1;
Millis = binding(env2_2[19]).Millis;
SECOND = Millis.SECOND;
value14 = retry_after * SECOND;
r5 = value14;
break reducibleJoin51;
}
binding = env2_1;
value15 = binding(env2_2[12]);
dispatch = value15.dispatch;
Reflect.apply(dispatch, value15, [{type: 'STREAM_PREVIEW_FETCH_FAIL', streamKey: value5, retryAfter: r5}]);
break reduciblePort52;
}
}
return value;
}
function* _fun69551(a0) { // fn#69551, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2102, offset: 0x01c769cc, size: 146 bytes, params: 2, frame: 18
var binding;
var binding2;
var property;
var value3;
var post;
var object3;
var STREAM_NOTIFY;
var value4;
var object4;
var NetworkActionNames;
var value5;
var error;
if (true) {
value = environment.__proto__.__proto__;
try {
binding = env2_1;
} catch (error) {
return undefined;
}
try {
binding2 = env2_2;
} catch (error) {
return undefined;
}
try {
property = binding2[20];
} catch (error) {
return undefined;
}
try {
value3 = binding(property);
} catch (error) {
return undefined;
}
try {
post = value3.post;
} catch (error) {
return undefined;
}
try {
object3 = {};
} catch (error) {
return undefined;
}
try {
binding = env2_13;
} catch (error) {
return undefined;
}
try {
STREAM_NOTIFY = binding.STREAM_NOTIFY;
} catch (error) {
return undefined;
}
try {
value4 = Reflect.apply(STREAM_NOTIFY, binding, [a0]);
} catch (error) {
return undefined;
}
try {
object3.url = value4;
} catch (error) {
return undefined;
}
try {
object3.oldFormErrors = true;
} catch (error) {
return undefined;
}
try {
object4 = {};
} catch (error) {
return undefined;
}
try {
binding = env2_0;
} catch (error) {
return undefined;
}
try {
property = binding2[21];
} catch (error) {
return undefined;
}
try {
value = binding(property);
} catch (error) {
return undefined;
}
try {
NetworkActionNames = value.NetworkActionNames;
} catch (error) {
return undefined;
}
try {
STREAM_NOTIFY = NetworkActionNames.STREAM_NOTIFY;
} catch (error) {
return undefined;
}
try {
object4.event = STREAM_NOTIFY;
} catch (error) {
return undefined;
}
try {
object3.trackedActionData = object4;
} catch (error) {
return undefined;
}
try {
object3.rejectWithError = true;
} catch (error) {
return undefined;
}
try {
value = Reflect.apply(post, value3, [object3]);
} catch (error) {
return undefined;
}
yield value;
try {
value = undefined;
value5 = false;
} catch (error) {
return undefined;
}
if (value5) {
return value;
}
}
}
function _fun69562() { // fn#69562, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3992, offset: 0x01c76d87, size: 61 bytes, params: 1, frame: 19
var environment;
let value = environment.__proto__;
value = importDefault(8916) /* metro dependency 8916: CallActionCreators */;
value.call(env0_0, false, false, null, _fun69563);
}
function _fun69563() { // fn#69563, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:4025, offset: 0x01c76dc4, size: 23 bytes, params: 1, frame: 11
watchStreamAndTransitionToStream(env1_1);
}