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
ProfileTelegram
112 commands3 envUpdated 2h agoCreated Aug 27, 2026
Back to folder

commands/_info.js

javascript · 633 lines

Raw
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, "&amp;")508    .replace(/</g, "&lt;")509    .replace(/>/g, "&gt;")510    .replace(/"/g, "&quot;")511    .replace(/'/g, "&#39;");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);