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/_info.js
javascript · 633 lines
1/**#command2name: /info3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ==========================================================13// GIFT BOT — /info14// TELEGRAM USER INFORMATION15// SUPPORTS:16// /info17// /info <USER_ID>18// REPLY + /info19// ==========================================================20 21// ----------------------------------------------------------22// FIND TARGET USER23// ----------------------------------------------------------24 25var target = user;26var targetFromDatabase = false;27var requestedId = null;28 29// ----------------------------------------------------------30// GET COMMAND ARGUMENT31// ----------------------------------------------------------32 33var commandText = "";34 35try {36 commandText = String(37 request && request.message38 ? request.message.text || ""39 : ""40 );41} catch (e) {42 commandText = "";43}44 45// Remove /info from command46var parts = commandText.trim().split(/\s+/);47 48if (49 parts.length > 1 &&50 /^\d+$/.test(parts[1])51) {52 requestedId = String(parts[1]).trim();53}54 55// ----------------------------------------------------------56// ID LOOKUP57// ----------------------------------------------------------58 59if (requestedId) {60 61 var users = Bot.getProperty("broadcast_users");62 63 if (!Array.isArray(users)) {64 users = [];65 }66 67 for (var i = 0; i < users.length; i++) {68 69 var item = users[i];70 71 if (72 item === null ||73 item === undefined74 ) {75 continue;76 }77 78 var savedId = "";79 var savedUsername = "";80 var savedFirstName = "";81 var savedLastName = "";82 83 // ------------------------------------------------------84 // OLD DATABASE FORMAT85 // ------------------------------------------------------86 87 if (88 typeof item === "string" ||89 typeof item === "number"90 ) {91 92 savedId = String(item).trim();93 }94 95 // ------------------------------------------------------96 // NEW DATABASE FORMAT97 // ------------------------------------------------------98 99 else if (100 typeof item === "object" &&101 item !== null102 ) {103 104 savedId = String(item.id || "").trim();105 106 savedUsername =107 item.username108 ? String(item.username).trim()109 : "";110 111 savedFirstName =112 item.first_name113 ? String(item.first_name).trim()114 : "";115 116 savedLastName =117 item.last_name118 ? String(item.last_name).trim()119 : "";120 }121 122 // ------------------------------------------------------123 // MATCH ID124 // ------------------------------------------------------125 126 if (savedId === requestedId) {127 128 targetFromDatabase = true;129 130 target = {131 id: requestedId,132 telegramid: requestedId,133 134 username:135 savedUsername &&136 savedUsername !== "No username"137 ? savedUsername.replace(/^@/, "")138 : undefined,139 140 first_name:141 savedFirstName || "Unknown",142 143 last_name:144 savedLastName || ""145 };146 147 break;148 }149 }150 151 // --------------------------------------------------------152 // ID NOT FOUND153 // --------------------------------------------------------154 155 if (!targetFromDatabase) {156 157 Api.sendMessage({158 chat_id: chat.id,159 text:160 "❌ <b>USER NOT FOUND</b>\n\n" +161 162 "🆔 <b>ID:</b> <code>" +163 requestedId +164 "</code>\n\n" +165 166 "Gift doesn't have this Telegram ID " +167 "in her saved user database.\n\n" +168 169 "⚠️ Telegram does not allow Gift to " +170 "discover a person's private account details " +171 "from an arbitrary ID alone.",172 173 parse_mode: "HTML",174 reply_to_message_id:175 request.message_id176 });177 178 return;179 }180}181 182// ----------------------------------------------------------183// REPLY TARGET184// ----------------------------------------------------------185 186if (187 !requestedId &&188 request &&189 request.reply_to_message &&190 request.reply_to_message.from191) {192 193 target = request.reply_to_message.from;194}195 196// ----------------------------------------------------------197// BASIC USER INFORMATION198// ----------------------------------------------------------199 200var userId = String(201 target.id ||202 target.telegramid ||203 ""204);205 206if (!userId) {207 208 Api.sendMessage({209 chat_id: chat.id,210 text:211 "❌ <b>Unable to identify this user.</b>",212 213 parse_mode: "HTML",214 reply_to_message_id:215 request.message_id216 });217 218 return;219}220 221// ----------------------------------------------------------222// NAME223// ----------------------------------------------------------224 225var firstName =226 target.first_name ||227 "Unknown";228 229var lastName =230 target.last_name ||231 "";232 233var fullName = firstName;234 235if (lastName) {236 fullName += " " + lastName;237}238 239// ----------------------------------------------------------240// USERNAME241// ----------------------------------------------------------242 243var username = "No username";244 245if (246 target.username !== null &&247 target.username !== undefined &&248 String(target.username).trim() !== ""249) {250 251 username =252 String(target.username).trim();253 254 if (username.charAt(0) !== "@") {255 username = "@" + username;256 }257}258 259// ----------------------------------------------------------260// USERNAME STATUS261// ----------------------------------------------------------262 263var usernameStatus =264 username === "No username"265 ? "Not set"266 : "Available";267 268// ----------------------------------------------------------269// LANGUAGE270// ----------------------------------------------------------271 272var language =273 target.language_code ||274 "Unknown";275 276// ----------------------------------------------------------277// ACCOUNT TYPE278// ----------------------------------------------------------279 280var isBot =281 target.is_bot === true;282 283var accountType =284 isBot285 ? "Moderator 🤖"286 : "User 👤";287 288var rank =289 isBot290 ? "Moderator"291 : "User";292 293// ----------------------------------------------------------294// PREMIUM STATUS295// ----------------------------------------------------------296 297var premium = "Unknown";298 299if (300 typeof target.is_premium !==301 "undefined"302) {303 304 premium =305 target.is_premium306 ? "Yes ⭐"307 : "No";308}309 310// ----------------------------------------------------------311// FIRST SEEN / LAST SEEN312// ----------------------------------------------------------313 314var seenKey =315 "GIFT_SEEN_" + userId;316 317var seen =318 Bot.getProperty(seenKey);319 320var now = Date.now();321 322if (323 !seen ||324 typeof seen !== "object"325) {326 327 seen = {328 first_seen: now,329 last_seen: now330 };331 332} else {333 334 seen.last_seen = now;335}336 337Bot.setProperty(338 seenKey,339 seen,340 "json"341);342 343// ----------------------------------------------------------344// FORMAT DATE345// ----------------------------------------------------------346 347function formatDate(timestamp) {348 349 if (!timestamp) {350 return "Unknown";351 }352 353 try {354 355 var date =356 new Date(timestamp);357 358 return (359 date.getFullYear() +360 "-" +361 String(362 date.getMonth() + 1363 ).padStart(2, "0") +364 "-" +365 String(366 date.getDate()367 ).padStart(2, "0") +368 " " +369 String(370 date.getHours()371 ).padStart(2, "0") +372 ":" +373 String(374 date.getMinutes()375 ).padStart(2, "0")376 );377 378 } catch (e) {379 380 return "Unknown";381 }382}383 384// ----------------------------------------------------------385// GROUP STATUS386// ----------------------------------------------------------387 388var chatStatus =389 "Not checked";390 391var restriction =392 "Not available";393 394try {395 396 if (397 chat &&398 chat.id399 ) {400 401 var member =402 Api.getChatMember({403 chat_id: chat.id,404 user_id: userId405 });406 407 if (408 member &&409 member.status410 ) {411 412 var status =413 member.status;414 415 if (status == "creator") {416 417 chatStatus =418 "Owner 👑";419 }420 421 else if (422 status == "administrator"423 ) {424 425 chatStatus =426 "Administrator 🛡️";427 }428 429 else if (430 status == "member"431 ) {432 433 chatStatus =434 "Member ✅";435 }436 437 else if (438 status == "restricted"439 ) {440 441 chatStatus =442 "Restricted ⚠️";443 }444 445 else if (446 status == "left"447 ) {448 449 chatStatus =450 "Left the group";451 }452 453 else if (454 status == "kicked"455 ) {456 457 chatStatus =458 "Banned 🚫";459 }460 461 else {462 463 chatStatus =464 status;465 }466 467 if (468 status == "restricted"469 ) {470 471 restriction =472 "Restricted in this chat ⚠️";473 }474 475 else if (476 status == "kicked"477 ) {478 479 restriction =480 "Banned from this chat 🚫";481 }482 483 else {484 485 restriction =486 "None ✅";487 }488 }489 }490 491} catch (e) {492 493 chatStatus =494 "Unavailable";495 496 restriction =497 "Unavailable";498}499 500// ----------------------------------------------------------501// ESCAPE HTML502// ----------------------------------------------------------503 504function escapeHTML(value) {505 506 return String(value)507 .replace(/&/g, "&")508 .replace(/</g, "<")509 .replace(/>/g, ">")510 .replace(/"/g, """)511 .replace(/'/g, "'");512}513 514// ----------------------------------------------------------515// SAFE DISPLAY VALUES516// ----------------------------------------------------------517 518var safeName =519 escapeHTML(fullName);520 521var safeUsername =522 escapeHTML(username);523 524var safeLanguage =525 escapeHTML(language);526 527// ----------------------------------------------------------528// CLICKABLE USER MENTION529// ----------------------------------------------------------530 531var mention =532 '<a href="tg://user?id=' +533 userId +534 '">' +535 safeName +536 "</a>";537 538// ----------------------------------------------------------539// DATABASE STATUS540// ----------------------------------------------------------541 542var databaseStatus =543 targetFromDatabase544 ? "Registered ✅"545 : "Current Telegram user";546 547// ----------------------------------------------------------548// OUTPUT549// ----------------------------------------------------------550 551var text =552 "🔎 <b>TELEGRAM USER INFO</b>\n" +553 "━━━━━━━━━━━━━━━━━━━━\n\n" +554 555 "👤 <b>Name:</b> " +556 mention + "\n" +557 558 "🆔 <b>ID:</b> <code>" +559 userId +560 "</code>\n" +561 562 "🔗 <b>Username:</b> " +563 safeUsername + "\n" +564 565 "📛 <b>Username Status:</b> " +566 usernameStatus + "\n" +567 568 "🌐 <b>Language:</b> " +569 safeLanguage + "\n" +570 571 "⭐ <b>Premium:</b> " +572 premium + "\n" +573 574 "🤖 <b>Account Type:</b> " +575 accountType + "\n" +576 577 "🏷️ <b>Rank:</b> " +578 rank + "\n" +579 580 "💾 <b>Database:</b> " +581 databaseStatus + "\n\n" +582 583 "🕐 <b>First Seen:</b> " +584 formatDate(585 seen.first_seen586 ) + "\n" +587 588 "👀 <b>Last Seen:</b> " +589 formatDate(590 seen.last_seen591 ) + "\n\n" +592 593 "🛡️ <b>GROUP STATUS</b>\n" +594 595 "👑 <b>Status:</b> " +596 chatStatus + "\n" +597 598 "⚠️ <b>Restriction:</b> " +599 restriction;600 601// ----------------------------------------------------------602// SEND RESULT603// ----------------------------------------------------------604 605var replyId =606 request &&607 request.message_id608 ? request.message_id609 : undefined;610 611if (612 !requestedId &&613 request &&614 request.reply_to_message &&615 request.reply_to_message.message_id616) {617 618 replyId =619 request.reply_to_message.message_id;620}621 622var sendData = {623 chat_id: chat.id,624 text: text,625 parse_mode: "HTML"626};627 628if (replyId) {629 sendData.reply_to_message_id =630 replyId;631}632 633Api.sendMessage(sendData);