ربات‌های تلگرام یک نام کاربری ثانویه دریافت خواهند کرد که می‌تواند به جای «bot»، به app، agent، ai، game یا gay ختم شود. صاحب ربات با اشتراک Telegram Premium می‌تواند چنین نامی را اضافه کند، هر ربات یک نام. بر اساس پسوند نام، کلاینت ربات را در نوار وضعیت برچسب‌گذاری می‌کند: به جای «bot» معمول، «agent»، «AI»، «game» یا «app» نمایش داده خواهد شد. متدهای مربوطه از قبل در TDLib موجود هستند، برچسب‌گذاری در کد Telegram Desktop و متن‌های خطا در Android 13.0.2 که در 13 اکتبر منتشر شد، یافت می‌شوند. در تنظیمات سرور تا 9 اکتبر، هنوز کلیدهایی برای این قابلیت وجود نداشت.

چه تغییراتی در قوانین نام‌گذاری ایجاد می‌شود

در حال حاضر، نام کاربری ربات باید به «bot» ختم شود: «tetris_bot» یا «TetrisBot»، همانطور که مستندات BotFather ایجاب می‌کند. این قانون پابرجا می‌ماند: نام اصلی ربات همچنان به «bot» ختم می‌شود.

نام جدید، نام ثانویه است (در طرح TDLib به آن secondary_username گفته می‌شود). این نام جایگزین نام اصلی نمی‌شود، بلکه در کنار آن در لیست لینک‌های ربات قرار می‌گیرد، مانند نام‌های اضافی کانال‌ها و حساب‌ها. سه محدودیت وجود دارد:

  • نام باید به یکی از پسوندهای مجاز که توسط سرور ارسال می‌شود، ختم شود؛
  • هر ربات فقط می‌تواند یک نام از این نوع داشته باشد؛
  • یک صاحب ربات نمی‌تواند بیش از حد مجاز سرور از این نام‌ها داشته باشد؛ به طور پیش‌فرض TDLib دو مورد را تعیین می‌کند.

اگر هنگام ایجاد ربات، نامی بدون پسوند «bot» انتخاب کنید، TDLib این ترتیب را توضیح می‌دهد: نام انتخابی به نام ثانویه تبدیل می‌شود و سرور نام اصلی را که به «bot» ختم می‌شود، به ربات اختصاص می‌دهد.

این قابلیت برای صاحب ربات چگونه به نظر خواهد رسید

تا زمانی که سرور لیست پسوندها را ارسال نکرده باشد، نمی‌توان نام ثانویه را در هیچ کلاینتی اضافه کرد. وقتی فعال شود، مسیر از طریق خطوط کلاینت Android به شرح زیر است:

  • در فیلد نام، یک راهنما ظاهر می‌شود: «باید به "bot" ختم شود — یا به app, agent… با Telegram Premium»؛
  • نامی با پسوند جدید بدون اشتراک، با پیامی مبنی بر اینکه چنین نام‌هایی نیاز به Premium دارند و یک دکمه اشتراک، متوقف می‌شود؛
  • ربات سوم با چنین نامی به محدودیت برخورد می‌کند: «شما فقط می‌توانید N نام از این نوع برای همه ربات‌های خود داشته باشید»؛
  • تلاش دوم برای همان ربات با پیام «این ربات از قبل یک نام Premium دارد، قبل از افزودن نام جدید آن را حذف کنید» متوقف می‌شود.

بررسی نام آزاد همانند نام ربات جدید است، با یک پرچم جداگانه «برای نام ثانویه». نام ثانویه را می‌توان در هر زمان حذف کرد.

برچسب وضعیت کجا ظاهر می‌شود

برچسب وضعیت، متنی است که زیر نام ربات در هدر چت و در پروفایل نمایش داده می‌شود، جایی که اکنون «bot» نوشته شده است. Telegram Desktop آن را با یک تابع کوتاه تعیین می‌کند: اولین نام را در لیست لینک‌های ربات می‌گیرد و پسوند آن را با پنج گزینه، بدون توجه به حروف کوچک و بزرگ، مقایسه می‌کند. اگر مطابقت داشت، کلمه از جدول به جای «bot» چاپ می‌شود. اگر مطابقت نداشت، «bot» باقی می‌ماند.

پسوندانگلیسیروسی (در پلتفرم ترجمه)
appappприложение
agentagentагент
aiaiИИ
gamegameигра
gaygayгей

یک نکته مهم که از اطلاعیه‌ها مشخص نیست: اگر سرور تعداد کاربران فعال ماهانه را برای ربات ارسال کند، نوار وضعیت آن را نمایش می‌دهد و برچسب وضعیت بر اساس پسوند به آن نمی‌رسد. یعنی «agent» عمدتاً برای ربات‌هایی دیده می‌شود که چنین شمارنده‌ای ندارند.

نکته دوم این است که اولین نام در لیست، هر چه که باشد، بررسی می‌شود. صاحب ربات می‌تواند ترتیب لینک‌ها را با کشیدن و رها کردن تغییر دهد، اما اینکه آیا می‌توان نام ثانویه را در بالا قرار داد، طرح مشخص نمی‌کند. این موضوع تعیین می‌کند که آیا برچسب وضعیت برای رباتی که نام اصلی آن به «bot» ختم می‌شود و در ابتدا قرار دارد، دیده خواهد شد یا خیر.

پسوند پنجم مسیری کوتاه‌تر از بحث‌های پیرامون آن را طی کرد. در کدهای منبع Desktop، این پسوند در 6 اکتبر با متن انگلیسی «non-binary» ظاهر شد، و در 8 اکتبر در پلتفرم ترجمه گزینه انگلیسی به «gay» تغییر یافت. ترجمه روسی در همانجا طی دو روز «гей»، «геи» و «gay» بوده است، بنابراین کلمه نهایی هنوز ممکن است تغییر کند. چهار پسوند دیگر بدون اختلاف ترجمه شده‌اند.

آیا این قابلیت برای Premium رایگان است؟

دقیق‌تر بگوییم: نام ثانویه فقط با Premium در دسترس است و هیچ هزینه جداگانه‌ای برای آن در کد وجود ندارد. متد افزودن در TDLib دو آرگومان را می‌پذیرد – ربات و نام، بدون قیمت، ستاره یا Gram. متد سرور bots.addUsername در طرح MTProto نیز به همین ترتیب عمل می‌کند. TDLib لیست پسوندهای مجاز را «پسوندهای Premium» و Android آن را «نام Premium» می‌نامد. در کد فعلی، راهی برای خرید چنین نامی بدون اشتراک وجود ندارد.

این مکانیسم با Fragment تداخلی ندارد. طرح به صراحت نام ثانویه را «غیرقابل جمع‌آوری» (non-collectible) می‌نامد: این یک نام کاربری NFT از حراجی نیست، فروخته یا منتقل نمی‌شود، بلکه مانند یک نام معمولی، در صورت آزاد بودن، اشغال می‌شود. ربات می‌تواند نام‌های کلکسیونی از Fragment را داشته باشد و آنها نیز می‌توانند بدون پسوند «bot» باشند.

در صورت اتمام اشتراک چه اتفاقی می‌افتد، طرح در یک خط بیان می‌کند: اگر نام ثانویه غیرفعال شود، فقط با Premium می‌توان آن را دوباره فعال کرد. از این نتیجه می‌شود که با انقضای Premium، نام غیرفعال می‌شود و آزاد نمی‌گردد — اما توصیف مستقیمی از چنین سناریویی در کد وجود ندارد.

سرور لیست پسوندها را از کجا می‌گیرد

پنج پسوند در Telegram Desktop مستقیماً در کد نوشته شده‌اند: این یک دیکشنری برای برچسب وضعیت است. پسوندهای مجاز برای ثبت‌نام را TDLib از تنظیمات سرور برنامه، کلید bot_allowed_suffixes می‌خواند و با رویداد updateAllowedBotUsernamePremiumSuffixes ( کامیت از 30 سپتامبر) به کلاینت‌ها ارسال می‌کند. محدودیت برای هر صاحب ربات با کلید bot_additional_usernames_limit می‌آید. در تنظیمات فعال سرور تا 9 اکتبر، هیچ یک از این کلیدها وجود نداشت، بنابراین لیست پسوندها در سرور ممکن است کوتاه‌تر یا بلندتر از پنج پسوند شناخته شده برای کلاینت‌ها باشد.