初级玩家

- 贡献度
- 0
- 金元
- 825
- 积分
- 83
- 精华
- 0
- 注册时间
- 2010-11-27
|
(([color=var(--color-prettylights-syntax-keyword)]async (startPage [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-constant)]0, autoClearConsole [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-constant)]true) [color=var(--color-prettylights-syntax-constant)]=> { [color=var(--color-prettylights-syntax-keyword)]const [color=var(--color-prettylights-syntax-entity)]getCookie [color=var(--color-prettylights-syntax-constant)]= (name) [color=var(--color-prettylights-syntax-constant)]=> { [color=var(--color-prettylights-syntax-keyword)]const value [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-string)]`; ${document.cookie}`; [color=var(--color-prettylights-syntax-keyword)]const parts [color=var(--color-prettylights-syntax-constant)]= value.[color=var(--color-prettylights-syntax-entity)]split([color=var(--color-prettylights-syntax-string)]`; ${name}=`); [color=var(--color-prettylights-syntax-keyword)]if (parts.[color=var(--color-prettylights-syntax-constant)]length [color=var(--color-prettylights-syntax-constant)]=== [color=var(--color-prettylights-syntax-constant)]2) [color=var(--color-prettylights-syntax-keyword)]return parts.[color=var(--color-prettylights-syntax-entity)]pop().[color=var(--color-prettylights-syntax-entity)]split([color=var(--color-prettylights-syntax-string)]';').[color=var(--color-prettylights-syntax-entity)]shift(); } [color=var(--color-prettylights-syntax-keyword)]const [color=var(--color-prettylights-syntax-entity)]callCacheApi [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]async (params [color=var(--color-prettylights-syntax-constant)]= {}) [color=var(--color-prettylights-syntax-constant)]=> { [color=var(--color-prettylights-syntax-keyword)]const defaultParams [color=var(--color-prettylights-syntax-constant)]= { [color=var(--color-prettylights-syntax-constant)]page: [color=var(--color-prettylights-syntax-constant)]0, [color=var(--color-prettylights-syntax-constant)]maxValuesPerFacet: [color=var(--color-prettylights-syntax-constant)]1000, [color=var(--color-prettylights-syntax-constant)]hitsPerPage: [color=var(--color-prettylights-syntax-constant)]1000, [color=var(--color-prettylights-syntax-constant)]attributesToRetrieve: [[color=var(--color-prettylights-syntax-string)]"id", [color=var(--color-prettylights-syntax-string)]"name"].[color=var(--color-prettylights-syntax-entity)]join([color=var(--color-prettylights-syntax-string)]",") } [color=var(--color-prettylights-syntax-keyword)]const response [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]fetch([color=var(--color-prettylights-syntax-string)]"https://proxy-algolia-prod.quixel.com/algolia/cache", { [color=var(--color-prettylights-syntax-string)]"headers": { [color=var(--color-prettylights-syntax-string)]"x-api-key": [color=var(--color-prettylights-syntax-string)]"2Zg8!d2WAHIUW?pCO28cVjfOt9seOWPx@2j" }, [color=var(--color-prettylights-syntax-string)]"body": [color=var(--color-prettylights-syntax-constant)]JSON.[color=var(--color-prettylights-syntax-entity)]stringify({ [color=var(--color-prettylights-syntax-constant)]url: [color=var(--color-prettylights-syntax-string)]"https://6UJ1I5A072-2.algolianet.com/1/indexes/assets/query?x-algolia-application-id=6UJ1I5A072&x-algolia-api-key=e93907f4f65fb1d9f813957bdc344892", [color=var(--color-prettylights-syntax-constant)]params: [color=var(--color-prettylights-syntax-keyword)]new [color=var(--color-prettylights-syntax-variable)]URLSearchParams({ ...defaultParams, ...params }).[color=var(--color-prettylights-syntax-entity)]toString() }), [color=var(--color-prettylights-syntax-string)]"method": [color=var(--color-prettylights-syntax-string)]"POST", }) [color=var(--color-prettylights-syntax-keyword)]return [color=var(--color-prettylights-syntax-keyword)]await response.[color=var(--color-prettylights-syntax-entity)]json() } [color=var(--color-prettylights-syntax-keyword)]const [color=var(--color-prettylights-syntax-entity)]callAcl [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]async ({ id, name }) [color=var(--color-prettylights-syntax-constant)]=> { [color=var(--color-prettylights-syntax-keyword)]const response [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]fetch([color=var(--color-prettylights-syntax-string)]"https://quixel.com/v1/acl", { [color=var(--color-prettylights-syntax-string)]"headers": { [color=var(--color-prettylights-syntax-string)]"authorization": [color=var(--color-prettylights-syntax-string)]"Bearer " [color=var(--color-prettylights-syntax-constant)]+ authToken, [color=var(--color-prettylights-syntax-string)]"content-type": [color=var(--color-prettylights-syntax-string)]"application/json;charset=UTF-8", }, [color=var(--color-prettylights-syntax-string)]"body": [color=var(--color-prettylights-syntax-constant)]JSON.[color=var(--color-prettylights-syntax-entity)]stringify({ [color=var(--color-prettylights-syntax-constant)]assetID: id }), [color=var(--color-prettylights-syntax-string)]"method": [color=var(--color-prettylights-syntax-string)]"POST", }); [color=var(--color-prettylights-syntax-keyword)]const json [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]await response.[color=var(--color-prettylights-syntax-entity)]json() [color=var(--color-prettylights-syntax-keyword)]if (json?.[color=var(--color-prettylights-syntax-constant)]isError) { [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]error([color=var(--color-prettylights-syntax-string)]` --> **UNABLE TO ADD ITEM** Item ${id} | ${name} (${json?.msg})`) } [color=var(--color-prettylights-syntax-keyword)]else { [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]` --> ADDED ITEM Item ${id} | ${name}`) } } [color=var(--color-prettylights-syntax-keyword)]const [color=var(--color-prettylights-syntax-entity)]callAcquired [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]async () [color=var(--color-prettylights-syntax-constant)]=> { [color=var(--color-prettylights-syntax-keyword)]const response [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]fetch([color=var(--color-prettylights-syntax-string)]"https://quixel.com/v1/assets/acquired", { [color=var(--color-prettylights-syntax-string)]"headers": { [color=var(--color-prettylights-syntax-string)]"authorization": [color=var(--color-prettylights-syntax-string)]"Bearer " [color=var(--color-prettylights-syntax-constant)]+ authToken, [color=var(--color-prettylights-syntax-string)]"content-type": [color=var(--color-prettylights-syntax-string)]"application/json;charset=UTF-8", }, [color=var(--color-prettylights-syntax-string)]"method": [color=var(--color-prettylights-syntax-string)]"GET", }); [color=var(--color-prettylights-syntax-keyword)]return [color=var(--color-prettylights-syntax-keyword)]await response.[color=var(--color-prettylights-syntax-entity)]json() } [color=var(--color-prettylights-syntax-comment)]// 1. Check token exist, quixel API needs it [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> Checking Auth API Token...") [color=var(--color-prettylights-syntax-keyword)]let authToken [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-string)]"" [color=var(--color-prettylights-syntax-keyword)]try { [color=var(--color-prettylights-syntax-keyword)]const authCookie [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-entity)]getCookie([color=var(--color-prettylights-syntax-string)]"auth") [color=var(--color-prettylights-syntax-constant)]?? [color=var(--color-prettylights-syntax-string)]"{}" authToken [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-constant)]JSON.[color=var(--color-prettylights-syntax-entity)]parse([color=var(--color-prettylights-syntax-entity)]decodeURIComponent(authCookie))?.[color=var(--color-prettylights-syntax-constant)]token [color=var(--color-prettylights-syntax-keyword)]if ([color=var(--color-prettylights-syntax-constant)]!authToken) { [color=var(--color-prettylights-syntax-keyword)]return [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]error([color=var(--color-prettylights-syntax-string)]"-> Error: cannot find authentication token. Please login again.") } } [color=var(--color-prettylights-syntax-keyword)]catch (_) { [color=var(--color-prettylights-syntax-keyword)]return [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]error([color=var(--color-prettylights-syntax-string)]"-> Error: cannot find authentication token. Please login again.") } [color=var(--color-prettylights-syntax-comment)]// 2. Get all currently acquired items [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> Get Acquired Items...") [color=var(--color-prettylights-syntax-keyword)]const acquiredItems [color=var(--color-prettylights-syntax-constant)]= ([color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]callAcquired()).[color=var(--color-prettylights-syntax-entity)]map(a [color=var(--color-prettylights-syntax-constant)]=> a.[color=var(--color-prettylights-syntax-constant)]assetID) [color=var(--color-prettylights-syntax-comment)]// 3. Get total count of items [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> Getting Total Number of Pages....") [color=var(--color-prettylights-syntax-keyword)]const { [color=var(--color-prettylights-syntax-constant)]nbPages: totalPages, [color=var(--color-prettylights-syntax-constant)]hitsPerPage: itemsPerPage, [color=var(--color-prettylights-syntax-constant)]nbHits: totalItems } [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]callCacheApi() [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> ==============================================") [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]`-> Total # of items: ${totalItems}`) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]`-> ${totalPages} total pages with ${itemsPerPage} per page`) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]`-> Total Items to add: ${(totalItems - acquiredItems.length)}.`) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> ==============================================") [color=var(--color-prettylights-syntax-keyword)]if ([color=var(--color-prettylights-syntax-constant)]![color=var(--color-prettylights-syntax-entity)]confirm([color=var(--color-prettylights-syntax-string)]`Click OK to start adding ${(totalItems - acquiredItems.length)} items in your account.`)) [color=var(--color-prettylights-syntax-keyword)]return [color=var(--color-prettylights-syntax-comment)]// Loop [color=var(--color-prettylights-syntax-keyword)]for ([color=var(--color-prettylights-syntax-keyword)]let pageIdx [color=var(--color-prettylights-syntax-constant)]= startPage [color=var(--color-prettylights-syntax-constant)]|| [color=var(--color-prettylights-syntax-constant)]0; pageIdx [color=var(--color-prettylights-syntax-constant)]< totalPages; pageIdx[color=var(--color-prettylights-syntax-constant)]++) { [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]`-> ======================= PAGE ${pageIdx + 1}/${totalPages} START =======================`) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> Getting Items from page " [color=var(--color-prettylights-syntax-constant)]+ (pageIdx [color=var(--color-prettylights-syntax-constant)]+ [color=var(--color-prettylights-syntax-constant)]1) [color=var(--color-prettylights-syntax-constant)]+ [color=var(--color-prettylights-syntax-string)]" ...") [color=var(--color-prettylights-syntax-keyword)]const { [color=var(--color-prettylights-syntax-constant)]hits: items } [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]callCacheApi({ [color=var(--color-prettylights-syntax-constant)]page: pageIdx }) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> Adding non-acquired items...") [color=var(--color-prettylights-syntax-comment)]// Filter out owned items [color=var(--color-prettylights-syntax-keyword)]const unownedItems [color=var(--color-prettylights-syntax-constant)]= items.[color=var(--color-prettylights-syntax-entity)]filter(i [color=var(--color-prettylights-syntax-constant)]=> [color=var(--color-prettylights-syntax-constant)]!acquiredItems.[color=var(--color-prettylights-syntax-entity)]includes(i.[color=var(--color-prettylights-syntax-constant)]id)) [color=var(--color-prettylights-syntax-keyword)]const aclPromises [color=var(--color-prettylights-syntax-constant)]= unownedItems.[color=var(--color-prettylights-syntax-entity)]map([color=var(--color-prettylights-syntax-entity)]callAcl) [color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-variable)]Promise.[color=var(--color-prettylights-syntax-entity)]all(aclPromises) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]`-> ======================= PAGE ${pageIdx + 1}/${totalPages} COMPLETED =======================`) [color=var(--color-prettylights-syntax-keyword)]if (autoClearConsole) [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]clear() [color=var(--color-prettylights-syntax-comment)]// Fix the issue that too much log hangs the console. Set autoClearConsole = false to keep the logs } [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]"-> Getting new acquired info...") [color=var(--color-prettylights-syntax-comment)]// Get acquired items again [color=var(--color-prettylights-syntax-keyword)]const newItemsAcquired [color=var(--color-prettylights-syntax-constant)]= ([color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]callAcquired()).[color=var(--color-prettylights-syntax-constant)]length [color=var(--color-prettylights-syntax-keyword)]const newTotalCount [color=var(--color-prettylights-syntax-constant)]= ([color=var(--color-prettylights-syntax-keyword)]await [color=var(--color-prettylights-syntax-entity)]callCacheApi()).[color=var(--color-prettylights-syntax-constant)]nbHits [color=var(--color-prettylights-syntax-storage-modifier-import)]console.[color=var(--color-prettylights-syntax-entity)]log([color=var(--color-prettylights-syntax-string)]`-> Completed. Your account now have a total of ${newItemsAcquired} out of ${newTotalCount} items.`) [color=var(--color-prettylights-syntax-entity)]alert([color=var(--color-prettylights-syntax-string)]`-> Your account now have a total of ${newItemsAcquired} out of ${newTotalCount} items.\n\nIf you find some items missing, try refresh the page and run the script again.`)})())
|
|