millswelbeck148/SireimadeBotPublic · Bot Template
AISireImade appears to be a Telegram automation bot. Commands include /start, /about, /support, /id, /admin, /ban, /unban, /x. Observed in code: messaging, keyboards, games.
Utilityutility
112 commands3 envUpdated 2h agoCreated Aug 27, 2026
commands/_tools.js
javascript · 672 lines
1/**#command2name: /tools3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ==========================================================13// 🎨 GIFT AI — /tools14// ✨ ONE-BY-ONE FONT STYLE GENERATOR15// 💜 BEAUTIFUL • CLEAN • ATTRACTIVE • ERROR-SAFE16//17// Usage:18// /tools Gift AI19//20// Features:21// • Gets styles from Prexzy22// • Sends fonts one by one23// • Attractive individual messages24// • HTML-safe output25// • Handles multiple API response formats26// • Prevents Telegram message-length errors27// • Replies directly to /tools28// ==========================================================29 30 31// ==========================================================32// 🛡️ SAFETY CHECK33// ==========================================================34 35if (!user) {36 return;37}38 39 40// ==========================================================41// 📝 GET INPUT42// ==========================================================43 44var input = String(45 params || ""46).trim();47 48 49// ==========================================================50// 👤 GET USER NAME51// ==========================================================52 53var userName = "there";54 55try {56 57 userName =58 user.first_name ||59 (request && request.from && request.from.first_name) ||60 "there";61 62} catch (e) {63 64 userName = "there";65 66}67 68 69// ==========================================================70// 📨 GET COMMAND MESSAGE ID71// ==========================================================72 73var messageId = "";74 75try {76 77 messageId =78 request.message_id ||79 request.id ||80 "";81 82} catch (e) {83 84 messageId = "";85 86}87 88 89// ==========================================================90// 🧹 HTML ESCAPE FUNCTION91// ==========================================================92 93function escapeHTML(text) {94 95 return String(text || "")96 .replace(/&/g, "&")97 .replace(/</g, "<")98 .replace(/>/g, ">")99 .replace(/"/g, """)100 .replace(/'/g, "'");101 102}103 104 105// ==========================================================106// ❌ NO INPUT107// ==========================================================108 109if (!input) {110 111 var helpData = {112 113 text:114 "╭━━━━━━━━━━━━━━━━━━╮\n" +115 " 🎨 <b>GIFT TOOLS</b>\n" +116 "╰━━━━━━━━━━━━━━━━━━╯\n\n" +117 118 "Hey <b>" +119 escapeHTML(userName) +120 "</b> 👋💜\n\n" +121 122 "Give me some text and I'll turn it into beautiful fonts. ✨\n\n" +123 124 "💡 <b>Usage</b>\n" +125 "<code>/tools your text</code>\n\n" +126 127 "🌸 <b>Example</b>\n" +128 "<code>/tools Gift AI</code>\n\n" +129 130 "✨ I'll send each font separately so you can easily copy the one you like.",131 132 parse_mode: "HTML"133 134 };135 136 137 if (messageId) {138 139 helpData.reply_to_message_id =140 messageId;141 142 }143 144 145 Bot.sendMessage(helpData);146 147 return;148}149 150 151// ==========================================================152// ⏳ PROCESSING MESSAGE153// ==========================================================154 155var processingData = {156 157 text:158 "🎨 <b>GIFT IS STYLING...</b> ✨\n\n" +159 160 "💜 Working on:\n" +161 "<code>" +162 escapeHTML(input) +163 "</code>\n\n" +164 165 "✨ Finding the prettiest fonts for you... 😏",166 167 parse_mode: "HTML"168 169};170 171 172if (messageId) {173 174 processingData.reply_to_message_id =175 messageId;176 177}178 179 180Bot.sendMessage(processingData);181 182 183// ==========================================================184// 🌐 PREXZY API185// ==========================================================186 187var url =188 "https://prexzyapis.com/tools/allstyles?text=" +189 encodeURIComponent(input);190 191 192// ==========================================================193// 📡 CALL API194// ==========================================================195 196try {197 198 var res = await HTTP.get(199 url,200 {201 timeout: 15000,202 responseType: "json"203 }204 );205 206 207 // ========================================================208 // 🔍 GET RESPONSE DATA209 // ========================================================210 211 if (!res || !res.data) {212 213 Bot.sendMessage({214 215 text:216 "❌ <b>GIFT TOOLS</b>\n\n" +217 "The styling service didn't return anything.\n\n" +218 "🔄 Try again in a moment.",219 220 parse_mode: "HTML",221 222 reply_to_message_id:223 messageId || undefined224 225 });226 227 return;228 }229 230 231 var data = res.data;232 233 234 // ========================================================235 // 📦 FIND STYLE ARRAY236 // ========================================================237 238 var styles = null;239 240 241 // Direct array242 243 if (Array.isArray(data)) {244 245 styles = data;246 247 }248 249 250 // Common API formats251 252 if (!styles && data && Array.isArray(data.styles)) {253 254 styles = data.styles;255 256 }257 258 259 if (!styles && data && Array.isArray(data.data)) {260 261 styles = data.data;262 263 }264 265 266 if (!styles && data && Array.isArray(data.results)) {267 268 styles = data.results;269 270 }271 272 273 if (!styles && data && Array.isArray(data.result)) {274 275 styles = data.result;276 277 }278 279 280 // Nested data281 282 if (283 !styles &&284 data &&285 data.data &&286 typeof data.data === "object"287 ) {288 289 if (Array.isArray(data.data.styles)) {290 291 styles = data.data.styles;292 293 }294 295 else if (Array.isArray(data.data.results)) {296 297 styles = data.data.results;298 299 }300 301 else if (Array.isArray(data.data.result)) {302 303 styles = data.data.result;304 305 }306 307 }308 309 310 // ========================================================311 // ❌ NO STYLES312 // ========================================================313 314 if (315 !Array.isArray(styles) ||316 styles.length === 0317 ) {318 319 Bot.sendMessage({320 321 text:322 "❌ <b>GIFT TOOLS</b>\n\n" +323 324 "I couldn't find any font styles for:\n" +325 326 "<code>" +327 escapeHTML(input) +328 "</code>\n\n" +329 330 "🔄 Try a different text.",331 332 parse_mode: "HTML",333 334 reply_to_message_id:335 messageId || undefined336 337 });338 339 return;340 }341 342 343 // ========================================================344 // 📊 PROCESS STYLES345 // ========================================================346 347 var validStyles = [];348 349 350 for (351 var i = 0;352 i < styles.length;353 i++354 ) {355 356 var style = styles[i];357 358 if (359 style === null ||360 style === undefined361 ) {362 continue;363 }364 365 366 var styledText = "";367 var styleName = "";368 369 370 // ------------------------------------------------------371 // OBJECT RESPONSE372 // ------------------------------------------------------373 374 if (375 typeof style === "object"376 ) {377 378 styledText =379 style.styled_text ||380 style.styledText ||381 style.text ||382 style.result ||383 style.value ||384 style.output ||385 style.font ||386 style.content ||387 "";388 389 390 styleName =391 style.style_name ||392 style.styleName ||393 style.name ||394 style.title ||395 style.label ||396 "";397 398 }399 400 401 // ------------------------------------------------------402 // STRING RESPONSE403 // ------------------------------------------------------404 405 else {406 407 styledText =408 String(style);409 410 }411 412 413 styledText =414 String(415 styledText || ""416 ).trim();417 418 419 styleName =420 String(421 styleName || ""422 ).trim();423 424 425 // ------------------------------------------------------426 // IGNORE EMPTY427 // ------------------------------------------------------428 429 if (!styledText) {430 continue;431 }432 433 434 // ------------------------------------------------------435 // DEFAULT STYLE NAME436 // ------------------------------------------------------437 438 if (!styleName) {439 440 styleName =441 "Font Style " +442 (validStyles.length + 1);443 444 }445 446 447 validStyles.push({448 449 name: styleName,450 451 text: styledText452 453 });454 455 }456 457 458 // ========================================================459 // ❌ NO USABLE STYLES460 // ========================================================461 462 if (463 validStyles.length === 0464 ) {465 466 Bot.sendMessage({467 468 text:469 "❌ <b>GIFT TOOLS</b>\n\n" +470 471 "The API responded, but the returned fonts couldn't be read.\n\n" +472 473 "🔄 Try again.",474 475 parse_mode: "HTML",476 477 reply_to_message_id:478 messageId || undefined479 480 });481 482 return;483 }484 485 486 // ========================================================487 // 👤 SAFE USER NAME488 // ========================================================489 490 var safeName =491 escapeHTML(userName);492 493 494 // ========================================================495 // 📝 SEND EACH FONT SEPARATELY496 // ========================================================497 498 for (499 var j = 0;500 j < validStyles.length;501 j++502 ) {503 504 var current =505 validStyles[j];506 507 508 var number =509 j + 1;510 511 512 var safeStyleName =513 escapeHTML(514 current.name515 );516 517 518 var safeStyledText =519 escapeHTML(520 current.text521 );522 523 524 // ------------------------------------------------------525 // BEAUTIFUL FONT MESSAGE526 // ------------------------------------------------------527 528 var fontMessage =529 530 "╭━━━━━━━━━━━━━━━━━━╮\n" +531 532 " ✨ <b>GIFT FONT #" +533 number +534 "</b> ✨\n" +535 536 "╰━━━━━━━━━━━━━━━━━━╯\n\n" +537 538 "🎨 <b>" +539 safeStyleName +540 "</b>\n\n" +541 542 "💜 <b>Your Text</b>\n" +543 544 "┌──────────────────\n" +545 546 "│ " +547 safeStyledText +548 "\n" +549 550 "└──────────────────\n\n" +551 552 "📋 <i>Tap and hold the text to copy</i>\n\n" +553 554 "━━━━━━━━━━━━━━━━━━\n" +555 556 "💫 <b>Gift AI Tools</b> • " +557 number +558 "/" +559 validStyles.length;560 561 562 var sendData = {563 564 text:565 fontMessage,566 567 parse_mode:568 "HTML"569 570 };571 572 573 // ------------------------------------------------------574 // FIRST FONT REPLIES TO /TOOLS575 // ------------------------------------------------------576 577 if (578 j === 0 &&579 messageId580 ) {581 582 sendData.reply_to_message_id =583 messageId;584 585 }586 587 588 // ------------------------------------------------------589 // SEND FONT590 // ------------------------------------------------------591 592 try {593 594 Bot.sendMessage(595 sendData596 );597 598 } catch (sendError) {599 600 console.log(601 "GIFT TOOLS FONT SEND ERROR:",602 sendError603 );604 605 }606 607 }608 609 610 // ========================================================611 // 🎀 FINAL FOOTER612 // ========================================================613 614 Bot.sendMessage({615 616 text:617 "╭━━━━━━━━━━━━━━━━━━╮\n" +618 " 💜 <b>ALL DONE</b> ✨\n" +619 "╰━━━━━━━━━━━━━━━━━━╯\n\n" +620 621 "Hey <b>" +622 safeName +623 "</b> 😏\n\n" +624 625 "🎨 I made <b>" +626 validStyles.length +627 "</b> font styles for you.\n\n" +628 629 "💜 Pick your favorite and copy it.\n" +630 "✨ Don't say Gift never spoils you. 🤭",631 632 parse_mode: "HTML"633 634 });635 636 637} catch (error) {638 639 // ========================================================640 // 🚨 ERROR HANDLER641 // ========================================================642 643 console.log(644 "GIFT TOOLS ERROR:",645 error646 );647 648 649 Bot.sendMessage({650 651 text:652 "❌ <b>GIFT TOOLS</b>\n\n" +653 654 "Oops <b>" +655 escapeHTML(userName) +656 "</b> 😭💜\n\n" +657 658 "The font service is having a little moment.\n\n" +659 660 "🔄 <b>Try /tools again in a few seconds.</b>\n\n" +661 662 "━━━━━━━━━━━━━━━━━━\n" +663 "💜 <i>Gift is still cooking...</i>",664 665 parse_mode: "HTML",666 667 reply_to_message_id:668 messageId || undefined669 670 });671 672}