ARMANOS

Ввоз

Ввоз аккаунтов из таблицы

Ваши аккаунты уже собраны в таблице. ARMANOS читает этот файл, показывает, во что превратился каждый столбец, и только потом создаёт профили.
13
Столбцов понимает
.csv .txt .tsv
Виды файла
200
Профилей за одно нажатие
100
Заготовок

Ваши аккаунты уже лежат в таблице

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

Нажмите «Из таблицы» над списком профилей. Выбор файла принимает .csv, .txt и .tsv, а именно это отдают Excel, Google Таблицы и почти любая выгрузка продавца.

Файл читает настоящий разбор CSV, а не деление строки по запятым. Это важно: разбор, съехавший на столбец, не падает с ошибкой. Он создаёт профили, которые выглядят правильными и несут чужой прокси, а откатывать такое хуже, чем завести всё руками.

Что приезжает в файлеЧто с этим делает разбор
Метка порядка байтов от ExcelСнимается, и первый заголовок по-прежнему опознаётся, а не превращается в незнакомый столбец.
Точки с запятой или табуляция вместо запятыхРазделитель считается по строке заголовков вне кавычек, поэтому узнаются запятая, точка с запятой и табуляция.
Поле в кавычках с запятыми или переводом строкиОстаётся целым. Имя вида «Иванов, Иван» это одна ячейка, и вся строка не съезжает.
Удвоенная кавычка внутри поляЧитается как одна настоящая кавычка, по правилу RFC 4180.
Переводы строк Windows и пустая строка в концеРазбираются. Строка, пустая во всех ячейках, отбрасывается, а не становится пустым профилем.
Список профилей ARMANOS, над карточками кнопки «Из таблицы» и «Создать пакет».
Оба входа стоят над списком профилей: «Из таблицы» читает ваш файл, «Создать пакет» строит по сохранённой заготовке.

Столбцы сопоставляются по смыслу, а не по точному названию

Названия столбцов ваши, а не наши. Каждая ячейка заголовка приводится к общему виду до сравнения: регистр не важен, пробелы, подчёркивания, дефисы и точки убираются, кавычки и скобки тоже. «Profile Name», «profile_name» и «PROFILE NAME» это одно и то же.

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

Сопоставление держат два правила. Если в файле два столбца об одном и том же, побеждает первый: второй обычно и есть тот, что пустее. А столбец, не совпавший ни с чем, никогда не угадывается: он назван по имени в разборе и в ввоз не идёт.

ПолеКакие заголовки подходятВо что превращается
ИмяName, Profile name, Account, Имя, Название, АккаунтИмя профиля. Единственная обязательная ячейка.
ГруппаGroup, Folder, Team, Группа, Папка, КатегорияНастоящая группа, заводится, если такой ещё нет.
ПроксиProxy, Proxy URL, Прокси, Адрес проксиОдна ячейка в записи продавца.
Вид проксиProxy type, Protocol, Тип, Протоколhttp, https, socks5 или ssh.
Узел проксиProxy host, Host, IP, Хост, СерверАдрес, через который выходит профиль.
Порт проксиProxy port, Port, ПортПорт от 1 до 65535.
Логин проксиProxy login, Proxy username, Логин проксиТолько заголовки, где сказано «прокси».
Пароль проксиProxy password, Proxy pwd, Пароль проксиТолько заголовки, где сказано «прокси».
ШаблонTemplate, Fingerprint, OS, Шаблон, СистемаОдин из пяти шаблонов отпечатка.
СценарийScenario, Purpose, Сценарий, НазначениеСценарий профиля. Без ячейки берётся privacy.
МеткиTags, Labels, Теги, МеткиДелятся по запятой и точке с запятой внутри ячейки.
ЗаметкиNotes, Comment, Заметки, ОписаниеПереносятся как написано.
2FA2FA, TOTP, OTP secret, Ключ 2FAКлюч одноразовых кодов для этого аккаунта.

Столбец «Пароль» принадлежит аккаунту, а не прокси

В таблице аккаунтов почти всегда рядом стоят «Логин» и «Пароль». Они принадлежат аккаунту, а не прокси, и ввоз обращается с ними именно так.

Однажды это было сделано неверно, и вред получился тихим. Совершенно обычная таблица «Имя, Логин, Пароль, IP, Порт, Логин прокси, Пароль прокси» отправляла данные аккаунта в настройки прокси. Пароль аккаунта попадал в общую библиотеку прокси и уходил провайдеру при каждом запуске профиля. Настоящий пароль прокси при этом терялся, прокси отвечал 407, и профиль не работал.

Теперь на поля прокси годятся только заголовки, где сказано «прокси». Простые «Логин» и «Пароль» остаются несопоставленными, называются в разборе как оставленные в стороне и никуда не ввозятся.

Жалоба была не про то

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

Во что превращается одна строка

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

Прокси может приехать одной ячейкой, в той записи, какую прислал продавец. Читаются host:port, host:port:логин:пароль, логин:пароль@host:port и socks5://логин:пароль@host:port, а метка после вертикальной черты и ссылка смены IP после решётки вынимаются из той же строки. Невидимые знаки, приезжающие вместе со вставленным адресом, вроде неразрывного пробела, убираются до разбора.

Или прокси приезжает отдельными столбцами, как в выгруженном образце. Там вид связи не угадывается. Пустая ячейка вида означает «продавец не указал», и http для неё разумное чтение. А названный, но незнакомый вид называется вслух, а не понижается: тихое понижение означает, что вы думаете, будто идёте через socks5, а идёте открыто.

  1. 1

    Имя

    Берётся как есть. Пустая ячейка помечает строку как беду, а не создаёт безымянный профиль.

  2. 2

    Прокси

    Читается из одной ячейки прокси или из столбцов вида, узла, порта, логина и пароля.

  3. 3

    Шаблон

    Слово в ячейке превращается в macos-chrome, windows-chrome, linux-chrome, android-chrome или android-tablet. «windows», «ubuntu», «телефон» и «планшет» попадают туда, куда вы ожидаете. Незнакомое слово даёт macos-chrome.

  4. 4

    Группа, метки, заметки

    Группа пока держится именем. Метки делятся по запятой и точке с запятой внутри ячейки. Заметки переносятся как написаны.

  5. 5

    Ключ одноразовых кодов

    Голый ключ base32 или целая ссылка otpauth://. Ссылка несёт свои число знаков, шаг и алгоритм.

  6. 6

    Сценарий

    Берётся из ячейки, если она есть. Строки без неё получают сценарий privacy.

Пока вы не увидели разбор, ничего не создаётся

Ввоз идёт в два шага нарочно. Сперва файл читается и сопоставляется, и понятое показывается до того, как появится хоть один профиль.

Разбор называет обе стороны: слева ваш заголовок, справа наше поле. Вы сверяете наше чтение со своим файлом, а не верите ему на слово. Столбцы, не совпавшие ни с чем, перечислены по именам.

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

«Отмена» сбрасывает разобранный файл в главном ходе программы. Позднее нажатие «Создать профили» не сможет сработать по файлу, который вы считали закрытым.

Файл
accounts.csv, строк найдено: 120
Сопоставление
Аккаунт > Имя · Логин прокси > Логин прокси · Тип > Вид прокси
Оставлено в стороне
Дата покупки, Менеджер
Строка образца
строка 2 · Amazon Seller DE · Marketplaces · socks5://198.51.100.10:8000
Строк с бедой
3. Номера: 14, 27, 88

Номера строк те же, что у вас в таблице: заголовок это строка 1, значит первый аккаунт это строка 2.

Непрочитанная строка называется по номеру

Строка с бедой всё равно собирается и всё равно показывается. Спрятать её значит завести ввоз, который тихо теряет строки, и через месяц выяснится, что аккаунт 47 так и не приехал.

Что будет дальше, решает галочка. Она стоит по умолчанию, и тогда создаются только чистые строки. Снимите её, и строка создастся без той части, которую не удалось прочитать: непонятная ячейка прокси даст профиль без прокси, а не отсутствие профиля.

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

Беда в строкеКак выглядитЧто делает ввоз
Нет имениЯчейка имени пустаСтрока не создаётся никогда, с галочкой и без неё.
Прокси не читается«спросить у продавца» в ячейке проксиНазвана вместе с номером строки. Профиль создаётся без прокси, а не с выдуманным.
Вид прокси не поддержанПротокол, которого программа не знаетНазван вслух. Ничего не понижается молча до http.
Ключ 2FA непригоденКлюч со знаками не из base32Назван и не сохранён. Неверные коды валят вход, а несколько неудач запирают аккаунт.

Ввоз заодно наполняет группы и библиотеку прокси

Названия групп из файла становятся теми же полноценными группами, какими пользуется вся программа. Сведение идёт без учёта регистра, поэтому «Продажи» и «продажи» не превращаются в две группы, а несуществующая группа заводится.

У вошедшего в аккаунт местный номер группы переводится в серверный до создания профиля. Без этого шага сервер отвергает каждую строку с группой, и ввоз ста строк с группами создавал ноль профилей. Столбец группы стоит вторым в нашем же образце файла, поэтому беда доставала почти каждого.

Прокси из файла тоже попадают в общую библиотеку, без повторов по узлу, порту и логину, и с меткой того профиля, с которым приехали. Тогда ротация, проверки и одна смена пароля доходят до ввезённого профиля так же, как до заведённого руками.

Ключ одноразовых кодов записывается в профиль сразу после его создания, поэтому ввезённый профиль готов входить, а не настроен наполовину.

  • Создано

    Профили, которые теперь есть.

  • Пропущено

    Строки, от которых программа отказалась, с причиной последнего отказа.

  • Новых групп

    Группы, которые ввозу пришлось завести по дороге.

  • Прокси в библиотеку

    Сколько записей добавлено. Уже известные адреса берутся прежние, а не заводятся заново.

Заготовка несёт ваши решения, но не отпечаток

Откройте профиль, настройте его так, как вам нужно, и нажмите «Сохранить как заготовку». Заготовка это те самые решения под именем.

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

Отпечатка в ней нет, и это половина поважнее. Отпечаток выводится из собственного номера профиля по поколению 4, поэтому полсотни профилей из одной заготовки это полсотни разных машин. Скопировать одну машину пятьдесят раз это самый быстрый способ дать узнать группу аккаунтов как группу, причём видно это при первом же запуске, безо всякой истории.

  • Хранится в заготовке

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

  • Не хранится никогда

    Отпечаток, куки, сессии. Каждый новый профиль выводит свою машину из своего номера.

  • Пределы

    До 100 заготовок, имя до 60 знаков, до 12 меток в заготовке.

Пакет профилей с именами, продолжающими ряд

Нажмите «Создать пакет», выберите заготовку, впишите основу имени и количество. Пакет строится по заготовке: решения общие, машины разные.

Имена продолжают ряд, а не начинают его заново. Номера дополняются нулями по ширине наибольшего, поэтому «Работа 01 … Работа 50» сортируется по порядку, а «Работа 1» рядом с «Работа 10» нет. Если «Работа 01» и «Работа 02» уже есть, а вы просите ещё три, вы получите 03, 04 и 05.

Запас вашего тарифа проверяется до создания первого профиля, а не посреди работы. Free держит 2 профиля, Professional от 10 до 100, Business от 200 до 1000, Enterprise от 5000. Если пакет не помещается, в сообщении сказано, сколько поместится.

За одно нажатие создаётся до 200 профилей. Первая же беда останавливает пакет: если кончилась норма или пропала сеть, остальные сорок девять попыток дадут ту же ошибку, а вы будете ждать их все.

  1. 1

    Выберите заготовку

    Строка под выбором называет сценарий, шаблон системы, группу, прокси и версию ядра, которые пойдут в дело.

  2. 2

    Основа имени и количество

    Основа имени и число профилей. Больше 200 за одно нажатие не создаётся.

  3. 3

    Прочтите строку показа

    Она показывает первое и последнее имя до того, как вы что-нибудь нажмёте. Полсотни профилей с неожиданными именами переименовываются только по одному.

  4. 4

    Создайте

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

Чего это не делает

  • Книги Excel и OpenDocument не читаются. Сохраните лист как CSV или TSV: выбор файла принимает .csv, .txt и .tsv.
  • Ввоз приносит настройки, а не сессии. Куки, состояние входа и местное хранилище в таблице не лежат и вместе с ней не приезжают.
  • Разобранный прокси это ещё не работающий прокси. Ввоз читает адрес, но не звонит по нему. Проверьте записи потом на странице прокси.
  • Строки не сводятся с уже имеющимися профилями. Одно и то же имя дважды даст два профиля, а повторный ввоз того же файла создаст всё заново.
  • Голый ключ 2FA читается с обычными настройками: 6 знаков, шаг 30 секунд, SHA1. Если ваша площадка выдаёт 8 знаков или шаг 60 секунд, положите в ячейку целую ссылку otpauth://.

Как проверить

За каждым утверждением этой страницы стоит файл, который можно открыть, а у большинства ещё и стенд, падающий при изменении поведения.

Файл читается как CSV, а не делится по запятым: метка байтов, точки с запятой, табуляция, запятые и переводы строк внутри поля.
apps/desktop/src/lib/csv.js · apps/desktop/test/csv-import.js
Столбцы сопоставляются по смыслу, а не совпавший ни с чем называется, а не угадывается.
apps/desktop/src/lib/profileImport.js · apps/desktop/test/csv-import.js
Столбцы «Логин» и «Пароль» аккаунта никогда не становятся логином и паролем прокси.
apps/desktop/src/lib/profileImport.js · apps/desktop/test/csv-proxy-columns.js
Название группы из файла становится настоящей группой, а у вошедшего в аккаунт уходит серверный номер, а не местный.
apps/desktop/src/main/main.js · apps/desktop/test/csv-import-groups.js
Заготовка копирует решения, но не отпечаток, норма проверяется до создания, а имена пакета продолжают ряд.
apps/desktop/src/lib/presets.js · apps/desktop/test/заготовки-и-пакет.js

Перенесите свой список

Скачайте ARMANOS, нажмите «Из таблицы» над списком профилей и сверьте разбор до того, как что-нибудь создастся.