RpikMine/test_07robotPublic · Bot Template
AIБот приветствует пользователя фотографией и инлайн-кнопкой, предлагая сгенерировать короткий уникальный Telegram-username. Команда /generate_username использует встроенный словарь корневых слов по темам свет, космос, скорость и движение, чтобы составлять варианты имён. Бот ориентирован на подбор легко произносимых username без цифр и символов.
Utilityusername generatortelegram usernamerandomrussianinline keyboardphoto greeting
2 commands0 envUpdated 23d agoCreated Aug 12, 2026
commands/_generate_username.js
javascript · 549 lines
1/**#command2name: /generate_username3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ============================================================13// 1. КОРНИ14// ============================================================15 16var roots = [17 18 // Свет / энергия19 { text: "lum", meaning: "свет" },20 { text: "lux", meaning: "свет" },21 { text: "aur", meaning: "сияние" },22 { text: "sol", meaning: "солнце" },23 { text: "ray", meaning: "луч" },24 { text: "sun", meaning: "солнце" },25 { text: "gle", meaning: "блеск" },26 { text: "glow", meaning: "свечение" },27 { text: "dawn", meaning: "рассвет" },28 { text: "day", meaning: "день" },29 { text: "eve", meaning: "вечер" },30 31 // Космос32 { text: "ast", meaning: "звезда" },33 { text: "nova", meaning: "новая звезда" },34 { text: "orb", meaning: "орбита" },35 { text: "lun", meaning: "луна" },36 { text: "cos", meaning: "космос" },37 { text: "sky", meaning: "небо" },38 { text: "zen", meaning: "высота" },39 { text: "star", meaning: "звезда" },40 { text: "moon", meaning: "луна" },41 { text: "mars", meaning: "Марс" },42 { text: "void", meaning: "космическая пустота" },43 44 // Скорость / движение45 { text: "vel", meaning: "скорость" },46 { text: "vim", meaning: "энергия движения" },47 { text: "jet", meaning: "стремительность" },48 { text: "fly", meaning: "полёт" },49 { text: "run", meaning: "бег" },50 { text: "mov", meaning: "движение" },51 { text: "drf", meaning: "дрейф" },52 { text: "dash", meaning: "рывок" },53 { text: "rush", meaning: "стремительное движение" },54 { text: "swift", meaning: "быстрота" },55 { text: "flux", meaning: "поток" },56 { text: "flow", meaning: "течение" },57 58 // Сила59 { text: "val", meaning: "отвага" },60 { text: "max", meaning: "максимум" },61 { text: "pow", meaning: "сила" },62 { text: "rex", meaning: "правитель" },63 { text: "tit", meaning: "титан" },64 { text: "dom", meaning: "власть" },65 { text: "fort", meaning: "мощь" },66 { text: "vig", meaning: "энергия" },67 { text: "iron", meaning: "железо" },68 { text: "core", meaning: "ядро" },69 { text: "bold", meaning: "смелость" },70 { text: "brav", meaning: "храбрость" },71 72 // Тьма / тайна73 { text: "mir", meaning: "тайна" },74 { text: "sha", meaning: "тень" },75 { text: "rav", meaning: "мрачность" },76 { text: "dus", meaning: "сумерки" },77 { text: "nok", meaning: "ночь" },78 { text: "obs", meaning: "тьма" },79 { text: "ven", meaning: "ядовитая сила" },80 { text: "dark", meaning: "тьма" },81 { text: "mist", meaning: "туман" },82 { text: "haze", meaning: "дымка" },83 { text: "grim", meaning: "мрачность" },84 { text: "shade", meaning: "тень" },85 86 // Природа87 { text: "oak", meaning: "дуб" },88 { text: "lea", meaning: "луг" },89 { text: "riv", meaning: "река" },90 { text: "sea", meaning: "море" },91 { text: "ice", meaning: "лёд" },92 { text: "fir", meaning: "лес" },93 { text: "ash", meaning: "пепел" },94 { text: "air", meaning: "воздух" },95 { text: "wind", meaning: "ветер" },96 { text: "rain", meaning: "дождь" },97 { text: "storm", meaning: "буря" },98 { text: "frost", meaning: "мороз" },99 { text: "leaf", meaning: "лист" },100 { text: "rose", meaning: "роза" },101 { text: "fern", meaning: "папоротник" },102 { text: "lake", meaning: "озеро" },103 { text: "wave", meaning: "волна" },104 105 // Технологии106 { text: "nex", meaning: "связь" },107 { text: "syn", meaning: "синхронность" },108 { text: "net", meaning: "сеть" },109 { text: "cod", meaning: "код" },110 { text: "bit", meaning: "цифровой мир" },111 { text: "dat", meaning: "данные" },112 { text: "log", meaning: "знание" },113 { text: "lin", meaning: "соединение" },114 { text: "cyb", meaning: "киберпространство" },115 { text: "byte", meaning: "цифровая информация" },116 { text: "tech", meaning: "технологии" },117 { text: "node", meaning: "узел сети" },118 { text: "link", meaning: "соединение" },119 { text: "sync", meaning: "синхронизация" },120 { text: "data", meaning: "данные" },121 122 // Жизнь / эмоции123 { text: "viv", meaning: "жизнь" },124 { text: "bio", meaning: "жизнь" },125 { text: "joy", meaning: "радость" },126 { text: "lov", meaning: "любовь" },127 { text: "ami", meaning: "дружба" },128 { text: "zen", meaning: "спокойствие" },129 { text: "hope", meaning: "надежда" },130 { text: "calm", meaning: "спокойствие" },131 { text: "kind", meaning: "доброта" },132 { text: "free", meaning: "свобода" },133 { text: "true", meaning: "истина" },134 { text: "wish", meaning: "желание" },135 { text: "dream", meaning: "мечта" },136 137 // Звук / искусство138 { text: "mel", meaning: "мелодия" },139 { text: "son", meaning: "звук" },140 { text: "art", meaning: "искусство" },141 { text: "vox", meaning: "голос" },142 { text: "tone", meaning: "тон" },143 { text: "beat", meaning: "ритм" },144 { text: "echo", meaning: "эхо" },145 146 // Абстрактные147 { text: "ver", meaning: "истина" },148 { text: "uni", meaning: "единство" },149 { text: "one", meaning: "единство" },150 { text: "new", meaning: "новизна" },151 { text: "evo", meaning: "изменение" },152 { text: "rise", meaning: "рост" },153 { text: "peak", meaning: "вершина" },154 { text: "edge", meaning: "грань" },155 { text: "meta", meaning: "изменение" }156];157 158 159// ============================================================160// 2. ОКОНЧАНИЯ161// ============================================================162 163var endings = [164 165 { text: "a", meaning: "лёгкость" },166 { text: "e", meaning: "мягкость" },167 { text: "i", meaning: "живость" },168 { text: "o", meaning: "движение" },169 { text: "u", meaning: "уникальность" },170 171 { text: "an", meaning: "характер" },172 { text: "ar", meaning: "свобода" },173 { text: "en", meaning: "спокойствие" },174 { text: "er", meaning: "движение" },175 { text: "in", meaning: "внутренняя сила" },176 { text: "ir", meaning: "скорость" },177 { text: "on", meaning: "сила" },178 { text: "or", meaning: "характер" },179 { text: "un", meaning: "тайна" },180 181 { text: "el", meaning: "свет" },182 { text: "al", meaning: "гармония" },183 { text: "il", meaning: "живость" },184 { text: "ol", meaning: "движение" },185 186 { text: "is", meaning: "энергия" },187 { text: "ix", meaning: "уникальность" },188 { text: "ex", meaning: "развитие" },189 { text: "ox", meaning: "мощность" },190 { text: "ax", meaning: "сила" },191 192 { text: "um", meaning: "глубина" },193 { text: "am", meaning: "спокойствие" },194 { text: "em", meaning: "мягкость" },195 196 { text: "io", meaning: "движение" },197 { text: "ia", meaning: "гармония" },198 { text: "eo", meaning: "свобода" }199];200 201 202// ============================================================203// 3. АТМОСФЕРЫ204// ============================================================205 206var themes = [207 208 { text: "ice", meaning: "лёд" },209 { text: "fire", meaning: "огонь" },210 { text: "sky", meaning: "небо" },211 { text: "void", meaning: "пустота" },212 { text: "dark", meaning: "тьма" },213 { text: "light", meaning: "свет" },214 { text: "frost", meaning: "мороз" },215 { text: "storm", meaning: "буря" },216 { text: "mist", meaning: "туман" },217 { text: "moon", meaning: "луна" },218 { text: "sun", meaning: "солнце" },219 { text: "star", meaning: "звезда" },220 { text: "forest", meaning: "лес" },221 { text: "ocean", meaning: "океан" },222 { text: "earth", meaning: "земля" },223 { text: "stone", meaning: "камень" },224 { text: "night", meaning: "ночь" },225 { text: "dawn", meaning: "рассвет" },226 { text: "dream", meaning: "мечта" },227 { text: "magic", meaning: "магия" }228];229 230 231// ============================================================232// 4. ТИПЫ СЕРВЕРА233// ============================================================234 235var serverTypes = [236 237 { text: "mc", meaning: "Minecraft" },238 { text: "play", meaning: "игровой сервер" },239 { text: "survival", meaning: "выживание" },240 { text: "pvp", meaning: "PvP" },241 { text: "sky", meaning: "небесный режим" },242 { text: "hub", meaning: "центральный сервер" },243 { text: "craft", meaning: "крафт и строительство" }244];245 246 247// ============================================================248// 5. ДОМЕННЫЕ ЗОНЫ249// ============================================================250 251var domains = [252 253 { text: "gg", meaning: "игровая культура" },254 { text: "me", meaning: "персональность" },255 { text: "net", meaning: "сеть" },256 { text: "fun", meaning: "развлечение" },257 { text: "world", meaning: "мир" },258 { text: "host", meaning: "сервер" },259 { text: "play", meaning: "игра" },260 { text: "dev", meaning: "разработка" },261 { text: "pro", meaning: "профессиональность" },262 { text: "online", meaning: "онлайн-мир" }263];264 265 266// ============================================================267// 6. РАНДОМНЫЙ ЭЛЕМЕНТ268// ============================================================269 270function randomItem(array) {271 return array[Math.floor(Math.random() * array.length)];272}273 274 275// ============================================================276// 7. СОЗДАНИЕ НАЗВАНИЯ277// ============================================================278 279function generateServerName() {280 281 var root = randomItem(roots);282 var ending = randomItem(endings);283 284 var pattern = Math.floor(Math.random() * 6);285 286 var name = "";287 var meaning = "";288 289 // root + ending290 if (pattern === 0) {291 292 name =293 root.text +294 ending.text;295 296 meaning =297 root.meaning +298 " + " +299 ending.meaning;300 }301 302 // root + ending + ending303 else if (pattern === 1) {304 305 var ending2 = randomItem(endings);306 307 name =308 root.text +309 ending.text +310 ending2.text;311 312 meaning =313 root.meaning +314 " + " +315 ending.meaning +316 " + " +317 ending2.meaning;318 }319 320 // root + vowel + ending321 else if (pattern === 2) {322 323 var vowels = ["a", "e", "i", "o", "u"];324 var vowel = randomItem(vowels);325 326 name =327 root.text +328 vowel +329 ending.text;330 331 meaning =332 root.meaning +333 " + " +334 ending.meaning;335 }336 337 // first 3 root + ending338 else if (pattern === 3) {339 340 name =341 root.text.substring(0, 3) +342 ending.text;343 344 meaning =345 root.meaning +346 " + " +347 ending.meaning;348 }349 350 // first 2 root + ending + vowel351 else if (pattern === 4) {352 353 var vowels2 = ["a", "e", "i", "o", "u"];354 var vowel2 = randomItem(vowels2);355 356 name =357 root.text.substring(0, 2) +358 ending.text +359 vowel2;360 361 meaning =362 root.meaning +363 " + " +364 ending.meaning;365 }366 367 // root + first letter ending368 else {369 370 name =371 root.text +372 ending.text.substring(0, 1);373 374 meaning =375 root.meaning +376 " + " +377 ending.meaning;378 }379 380 381 // Делаем первую букву заглавной382 name =383 name.charAt(0).toUpperCase() +384 name.substring(1);385 386 return {387 name: name,388 meaning: meaning389 };390}391 392 393// ============================================================394// 8. ПРОВЕРКА НАЗВАНИЯ395// ============================================================396 397function isGoodName(name) {398 399 name = name.toLowerCase();400 401 // Только английские буквы402 if (!/^[a-z]+$/i.test(name)) {403 return false;404 }405 406 // Название 5–12 символов407 if (name.length < 5 || name.length > 12) {408 return false;409 }410 411 // Нет одинаковых букв подряд412 if (/(.)\1/i.test(name)) {413 return false;414 }415 416 return true;417}418 419 420// ============================================================421// 9. ГЕНЕРАЦИЯ ДОМЕНА422// ============================================================423 424function generateDomain() {425 426 for (var attempt = 0; attempt < 500; attempt++) {427 428 var type = randomItem(serverTypes);429 var server = generateServerName();430 var theme = randomItem(themes);431 var domain = randomItem(domains);432 433 // Проверка названия434 if (!isGoodName(server.name)) {435 continue;436 }437 438 var fullDomain =439 type.text +440 "." +441 server.name +442 "." +443 theme.text +444 "." +445 domain.text;446 447 return {448 449 domain: fullDomain,450 451 type: type,452 453 server: server,454 455 theme: theme,456 457 domainZone: domain458 };459 }460 461 return null;462}463 464 465// ============================================================466// 10. ГЕНЕРАЦИЯ467// ============================================================468 469var result = generateDomain();470 471 472// ============================================================473// 11. ЕСЛИ ГЕНЕРАЦИЯ НЕ УДАЛАСЬ474// ============================================================475 476if (!result) {477 478 Bot.sendMessage(479 "❌ Не удалось сгенерировать домен.\n\n" +480 "Попробуй ещё раз."481 );482 483 return;484}485 486 487// ============================================================488// 12. КНОПКИ489// ============================================================490 491var keyboard = {492 493 inline_keyboard: [494 495 [496 {497 text: "🔄 Сгенерировать ещё",498 callback_data: "/generate_domain"499 }500 ],501 502 [503 {504 text: "◀️ Вернуться в меню",505 callback_data: "/start"506 }507 ]508 509 ]510};511 512 513// ============================================================514// 13. ОТВЕТ515// ============================================================516 517Bot.sendMessage({518 519 text:520 521 "╭━━━━━━━━━━━━━━━━━━━━╮\n" +522 " 🌐 DOMAIN\n" +523 "╰━━━━━━━━━━━━━━━━━━━━╯\n\n" +524 525 "🔗 " +526 result.domain +527 "\n\n" +528 529 "🎮 Тип:\n" +530 result.type.meaning +531 "\n\n" +532 533 "🏰 Название:\n" +534 result.server.name +535 "\n" +536 537 "📖 Смысл:\n" +538 result.server.meaning +539 "\n\n" +540 541 "🌌 Атмосфера:\n" +542 result.theme.meaning +543 "\n\n" +544 545 "🌐 Доменная зона:\n" +546 result.domainZone.meaning,547 548 reply_markup: keyboard549});