Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var rp = require('request-promise');
- rp({
- uri:"https://fnbr.co/api/shop",
- headers: {
- "x-api-key":"MY API"
- }
- }),
- jimp.read("./Images/shopBack.jpg"),
- jimp.read("./Images/Rarities/uncommon.png"),
- jimp.read("./Images/Rarities/rare.png"),
- jimp.read("./Images/Rarities/epic.png"),
- jimp.read("./Images/Rarities/legendary.png"),
- jimp.read("./Images/backdrop.png"),
- jimp.loadFont("./Fonts/Burbank32.fnt"),
- jimp.loadFont("./Fonts/Burbank28.fnt"),
- jimp.loadFont("./Fonts/Burbank60.fnt"),
- jimp.loadFont("./Fonts/Burbank96.fnt")
- ])
- .then(values => {
- let [, shopImage, uncommonImage, rareImage, epicImage, legendaryImage, backDrop, font32, font28, titleFont, mainTitle] = values;
- let imageMap = {uncommon: uncommonImage, rare: rareImage, epic: epicImage, legendary: legendaryImage};
- let shop = JSON.parse(values[0]);
- let daily = shop.data.daily;
- let featured = shop.data.featured;
- let dailyImgs = Promise.all(daily.map(obj => jimp.read(obj.images.icon)));
- let featImgs = Promise.all(featured.map(obj => jimp.read(obj.images.icon)));
- return Promise.all([
- dailyImgs,
- featImgs,
- values,
- daily,
- featured,
- imageMap
- ]);
- })
- .then(shopImages => {
- let [dailyImgs, featImgs, [, shopImage,,,,, backDrop, font32, font28, titleFont, mainTitle], daily, featured, imageMap] = shopImages;
- let i = 0;
- let iconSize = 225;
- let rarityDiff = 25;
- let xPad = 100;
- let yPad = 250;
- let columns = 3;
- let infoBoxHeight = 80;
- let width = shopImage.bitmap.width, height = shopImage.bitmap.height;
- let Title = "Fortnite Battle Royale Item Shop";
- let titleWidth = measureText(mainTitle, Title);
- let dailyWidth = measureText(titleFont, "Daily Items");
- let featuredWidth = measureText(titleFont, "Featured Items");
- shopImage.print(mainTitle, Math.floor(width / 2 - titleWidth / 2), 50, Title)
- .print(titleFont, Math.floor((iconSize*columns + rarityDiff*3 + xPad) / 2 - dailyWidth / 2), yPad-65, "Daily Items")
- .print(titleFont, Math.floor(width-(iconSize*columns + rarityDiff*3 + xPad) / 2 - featuredWidth / 2), yPad-65, "Featured Items");
- dailyImgs.map(x => {
- let itemNameWidth = measureText(font32, daily[i].name);
- let itemPriceWidth = measureText(font28, daily[i].price + " V-Bucks");
- x.resize(iconSize, iconSize);
- let infoBox = backDrop.clone()
- .resize(iconSize, infoBoxHeight)
- .print(font32, Math.floor(iconSize / 2 - itemNameWidth / 2), 5, daily[i].name)
- .print(font28, Math.floor(iconSize / 2 - itemPriceWidth / 2), 40, daily[i].price + " V-Bucks");
- let rarityImage = imageMap[daily[i].rarity]
- .clone()
- .resize(iconSize, iconSize)
- .composite(x, 0, 0)
- .composite(infoBox, 0, iconSize-infoBoxHeight);
- shopImage.composite(rarityImage, (i%columns)*(iconSize+rarityDiff)+xPad, Math.floor(i/columns)*(iconSize+rarityDiff)+yPad);
- i++;
- });
- i = 0;
- featImgs.map(x => {
- let itemNameWidth = measureText(font32, featured[i].name);
- let itemPriceWidth = measureText(font28, featured[i].price + " V-Bucks");
- x.resize(iconSize, iconSize);
- let infoBox = backDrop.clone()
- .resize(iconSize, infoBoxHeight)
- .print(font32, Math.floor(iconSize / 2 - itemNameWidth / 2), 5, featured[i].name)
- .print(font28, Math.floor(iconSize / 2 - itemPriceWidth / 2), 40, featured[i].price + " V-Bucks");
- let rarityImage = imageMap[featured[i].rarity]
- .clone()
- .resize(iconSize, iconSize)
- .composite(x, 0, 0)
- .composite(infoBox, 0, iconSize-infoBoxHeight);
- shopImage.composite(rarityImage, width-((i%columns)*(iconSize+rarityDiff)+xPad*2+(iconSize+rarityDiff)/2), Math.floor(i/columns)*(iconSize+rarityDiff)+yPad);
- i++;
- });
- shopImage.quality(100)
- .write("./Shop.jpg");
- console.log(chalk.blue("Successfully created and saved shop image to ./Shop.jpg"));
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement