Update discord-quest.js from upstream gist

This commit is contained in:
Gitea Actions
2026-04-09 00:00:43 +00:00
parent 7bf4c243fc
commit dd9b499c1d
+7 -9
View File
@@ -31,24 +31,22 @@ if(quests.length === 0) {
let secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0 let secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
if(taskName === "WATCH_VIDEO" || taskName === "WATCH_VIDEO_ON_MOBILE") { if(taskName === "WATCH_VIDEO" || taskName === "WATCH_VIDEO_ON_MOBILE") {
const maxFuture = 10, speed = 7, interval = 1 const speed = 7
const enrolledAt = new Date(quest.userStatus.enrolledAt).getTime() const enrolledAt = new Date(quest.userStatus.enrolledAt).getTime()
let completed = false let completed = false
let fn = async () => { let fn = async () => {
while(true) { while(true) {
const maxAllowed = Math.floor((Date.now() - enrolledAt)/1000) + maxFuture const remaining = Math.min(speed, secondsNeeded - secondsDone)
const diff = maxAllowed - secondsDone await new Promise(resolve => setTimeout(resolve, remaining * 1000))
const timestamp = secondsDone + speed const timestamp = secondsDone + speed
if(diff >= speed) { const res = await api.post({url: `/quests/${quest.id}/video-progress`, body: {timestamp: Math.min(secondsNeeded, timestamp + Math.random())}})
const res = await api.post({url: `/quests/${quest.id}/video-progress`, body: {timestamp: Math.min(secondsNeeded, timestamp + Math.random())}}) completed = res.body.completed_at != null
completed = res.body.completed_at != null secondsDone = Math.min(secondsNeeded, timestamp)
secondsDone = Math.min(secondsNeeded, timestamp)
}
if(timestamp >= secondsNeeded) { if(timestamp >= secondsNeeded) {
break break
} }
await new Promise(resolve => setTimeout(resolve, interval * 1000))
} }
if(!completed) { if(!completed) {
await api.post({url: `/quests/${quest.id}/video-progress`, body: {timestamp: secondsNeeded}}) await api.post({url: `/quests/${quest.id}/video-progress`, body: {timestamp: secondsNeeded}})