Перейти к содержимому

Блог

Как перевезти сто профилей из таблицы за один вечер

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

Команда ARMANOS7 мин

Что уже лежит в вашей таблице

В строке у вас обычно стоит имя аккаунта, группа или проект, адрес прокси и заметка. Рядом часто лежит ключ 2FA, теги и пометка про систему, и всё это программа умеет читать из таблицы как есть: кнопка «Из таблицы» над списком профилей открывает окно «Импорт из таблицы».

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

  1. 1

    Имя и группа

    Имя профиля и группа, в которой вы его потом найдёте.

  2. 2

    Прокси

    Одной строкой в записи продавца или отдельными столбцами.

  3. 3

    Ключ входа

    Ключ 2FA, если он у вас уже выписан.

Сдвиг на один столбец губит весь импорт

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

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

Что встречается в файлеЧем это кончается, если читать по запятым
Точка с запятой вместо запятойВся строка становится одним полем
Запятая внутри кавычек в заголовкеРазделитель выбран неверно, столбцы съехали
Перевод строки внутри заметкиОдна строка превращается в две
Невидимый знак от Excel в началеПервый столбец не узнаётся вовсе
Табуляция вместо запятойСтолбец оказывается один на всю строку

Разделителей три, а не один

Разделитель программа берёт из первой строки файла: запятая, точка с запятой или табуляция. Запятые внутри кавычек она не считает, поэтому заголовок вида «Имя, полное» выбора не сбивает.

Заголовки можно не переименовывать

Столбец программа узнаёт по смыслу, а не по точной строке. «Name», «Название», «profile name» и «имя профиля» означают для неё одно поле, и ни одно из четырёх не лучше других.

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

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

Прокси одной строкой или пятью столбцами

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

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

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

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

Два написания socks5 и два чужих

Вид связи продавцы пишут по-разному: socks5 и socks5h означают одно и то же, и программа читает оба как socks5. Разницу в написании она не считает ошибкой, потому что за ней стоит один и тот же путь.

А socks4 это другой путь, и его программа не поддерживает: такая строка получает отказ с названием причины, а не тихое понижение до socks5 или до обычного прокси. Голое socks без цифры программа читает как socks4 и тоже отказывает, а в отказе советует поставить socks5, если продавец его даёт. Отказ в строке дешевле профиля, который идёт не тем путём.

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

В таблице аккаунтов «Логин» и «Пароль» принадлежат аккаунту: чтобы отдать их прокси, столбец надо назвать «Логин прокси» и «Пароль прокси». А вот адрес и порт программа узнаёт и по голым именам: «IP», «Хост», «Сервер», «Адрес», «Порт». Если ваш столбец «IP» это адрес регистрации аккаунта, переименуйте его, иначе он станет прокси.

Разница тут не косметическая. Пароль аккаунта, принятый за прокси-пароль, уходил бы провайдеру прокси при каждом запуске, настоящий пароль терялся бы, и узел отвечал бы отказом 407.

Поэтому голые слова «логин» и «пароль» программа к прокси не относит вовсе. Пароль от аккаунта остаётся в вашей таблице и в профиль не переезжает.

Ключ 2FA едет вместе с профилем

Ключ 2FA обычно лежит в той же таблице, рядом с паролем. Он переезжает вместе со строкой, и настраивать вход по второму разу вам не придётся: коды профиль считает сам.

Ссылка otpauth со своими настройками переезжает целиком: число цифр, длина шага и алгоритм. По умолчанию это шесть цифр, тридцать секунд и SHA1, и подставлять умолчание вместо ваших настроек нельзя.

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

Порядок на сто строк за один вечер

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

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

  1. 1

    Скачайте пример

    Столбцы в нём названы так, как их ждёт программа.

  2. 2

    Сложите свои строки

    Порядок столбцов ваш, переименовывать ничего не надо.

  3. 3

    Выберите файл

    Вам покажут, какой столбец стал каким полем.

  4. 4

    Сверьте первую пятёрку

    Первые пять строк показаны значениями, а не именами столбцов.

  5. 5

    Создайте профили

    Строки с бедой можно пропустить или завести без испорченной части.

Пустые строки не сбивают номер

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

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

Сколько профилей поместится в ваш тариф

Сто профилей это не всегда сто мест в вашем тарифе. На бесплатном тарифе мест два, а ступени Professional идут по 10, 20, 50 и 100 профилей, у Business они начинаются с 200 и доходят до 1000, а Enterprise берёт от 5000.

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

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

Чего это не утверждает

  • Это не утверждает, что все сто аккаунтов переживут первый день. Профиль повторяет машину, а поведение, платёжные данные и возраст аккаунта остаются вашими.
  • Это не утверждает, что прочитается любой файл. Строка без имени профиля останется отметкой о беде, а не профилем.
  • Столбец, которого программа не знает, она не переносит и не выбрасывает: его называют вам и оставляют в файле.
  • Логин и пароль от самого аккаунта из таблицы не переезжают. Переезжает только ключ 2FA, и вписывать пароли в файл ради импорта не нужно.

Где это можно увидеть самому

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

Кавычки, переводы строк и невидимый знак от Excel читаются по правилу
apps/desktop/src/lib/csv.js
Заголовок узнаётся по смыслу и сразу на нескольких языках
apps/desktop/src/lib/profileImport.js
Каждый случай это вид, в котором приезжает настоящая таблица
apps/desktop/test/csv-import.js
Пароль аккаунта не уходит в настройки прокси
apps/desktop/test/csv-proxy-columns.js
Строка с группой не пропадает при импорте
apps/desktop/test/csv-import-groups.js
Ключ 2FA даёт тот же код после переноса
apps/desktop/test/config-import-2fa.js
Пять видов записи прокси и четыре вида связи
packages/shared/src/proxy-line.js · apps/desktop/test/proxy-library.js
Ступени тарифа по числу профилей и норма по действующему тарифу
packages/shared/src/index.js
Перенос профиля не теряет полей ни одной из трёх дорог
apps/desktop/test/перенос-не-теряет-полей.js

Вопросы

Сколько времени займёт сто строк?
Сам импорт идёт минуты. Время уходит на то, чтобы один раз посмотреть, какой столбец стал каким полем.
Нужно ли переименовывать столбцы в моей таблице?
Нет. Заголовок узнают по смыслу, в том числе по-русски и на других языках, а регистр и пробелы значения не имеют.
Excel у меня сохраняет с точкой с запятой. Это помешает?
Нет. Разделитель берут из первой строки файла, а невидимый знак, который Excel ставит в начало, снимают до чтения.
Что будет со строкой, где прокси написан криво?
Строку вам покажут с номером, как в таблице. Профиль по ней можно завести без прокси или пропустить её целиком.
Можно ли импортировать группы вместе с профилями?
Да. Имена из столбца группы станут вашими группами, а одинаковые имена в разном регистре останутся одной группой.
Успею ли я остановиться, если столбцы встали не так?
Да. До нажатия на создание программа не заводит ничего: сначала вам показывают, какой столбец стал каким полем, и первые пять строк.
А если потом я перенесу эти профили на вторую машину?
Профиль уедет со своими полями: группа, заметки, теги, шаблон и версия браузера. Ключ 2FA едет файлом переноса, а копия профиля его нарочно не берёт.

Перевезите первые десять строк

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