Ayogiakbar

QR CODE GENERATOR

Oct 2nd, 2025
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Author: Gienetic
  2.  
  3. const axios = require("axios");
  4. const FormData = require("form-data");
  5. const fs = require("fs");
  6. const path = require("path");
  7.  
  8. async function generatorqrtext(
  9.   text = "halo dunia",
  10.   logoPath = null,
  11.   options = {}
  12. ) {
  13.   try {
  14.     const {
  15.       bodyColor = "#000000",
  16.       bgColor = "#FFFFFF",
  17.       gradientColor1 = bodyColor,
  18.       gradientColor2 = "#FFFFFF",
  19.       eye1Color = "#000000",
  20.       eye2Color = "#000000",
  21.       eye3Color = "#000000",
  22.       eyeBall1Color = "#000000",
  23.       eyeBall2Color = "#000000",
  24.       eyeBall3Color = "#000000",
  25.       body = "circle",
  26.       eye = "frame5",
  27.       eyeBall = "ball15",
  28.       gradientType = "linear",
  29.       gradientOnEyes = true,
  30.       logoMode = "clean",
  31.       size = 1025,
  32.       file = "png"
  33.     } = options;
  34.  
  35.     let uploadedLogo = null;
  36.  
  37.     if (logoPath) {
  38.       const form = new FormData();
  39.       form.append("file", fs.createReadStream(path.resolve(logoPath)));
  40.  
  41.       const upload = await axios.post(
  42.         "https://api.qrcode-monkey.com/qr/uploadimage",
  43.         form,
  44.         {
  45.           headers: {
  46.             ...form.getHeaders(),
  47.             origin: "https://www.qrcode-monkey.com",
  48.             referer: "https://www.qrcode-monkey.com/",
  49.           },
  50.         }
  51.       );
  52.  
  53.       uploadedLogo = upload.data.file;
  54.     }
  55.  
  56.     const payload = {
  57.       data: text,
  58.       config: {
  59.         body,
  60.         eye,
  61.         eyeBall,
  62.         erf1: ["fh"],
  63.         erf2: [],
  64.         erf3: ["fh", "fv"],
  65.         brf1: [],
  66.         brf2: [],
  67.         brf3: [],
  68.         bodyColor,
  69.         bgColor,
  70.         eye1Color,
  71.         eye2Color,
  72.         eye3Color,
  73.         eyeBall1Color,
  74.         eyeBall2Color,
  75.         eyeBall3Color,
  76.         gradientColor1,
  77.         gradientColor2,
  78.         gradientType,
  79.         gradientOnEyes,
  80.         ...(uploadedLogo && {
  81.           logo: uploadedLogo,
  82.           logoMode,
  83.         }),
  84.       },
  85.       size,
  86.       download: "imageUrl",
  87.       file,
  88.     };
  89.  
  90.     const res = await axios.post(
  91.       "https://api.qrcode-monkey.com/qr/custom",
  92.       payload,
  93.       {
  94.         headers: {
  95.           "content-type": "text/plain;charset=UTF-8",
  96.           origin: "https://www.qrcode-monkey.com",
  97.           referer: "https://www.qrcode-monkey.com/",
  98.         },
  99.       }
  100.     );
  101.  
  102.     const imageUrl = "https:" + res.data.imageUrl;
  103.     const img = await axios.get(imageUrl, { responseType: "arraybuffer" });
  104.     const outputPath = path.resolve("qrcode.png");
  105.     fs.writeFileSync(outputPath, img.data);
  106.  
  107.     return outputPath;
  108.   } catch (err) {
  109.     throw new Error("Gagal generate QR: " + err.message);
  110.   }
  111. }
  112.  
  113. module.exports = generatorqrtext;
  114.  
Advertisement
Add Comment
Please, Sign In to add comment