Untitled
unknown
plain_text
a year ago
2.2 kB
416
Indexable
let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);
let api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
let ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
let VoiceStateStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getCurrentClientVoiceChannelId).exports.default;
let QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
let encodeStreamKey = Object.values(wpRequire.c).find(x => x?.exports?.encodeStreamKey).exports.encodeStreamKey;
let sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())
let streamData = ApplicationStreamingStore.getCurrentUserActiveStream()
let isApp = navigator.userAgent.includes("Electron/")
let isAloneInVC = streamData && Object.keys(VoiceStateStore.getVoiceStatesForChannel(streamData.channelId)).length === 1
if(!isApp) {
console.log("This no longer works in browser. Use the desktop app!")
} else if(!quest) {
console.log("You don't have any uncompleted quests!")
} else if(!streamData) {
console.log("You haven't started a stream!")
} else if(isAloneInVC) {
console.log("You need to join the vc on 1 other account!")
} else {
let streamId = encodeStreamKey(streamData)
let secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
let heartbeat = async function() {
console.log("Completing quest", quest.config.messages.gameTitle, "-", quest.config.messages.questName)
while(true) {
let res = await api.post({url: `/quests/${quest.id}/heartbeat`, body: {stream_key: streamId}, headers: {"X-Discord-Resource-Optimization-Level": "1"}})
let progress = res.body.stream_progress_seconds
console.log(`Quest progress: ${progress}/${secondsNeeded}`)
if(progress >= secondsNeeded) break;
await sleep(30 * 1000)
}
console.log("Quest completed!")
}
heartbeat()
}Editor is loading...
Leave a Comment