55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
|
const axios = require("axios").default;
|
||
|
|
||
|
// https://create.roblox.com/docs/reference/engine/enums/AssetType
|
||
|
const AssetType = {
|
||
|
Image: 1,
|
||
|
TShirt: 2,
|
||
|
Audio: 3,
|
||
|
Mesh: 4,
|
||
|
Lua: 5,
|
||
|
Hat: 8,
|
||
|
Place: 9,
|
||
|
Model: 10,
|
||
|
Shirt: 11,
|
||
|
Pants: 12,
|
||
|
Decal: 13,
|
||
|
Head: 17,
|
||
|
Face: 18,
|
||
|
Gear: 19,
|
||
|
Badge: 21,
|
||
|
Animation: 24,
|
||
|
GamePass: 34,
|
||
|
Plugin: 38,
|
||
|
MeshPart: 40
|
||
|
};
|
||
|
|
||
|
async function getAssetInfo(assetId) {
|
||
|
const res = await axios.get("https://apis.roblox.com/toolbox-service/v1/items/details", {
|
||
|
params: {
|
||
|
assetIds: assetId
|
||
|
},
|
||
|
validateStatus: (status) => status === 403 || status === 404 || (status >= 200 && status < 300) // Allow 403/404 as a valid status (don't throw an error)
|
||
|
});
|
||
|
|
||
|
if (res.status < 200 || res.status > 300) {
|
||
|
return {
|
||
|
status: res.status
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const data = res.data.data;
|
||
|
const assetInfo = data[0];
|
||
|
|
||
|
return {
|
||
|
status: res.status,
|
||
|
id: assetId,
|
||
|
name: assetInfo.asset.name,
|
||
|
typeId: assetInfo.asset.typeId,
|
||
|
creatorId: assetInfo.creator.id,
|
||
|
price: assetInfo.product.price,
|
||
|
productId: assetInfo.product.productId,
|
||
|
forSale: assetInfo.product.isForSaleOrIsPublicDomain
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = { AssetType, getAssetInfo };
|