Перейти к содержимому
Документация
Автоматизация (Режимы)

Создание каналов и групп

Массовое создание каналов и супергрупп на аккаунтах пула: название из списка или по шаблону, подбор свободного @username, описание и аватар.

Создание каналов и групп — режим, в котором пул аккаунтов делает каналы и супергруппы. Каждый аккаунт создаёт заданное число сущностей — своих, с собственным названием, при желании с публичной ссылкой, описанием и аватаром. Владельцем каждой сущности остаётся создавший её аккаунт, поэтому режим обычно запускают, чтобы подготовить площадки под другие задачи: клонирование, рассылку постов, приглашения.

Здесь нет общего пула целей: аккаунты работают независимо, а суммарный результат равен числу аккаунтов, умноженному на «сущностей на аккаунт».

Что создаём

ПолеПо умолчаниюВарианты
Тип сущностиКаналКанал — вещательный, Группа — супергруппа
ПриватностьПубличныйПубличный — с @username и открытой ссылкой; Приватный — только по инвайту

Приватность решает многое: у приватных сущностей блок подбора username целиком скрыт, и создание проходит быстрее, потому что не нужно перебирать свободные имена.

Откуда берётся название

Источник названия — по умолчанию Список.

  • Список — поле Список названий, по одному названию в строке. На каждую сущность берётся случайная строка, а не следующая по порядку: список не расходуется, и одно название может выпасть дважды.
  • Динамическое — поле Шаблон названия, по умолчанию News Hub <Number>. Шаблон раскрывается заново для каждой сущности.

Токены шаблона:

ТокенЧто подставляет
<Number>Число от 1 до 99999
<Random>Восемь случайных символов: строчные латинские буквы и цифры
<Letter> / <LowerLetter> / <UpperLetter>Одну букву: любую / строчную / заглавную
<Digit>Одну цифру
<Hex>Один шестнадцатеричный символ
<Symbol>Подчёркивание
{Новости|Дайджест|Лента}Случайный вариант из перечисленных через |

Обычный текст в шаблоне остаётся как есть. Название обрезается до 128 символов; если и список, и шаблон дали пустую строку, подставляется запасное название вида Channel 48213.

Подбор публичного @username

Весь блок виден только при приватности «Публичный».

ПолеПо умолчаниюНазначение
Источник usernameДинамическийОткуда берутся кандидаты: Список или генерация по шаблону
Список usernamesКандидаты по одному в строке, @ можно не писать. Появляется при источнике «Список»
Шаблон usernameПустоШаблон с теми же токенами, что и у названия. Появляется при источнике «Динамический»
Попыток username5Сколько кандидатов проверить, прежде чем сдаться

Каждая попытка устроена одинаково: берётся кандидат (из списка — случайная строка, из шаблона — свежее раскрытие), приводится к правилам Telegram и проверяется на занятость через Telegram. Найденное свободное имя закрывает цикл — оставшиеся попытки не тратятся.

Кандидат приводится к виду автоматически: убирается @, всё переводится в нижний регистр, символы кроме a-z, 0-9 и _ вырезаются, слишком короткое имя добивается случайными цифрами до пяти символов, длинное обрезается до 32. Поэтому кириллица в списке username работать не будет — от неё останется пустая строка.

Что будет, если свободного имени не нашлось. Сущность всё равно создаётся — просто без публичного @username, то есть фактически приватной. В лог уходит предупреждение no free username after N attempts; creating without a public handle. Прогон при этом не останавливается, счётчик сущностей на аккаунт расходуется.

Отдельный случай — когда имя проверку прошло, но Telegram отказал уже при создании. Тогда в логе рядом с созданной сущностью появится username_error, а сама сущность останется без ссылки. То же самое с аватаром: photo_error означает, что канал создан, но картинка не применилась.

Оформление

Дополнительные опции — по умолчанию не выбрано ничего. Каждая галочка открывает своё поле.

  • АватарФайлы аватаров. Пул изображений; каждой сущности достаётся случайный файл. Несколько путей разделяются точкой с запятой или переносом строки.
  • ОписаниеСписок описаний, по одному описанию в строке. На сущность берётся случайная строка, текст обрезается до 255 символов.
  • Включить реакцииРазрешённые реакции, по умолчанию 👍. Выбираются только поддерживаемые Telegram реакции. Учтите: сценарий читает эту галочку, но отдельного шага, который выставляет набор реакций созданной сущности, в нём нет — реакции придётся включить вручную.

Сколько и как быстро

ПолеПо умолчаниюНазначение
Сущностей на аккаунт1Сколько каналов или групп создаёт каждый аккаунт за прогон
Задержка (сек)30–120Случайная пауза перед каждым созданием, включая самое первое

Пауза стоит именно перед созданием, поэтому даже одна сущность на аккаунт начнётся не мгновенно: поток сначала выждет 30–120 секунд.

Как проходит создание

Пауза. Поток ждёт случайное время из диапазона задержки.

Сборка данных. Определяются название, описание и файл аватара для этой сущности.

Подбор username. Только для публичных: кандидаты генерируются и проверяются на занятость, пока не найдётся свободный или не кончатся попытки.

Создание. Создаётся канал или супергруппа с названием, описанием, аватаром и найденным username.

Проверка. Если username назначен — сущность запрашивается по нему; неудача только пишется в лог как «ещё не резолвится».

Итог. После всех созданий аккаунт запрашивает список управляемых сущностей и пишет в лог, сколькими он теперь владеет.

Каждое создание изолировано: ошибка на одной сущности обрабатывается и логируется, а поток переходит к следующей.

Лимиты и риски

Все ограничения здесь приходят от Telegram, и обойти их нечем — можно только не упираться в них раз за разом.

  • Число создаваемых сущностей. Telegram ограничивает, сколько каналов и групп аккаунт может создать; при исчерпании лимита создание отваливается с ошибкой, и её видно в логе.
  • Публичные username. Их лимит на аккаунт заметно жёстче, чем лимит на сами сущности. Дойдя до потолка, аккаунт продолжит создавать сущности, но уже без ссылок.
  • Занятость имён. Короткие и осмысленные @username практически все заняты. Пять попыток по простому шаблону — это почти гарантированно пять неудач.
  • Свежие аккаунты. Только что зарегистрированный аккаунт, сразу создающий пачку публичных каналов, выглядит подозрительно и рискует ограничениями.
  • Владение. Каждая сущность привязана к создавшему её аккаунту. Потеряете аккаунт — потеряете и канал вместе с ним.

Рекомендации

  • Заполните шаблон username. По умолчанию он пустой, а пустой шаблон даёт пустого кандидата — все попытки уйдут вхолостую, и сущности останутся без ссылок.
  • Закладывайте случайность в шаблон. news<Random> или daily<Number> находят свободное имя в разы чаще, чем mychannel<Digit>.
  • Увеличьте попытки до 8–10, если делаете публичные сущности: каждая попытка — это один сетевой запрос, а не создание, и стоит она дёшево.
  • Начните с одной сущности на аккаунт и посмотрите лог: там видно и назначенный username, и username_error, и сколько сущностей теперь у аккаунта.
  • Раскладывайте нагрузку на пул. Десять аккаунтов по две сущности проходят спокойнее, чем один аккаунт с двадцатью, даже при большой задержке.

Публичный канал без ссылки — обычный исход

Если свободный @username не нашёлся за отведённые попытки, режим не останавливается и не пропускает сущность: канал или группа создаются без публичной ссылки. Внешне прогон выглядит успешным, а на выходе получается набор приватных сущностей. Проверяйте логи на строки creating without a public handle и username_error, прежде чем считать задачу выполненной.