当前位置: 首页 > news >正文

【UE】自动添加Megascans所有资产到自己的账户

1. 复制如下代码:

((async (startPage = 0, autoClearConsole = true) => {const getCookie = (name) => {const value = `; ${document.cookie}`;const parts = value.split(`; ${name}=`);if (parts.length === 2) return parts.pop().split(';').shift();}const callCacheApi = async (params = {}) => {const defaultParams = {page: 0,maxValuesPerFacet: 1000,hitsPerPage: 1000,attributesToRetrieve: ["id", "name"].join(",")}const response = await fetch("https://proxy-algolia-prod.quixel.com/algolia/cache", {"headers": {"x-api-key": "2Zg8!d2WAHIUW?pCO28cVjfOt9seOWPx@2j"},"body": JSON.stringify({url: "https://6UJ1I5A072-2.algolianet.com/1/indexes/assets/query?x-algolia-application-id=6UJ1I5A072&x-algolia-api-key=e93907f4f65fb1d9f813957bdc344892",params: new URLSearchParams({ ...defaultParams, ...params }).toString()}),"method": "POST",})return await response.json()}const callAcl = async ({ id, name }) => {const response = await fetch("https://quixel.com/v1/acl", {"headers": {"authorization": "Bearer " + authToken,"content-type": "application/json;charset=UTF-8",},"body": JSON.stringify({ assetID: id }),"method": "POST",});const json = await response.json()if (json?.isError) {console.error(`  --> **UNABLE TO ADD ITEM** Item ${id} | ${name} (${json?.msg})`)} else {console.log(`  --> ADDED ITEM Item ${id} | ${name}`)}}const callAcquired = async () => {const response = await fetch("https://quixel.com/v1/assets/acquired", {"headers": {"authorization": "Bearer " + authToken,"content-type": "application/json;charset=UTF-8",},"method": "GET",});return await response.json()}// 1. Check token exist, quixel API needs itconsole.log("-> Checking Auth API Token...")let authToken = ""try {const authCookie = getCookie("auth") ?? "{}"authToken = JSON.parse(decodeURIComponent(authCookie))?.tokenif (!authToken) {return console.error("-> Error: cannot find authentication token. Please login again.")}} catch (_) {return console.error("-> Error: cannot find authentication token. Please login again.")}// 2. Get all currently acquired itemsconsole.log("-> Get Acquired Items...")const acquiredItems = (await callAcquired()).map(a => a.assetID)// 3. Get total count of itemsconsole.log("-> Getting Total Number of Pages....")const { nbPages: totalPages, hitsPerPage: itemsPerPage, nbHits: totalItems } = await callCacheApi()console.log("-> ==============================================")console.log(`-> Total # of items: ${totalItems}`)console.log(`-> ${totalPages} total pages with ${itemsPerPage} per page`)console.log(`-> Total Items to add: ${(totalItems - acquiredItems.length)}.`)console.log("-> ==============================================")if (!confirm(`Click OK to start adding ${(totalItems - acquiredItems.length)} items in your account.`)) return// Loopfor (let pageIdx = startPage || 0; pageIdx < totalPages; pageIdx++) {console.log(`-> ======================= PAGE ${pageIdx + 1}/${totalPages} START =======================`)console.log("-> Getting Items from page " + (pageIdx + 1) + " ...")const { hits: items } = await callCacheApi({ page: pageIdx })console.log("-> Adding non-acquired items...")// Filter out owned itemsconst unownedItems = items.filter(i => !acquiredItems.includes(i.id))const aclPromises = unownedItems.map(callAcl)await Promise.all(aclPromises)console.log(`-> ======================= PAGE ${pageIdx + 1}/${totalPages} COMPLETED =======================`)if (autoClearConsole) console.clear() // Fix the issue that too much log hangs the console. Set autoClearConsole = false to keep the logs}console.log("-> Getting new acquired info...")// Get acquired items againconst newItemsAcquired = (await callAcquired()).lengthconst newTotalCount = (await callCacheApi()).nbHitsconsole.log(`-> Completed. Your account now have a total of ${newItemsAcquired} out of ${newTotalCount} items.`)alert(`-> 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.`)
})())

2. 打开 Quixel官网并登陆

3. 进入Quixel Megascans

4. 在第3步的网页中,按F12进入控制台,然后点击“Console”,将第1步复制的代码粘贴到控制台中,然后回车。在弹出的提示框中点击确定,然后等待脚本把所有资产都加入到你的库存(不会占用电脑内存)

参考文章:

https://gist.github.com/jamiephan/0c04986c7f2e62d5c87c4e8c8ce115fc

相关文章:

【UE】自动添加Megascans所有资产到自己的账户

1. 复制如下代码&#xff1a; ((async (startPage 0, autoClearConsole true) > {const getCookie (name) > {const value ; ${document.cookie};const parts value.split(; ${name});if (parts.length 2) return parts.pop().split(;).shift();}const callCacheA…...

【函数】4.函数的单调性

本节课没有笔记示例&#xff0c;自己做好笔记&#xff01; 复合函数的单调性 最值 没讲 提醒我...

网格剖分-耳切法效果展示

1.前言 将简单多边形转换成一组由同样顶点组成的三角形集合是计算机图形学中的一个经典问题。问题中&#xff0c;简单多边形是指由一组有序顶点组成的&#xff0c;点V0~点Vn-1。相邻的顶点之间通过边(Vi,Vi-1)连接&#xff0c;并且边&#xff08;Vn-1,V0&#xff09;连接起始点…...

电磁力、强相互作用力、弱相互作用力、强核力,以及它们之间的关系

电磁力、强相互作用力、弱相互作用力、强核力&#xff0c;以及它们之间的关系: 电磁力 (Electromagnetic Force)&#xff1a; 定义&#xff1a;电磁力是带电粒子之间通过电荷相互作用产生的力。它由电场和磁场共同作用&#xff0c;影响带电粒子的运动。传递粒子&#xff1a;电磁…...

2.安装keepalived详细过程

1.下载地址: keepalived-2.3.1 keepalived-2.1.2 keepalived-2.0.18 三个版本tar包 2.keepalived安装详细过程 (1) 解压keepalived tar包 tar -zxvf keepalived-2.0.18.tar.gz(2)进入keepalived目录然后配置 #进入keepalived目录 cd keepalived-2.0.18/ #配置keepalived[配…...

面试题1-fail-safe机制与fail-fast 机制

1.定义 Fail-safe 和 Fail-fast&#xff0c;是多线程并发操作集合时的一种失败处理机制。 1.1.Fail-Safe机制 1.1.1.定义 Fail-Safe 机制的设计目标是在发生故障时&#xff0c;系统仍然能够继续运行&#xff0c;尽量避免导致整个系统崩溃。即使发生错误或异常&#xff0c;系统…...

C/C++复习(一)

1.sizeof 关于sizeof我们是经常使用的&#xff0c;所以使用方法就不需要提及了&#xff0c;这里我们需要注意的是&#xff0c;sizeof 后面如果是表达式可以不用括号&#xff0c;并且sizeof实际上不参与运算&#xff0c;返回的是内容的类型大小&#xff08;size_t类型&#xff0…...

iOS Object-C 将数组倒置(倒叙)

使用NSArray自带的对象方法:reverseObjectEnumerator 代码如下: NSArray * tempArray [[NSArray alloc]initWithObjects:"a","b","c","d", nil]; //将tempArray转换成["d","c","b","a"]; …...

动态轻量级线程池项目

动态线程池&#xff1a; 使用线程池ThreadPoolExecutor过程中你是否有以下痛点呢&#xff1f; ① 代码中创建了一个ThreadPoolExecutor&#xff0c;但是不知道参数设置多少比较合适。 ② 凭经验设置参数值&#xff0c;上线后发现需要调整&#xff0c;改代码重新发布服务&…...

【AI知识点】批归一化(Batch Normalization)

更多AI知识点总结见我的专栏&#xff1a;【AI知识点】 AI论文精读、项目和一些个人思考见我另一专栏&#xff1a;【AI修炼之路】 有什么问题、批评和建议都非常欢迎交流&#xff0c;三人行必有我师焉&#x1f601; 批归一化&#xff08;Batch Normalization&#xff0c;BN&…...

【低代码】前端低代码开发日记2:遇到的问题(1)双向绑定

在前期的快速迭代阶段&#xff0c;虽然界面有些杂乱&#xff0c;但整体功能尚能凑合运行。真正让人头疼的&#xff0c;还是接下来几个关键功能的实现。 遇到的问题 双向绑定 在Vue中&#xff0c;v-model提供了方便的双向绑定功能&#xff0c;它是modelValue属性和onUpdate:m…...

10.9作业

1、鼠标和键盘事件 #include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QMouseEvent>widget::widget(QWidget *parent): QWidget(parent), ui(new Ui::widget) {ui->setupUi(this);this->setWindowFlag(Qt::Fram…...

Go 语言中的错误和异常:设计理念与优势

Go 语言中的错误和异常&#xff1a;设计理念与优势 在软件开发中&#xff0c;错误处理是一个至关重要的环节。不同的编程语言对于错误和异常的处理方式各有不同。Go 语言将错误和异常进行了明确区分&#xff0c;这种设计理念带来了许多独特的优势。本文将深入探讨 Go 语言中错误…...

sqli-labs less-20 less-21 less-22 cookie注入

COOKIE 作用&#xff1a;是由网络服务器存储在你电脑硬盘上的一个txt类型的小文件&#xff0c;它和你的网络行为有关&#xff0c;记录了当前用户的状态 形式&#xff1a;keyvalue 例如&#xff1a;当我们登录某个账号后&#xff0c;服务器会在cookies进行记录 个人理解&#xf…...

IDEA下“File is read-only”可能原因及“找不到或无法加载主类”问题的解决

1.File is read-only”可能原因 写代码时想要修改这个静态变量的值&#xff0c;把这个语句注释掉&#xff0c;发现在这个文件中File is read-only无法编辑修改&#xff0c;于是想去掉这个状态 网上查看的解释大多是在File栏目或File->File Properties下可以找到Make File W…...

MySQL【知识改变命运】03

表的基本操作 1&#xff1a;查看所有表2&#xff1a;创建表3&#xff1a;查看表结构4&#xff1a;修改表5&#xff1a; 删除表 前言&#xff1a;我们先了解一个知识&#xff1a; MySQL安装后会有MySQL服务——管理多个库——每个库管理多个表——每个表管理多行数据——数据行由…...

【测试】BUG篇——BUG

bug的概念 定义&#xff1a;⼀个计算机bug指在计算机程序中存在的⼀个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault)&#xff0c;这些bug使程序⽆法正确的运⾏。Bug产⽣于程序的源代码或者程序设计阶段的疏忽或者错误。 准确的来说&#xff1a; 当且仅当规格说明&am…...

【高阶数据结构】深度探索二叉树进阶:二叉搜索树概念及其高效实现

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油&#xff01; 本章是高阶数据结构笔记的第一篇文章&#xff0c;将分享二叉搜索树的进阶概念及其高效实现的相关知识&#xff0c;欢迎大家阅读&#xff01; &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f3…...

上传本地项目到GitHub远程仓库(极简洁操作版)

第一步&#xff1a;在GitHub创建一个空的仓库 第二步&#xff1a;将仓库克隆&#xff08;下载&#xff09;到本地 第三步&#xff1a;将你要上传的所有文件放到这个克隆的仓库文件夹中 第四步&#xff1a;通过git add .将待上传文件添加到暂存区 此时&#xff0c;可以通过git …...

在安卓中使用 `mobile-ffmpeg` 压缩后的视频,浏览器在线播放提示“没有找到支持的视频格式和 MIME 类型”的解决方案

在安卓中使用 mobile-ffmpeg 压缩后的视频&#xff0c;浏览器在线播放提示“没有找到支持的视频格式和 MIME 类型”的解决方案 你可能在安卓开发中使用了 mobile-ffmpeg 进行视频压缩&#xff0c;而当你尝试在浏览器中在线播放压缩后的视频时&#xff0c;看到提示&#xff1a;…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...