|
delete window.$;let wpRequire=webpackChunkdiscord_app.push([[Symbol()],{},e=>e]);webpackChunkdiscord_app.pop();let ApplicationStreamingStore=Object.values(wpRequire.c).find((e=>e?.exports?.A?.__proto__?.getStreamerActiveStreamMetadata)).exports.A,RunningGameStore=Object.values(wpRequire.c).find((e=>e?.exports?.Ay?.getRunningGames)).exports.Ay,QuestsStore=Object.values(wpRequire.c).find((e=>e?.exports?.A?.__proto__?.getQuest)).exports.A,ChannelStore=Object.values(wpRequire.c).find((e=>e?.exports?.A?.__proto__?.getAllThreadsForParent)).exports.A,GuildChannelStore=Object.values(wpRequire.c).find((e=>e?.exports?.Ay?.getSFWDefaultChannel)).exports.Ay,FluxDispatcher=Object.values(wpRequire.c).find((e=>e?.exports?.h?.__proto__?.flushWaitQueue)).exports.h,api=Object.values(wpRequire.c).find((e=>e?.exports?.Bo?.get)).exports.Bo,isApp="undefined"!=typeof DiscordNative;class FkrysLogger{static#e(e,t,r){console[e](`%c FkrysQuestFarmer %c %c ${e.toUpperCase()} `,"background: #669DF6; color: black; font-weight: bold; border-radius: 5px;","",`background: ${t}; color: black; font-weight: bold; border-radius: 5px;`,...r)}static info(...e){this.#e("info","#a6d189",e)}static error(...e){this.#e("error","#e78284",e)}static warn(...e){this.#e("warn","#ffff67",e)}static debug(...e){this.#e("debug","#eebebe",e)}}const TheBestQuestWorkerEver=async e=>{const t=Math.floor(3e4*Math.random())+1e3,r=e.config.application.id,s=(e.config.application.name,e.config.messages.questName),o=e.config.taskConfig??e.config.taskConfigV2,a=["WATCH_VIDEO","PLAY_ON_DESKTOP","STREAM_ON_DESKTOP","PLAY_ACTIVITY","WATCH_VIDEO_ON_MOBILE"].find((e=>null!=o.tasks[e])),i=o.tasks[a].target;let n=e.userStatus?.progress?.[a]?.value??0;if("WATCH_VIDEO"===a||"WATCH_VIDEO_ON_MOBILE"===a){const t=10,r=7,o=1,a=new Date(e.userStatus.enrolledAt).getTime();let u=!1;for(;;){const s=n+r;if(Math.floor((Date.now()-a)/1e3)+t-n>=r){u=null!=(await api.post({url:`/quests/${e.id}/video-progress`,body:{timestamp:Math.min(i,s+Math.random())}})).body.completed_at,n=Math.min(i,s)}if(s>=i)break;await new Promise((e=>setTimeout(e,1e3*o)))}u||await api.post({url:`/quests/${e.id}/video-progress`,body:{timestamp:i}}),FkrysLogger.info("Quest completed:",s)}else if("PLAY_ON_DESKTOP"===a)if(isApp){const o=(await api.get({url:`/applications/public?application_ids=${r}`})).body[0],a=o.executables.find((e=>"win32"===e.os)).name.replace(">",""),n={cmdLine:`C:\\Program Files (x86)\\${o.name}\\${a}`,exeName:a,exePath:`c:/program files (x86)/${o.name.toLowerCase()}/${a}`,hidden:!1,isLauncher:!1,id:r,name:o.name,pid:t,pidPath:[t],processName:o.name,start:Date.now()},u=RunningGameStore.getRunningGames(),l=[n],g=RunningGameStore.getRunningGames,d=RunningGameStore.getGameForPID;RunningGameStore.getRunningGames=()=>l,RunningGameStore.getGameForPID=e=>l.find((t=>t.pid===e)),FluxDispatcher.dispatch({type:"RUNNING_GAMES_CHANGE",removed:u,added:[n],games:l}),await new Promise((t=>{let r=o=>{let a=1===e.config.configVersion?o.userStatus.streamProgressSeconds:Math.floor(o.userStatus.progress.PLAY_ON_DESKTOP.value);FkrysLogger.info(`Quest progress: ${a}/${i}`),a>=i&&(FkrysLogger.info("Quest completed:",s),RunningGameStore.getRunningGames=g,RunningGameStore.getGameForPID=d,FluxDispatcher.dispatch({type:"RUNNING_GAMES_CHANGE",removed:[n],added:[],games:[]}),FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",r),t())};FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",r)}))}else FkrysLogger.error("Desktop app required for:",s);else if("STREAM_ON_DESKTOP"===a)if(isApp){let o=ApplicationStreamingStore.getStreamerActiveStreamMetadata;ApplicationStreamingStore.getStreamerActiveStreamMetadata=()=>({id:r,pid:t,sourceName:null}),await new Promise((t=>{let r=a=>{let n=1===e.config.configVersion?a.userStatus.streamProgressSeconds:Math.floor(a.userStatus.progress.STREAM_ON_DESKTOP.value);FkrysLogger.info(`Quest progress: ${n}/${i}`),n>=i&&(FkrysLogger.info("Quest completed:",s),ApplicationStreamingStore.getStreamerActiveStreamMetadata=o,FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",r),t())};FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",r)}))}else FkrysLogger.error("Desktop app required for:",s);else if("PLAY_ACTIVITY"===a){const t=`call:${ChannelStore.getSortedPrivateChannels()[0]?.id??Object.values(GuildChannelStore.getAllGuilds()).find((e=>null!=e&&e.VOCAL.length>0)).VOCAL[0].channel.id}:1`;for(;;){const r=(await api.post({url:`/quests/${e.id}/heartbeat`,body:{stream_key:t,terminal:!1}})).body.progress.PLAY_ACTIVITY.value;if(FkrysLogger.info(`Quest progress: ${r}/${i}`),r>=i){await api.post({url:`/quests/${e.id}/heartbeat`,body:{stream_key:t,terminal:!0}});break}await new Promise((e=>setTimeout(e,2e4)))}FkrysLogger.info("Quest completed:",s)}},isQuestStarted=e=>null!==e.userStatus,isOrbsQuest=e=>e.config.rewardsConfig.rewards.some((e=>e?.messages?.name?.toLowerCase().includes("orb"))),isQuestCompleted=e=>null!==e.userStatus.completedAt,OrbsQuestFarmer=async()=>{QuestsStore=Object.values(wpRequire.c).find((e=>e?.exports?.A?.__proto__?.getQuest)).exports.A,console.log("\n\n----------------------------------------------------------------------------------------------------------------\n\n");let e=Array.from(QuestsStore.quests.values()).filter((e=>new Date(e.config.expiresAt).getTime()>Date.now()));if(0!==e.length){for(let t of e)if(t.config.rewardsConfig.rewards.some((e=>e?.messages?.name?.toLowerCase().includes("orb"))))if(isQuestStarted(t)&&isQuestCompleted(t))FkrysLogger.info(`Skipping ${t.config.messages.questName}: Already completed.`);else{isQuestStarted(t)||(FkrysLogger.info(`Quest ${t.config.messages.questName} not started. Starting...`),await api.post({url:`/quests/${t.id}/enroll`,body:{is_targeted:!1,location:11,metadata_raw:null,metadata_sealed:null}}),await new Promise((e=>setTimeout(e,1e3))),t=QuestsStore.quests.get(t.id)),t.userStatus||(t.userStatus={enrolledAt:(new Date).toISOString(),progress:{},completedAt:null}),FkrysLogger.info(`Starting orb quest: ${t.config.messages.questName} (Rewards: ${t.config.rewardsConfig.rewards?.[0].messages.name})`);try{await TheBestQuestWorkerEver(t)}catch(e){FkrysLogger.error("Worker failed:",e)}}else FkrysLogger.info(`Skipping ${t.config.messages.questName}: Not an orb quest.`);FkrysLogger.info("All orb quests completed! Waiting for 5 minutes for rerun."),FkrysLogger.info(`Timeout ID: ${setTimeout(OrbsQuestFarmer,3e5)} | Use: "clearTimeout(timeout ID)" to stop.`)}else FkrysLogger.error("You don't have any available quests! (requirements: Not expired)")},NormalQuestFarmer=async()=>{QuestsStore=Object.values(wpRequire.c).find((e=>e?.exports?.A?.__proto__?.getQuest)).exports.A,console.log("\n\n----------------------------------------------------------------------------------------------------------------\n\n");let e=Array.from(QuestsStore.quests.values()).filter((e=>new Date(e.config.expiresAt).getTime()>Date.now()));if(0!==e.length){for(let t of e)if(isQuestStarted(t)&&isQuestCompleted(t))FkrysLogger.info(`Skipping ${t.config.messages.questName}: Already completed.`);else{isQuestStarted(t)||(FkrysLogger.info(`Quest ${t.config.messages.questName} not started. Starting...`),await api.post({url:`/quests/${t.id}/enroll`,body:{is_targeted:!1,location:11,metadata_raw:null,metadata_sealed:null}}),await new Promise((e=>setTimeout(e,1e3))),t=QuestsStore.quests.get(t.id)),t.userStatus||(t.userStatus={enrolledAt:(new Date).toISOString(),progress:{},completedAt:null}),FkrysLogger.info("Starting quest:",t.config.messages.questName);try{await TheBestQuestWorkerEver(t)}catch(e){FkrysLogger.error("Worker failed:",e)}}FkrysLogger.info("All quests completed! Waiting for 5 minutes for rerun."),FkrysLogger.info(`Timeout ID: ${setTimeout(NormalQuestFarmer,3e5)} | Use: "clearTimeout(timeout ID)" to stop.`)}else FkrysLogger.error("You don't have any available quests! (requirements: Not expired)")},FkrysQuestFarmer=e=>{1==e?OrbsQuestFarmer():NormalQuestFarmer()};FkrysLogger.info("FkrysQuestFarmer - a script for farming Discord quests."),FkrysLogger.info("Made by Fkrystal (Discord: fkrystal.noppy)."),FkrysLogger.info("Original code by aamiaa on gist."),FkrysLogger.info('Loaded successfully. Use "FkrysQuestFarmer(only_orbs={true or false})" to use.'),FkrysLogger.info('Note: Let "only_orbs" to true if you only need to farm orbs. Otherwise will run a default aamiaa\'s code.'),isApp||(FkrysLogger.warn("Erm... Seems like you didn't run this script inside an actual Discord client."),FkrysLogger.warn("If you still use this inside web client, some features may not work correctly."),FkrysLogger.warn("Consider changing into DiscordCanary for stable use."),FkrysLogger.warn("Download link: https://discord.com/api/downloads/distributions/app/installers/latest?channel=canary&platform=win&arch=x64")); |
pls, add auto claim in your code, it have auto captcha solver