-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbadges.js
73 lines (64 loc) · 2.17 KB
/
badges.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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 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));
// Encontra uma missão incompleta
// Find an incomplete quest
let quest = [...QuestsStore.quests.values()].find(
(x) => x.userStatus?.enrolledAt && !x.userStatus?.completedAt
);
if (!quest) {
console.log("[PT-BR] Você não tem nenhuma missão incompleta!");
console.log("[EN-US] You don't have any incomplete quests!");
} else {
let streamId = encodeStreamKey(
ApplicationStreamingStore.getCurrentUserActiveStream()
);
let secondsNeeded = quest.config.streamDurationRequirementMinutes * 60;
// Defina uma função para enviar periodicamente solicitações para concluir a missão
// Define a function to periodically send requests to complete the quest
let heartbeat = async function () {
console.log(
"[PT-BR] Iniciando missão",
quest.config.messages.gameTitle,
"-",
quest.config.messages.questName
);
console.log(
"[EN-US] Starting 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 },
});
let progress = res.body.stream_progress_seconds;
console.log(`[PT-BR] Progresso da missão: ${progress}/${secondsNeeded}`);
console.log(`[EN-US] Quest progress: ${progress}/${secondsNeeded}`);
if (progress >= secondsNeeded) break;
await sleep(30 * 1000);
}
console.log("[PT-BR] Missão concluída!");
console.log("[EN-US] Quest completed!");
};
heartbeat();
}