March 17, 2025

Урок 4: Работа с базами данных в BAS

приветствие

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

для вас старался @bountydr0p

1. Введение в базы данных

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

1.1. Создание базы данных

Для создания базы данных в вашем проекте необходимо:

  1. открываем раздел "база" сверху
  2. Нажать на кнопку "Создать базу".
  3. Выбрать режим создания: текстовый или конструктор.
    • Текстовый режим подходит для тех, кто знаком с синтаксисом и предпочитает писать код вручную.
    • Режим конструктора более удобен для новичков, так как позволяет создавать базу данных визуально, без необходимости писать код.
  4. Выбираем Режим конструктора

2. Создание таблиц и колонок

2.1. Создание таблицы

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

  1. Нажмите на кнопку "Добавить таблицу".
  2. Укажите название таблицы, например, "Аккаунты".
  3. Добавьте описание таблицы (опционально).

2.2. Добавление колонок

Колонки в таблице определяют, какие данные будут храниться. Например, для таблицы аккаунтов можно добавить следующие колонки:

  • Кошелек (тип данных: string)
  • Приватный ключ (тип данных: string)
  • Профиль (тип данных: string)
  • Прокси (тип данных: string)
  • Rabby Wallet (тип данных: bool)
  • Metamask (тип данных: bool)
  • Discord (тип данных: bool)
  • Twitter (тип данных: bool)

ну и так далее, смотря что вам конкретно нужно

Типы данных:

  • String — строка, используется для текстовых данных.
  • Int — целое число, используется для числовых значений.
  • Date — дата, используется для хранения временных меток.
  • Bool — булевый тип, используется для хранения значений true/false.

после создания все сохраняем и перезапускаем бас


3. Управление данными в таблицах

Далее нажимаем "база" и заходим в "менеджер данных"

вы должны увидеть примерно такую картину

3.1. Добавление записей

Чтобы добавить запись в таблицу:

  1. Нажмите на кнопку "Добавить". (синие три полоски внизу)
  2. Заполните поля в открывшемся окне.
  3. Нажмите "Сохранить".

3.2. Редактирование записей

Для редактирования записи:

  1. Выберите запись, которую хотите изменить.
  2. Нажмите на иконку карандаша.
  3. Внесите изменения и нажмите "ОК".

3.3. Удаление записей

Чтобы удалить запись:

  1. Выберите запись.
  2. Нажмите на иконку корзины.
  3. Подтвердите удаление.

3.4. Группировка записей

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

  1. Нажмите на кнопку "Добавить группу".
  2. Укажите название группы, например, "Группа 1".
  3. Переместите записи в нужную группу.

3.5. Фильтрация записей

Фильтрация позволяет отображать только те записи, которые соответствуют определённым критериям. Например, можно отфильтровать записи, где поле "Прокси" не пустое:

  1. Нажмите на кнопку "Добавить фильтр".
  2. Выберите колонку и условие фильтрации.
  3. Нажмите "ОК".

4. Работа с базой данных в скриптах

4.1. Вызов данных из базы

Для использования данных из базы в скрипте:

  1. Создайте ресурс базы данных. (про это расписывать не буду, вы уже умные, прошлый урок надеюсь видели)
  2. Выберите таблицу, с которой будете работать. Это делается через редактирование ресурса.
  3. При записи скрипта можете выбрать отдельные группы, если у вас разбиты аккаунты
  4. Далее создаем переменную, и выбираем ресурс "База данных". эта переменная берет в себя текущую строку из бд. можете зайти и посмотреть что в этой переменной, чтобы удостовериться

4.2. Парсинг данных

Для извлечения данных из строки базы данных используйте модуль "Строка" и функцию "Парсить CSV строку". Например, можно извлечь публичный ключ и приватный ключ из строки базы данных.

в строке список разделителей оставляем только ":", это стандартный разделитель в нашей баzе

Далее в строку "переменные, в которые сохранять результат" придумываем название переменных, например wallet, privatekey, rafgandon и тд. наша задача через запятую без пробелов записать все переменные, в которые будут сохраняться столбцы из базы данных. можете открыть переменную с базой чтобы посмотреть порядок данных в строке. каждый отдельный элемент отделен ":"

ссылку на профиль запишем как "_" так как мы потом ее обновим и запишем по другому. все тру и фолз тоже пропускаем, то есть ставим _

последний пункт - id в базе, он очень важен, его тоже отправляем в какую-нибудь переменную, например "bazaID"

Далее, чтобы использовать данные из бд, к примеру приватники для рэбби, нам нужно определить профиль с которым мы работаем

создаем переменную в которой будет храниться путь к профилю. пока оставляем и не заполняем значение, назовем к примеру "profilepath"

далее через модуль "работа с ресурсами" и через расположение ресурса сохраняем нашу папку с профилями в новую переменную. назовем ее "profilefolderpath". тоже оставляем пустым

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

перезапускаем софт и не забываем заполнить ресурсы

кубик с папкой с профилями перемещаем выше кубика с профилями

далее заходим в переменную с профилями и в "значение переменной" вставляем нашу переменную с папкой с профилями и добавляем /wallet . это тот самый кошелек, который мы распарсили из базы

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

Открываем кубик "Настройки браузера" и внизу в разделе профиль меняем путь к папке профиля на нашу переменную "profilepath", далее запускаем этот кубик.

Фингерпринт

Далее чтобы не вызывать постоянно новый отпечаток в модуле "файловая система" заходим в "информация о папке". там в имя файла вставляем переменную profilepath и через / добавяем fingerprint.json то есть должно получится так [[PROFILEPATH]]/fingerprint.json

В остальных строках кроме "существование файла" все удаляем и пишем "_", как мы это делали ранее для пропуска

в существование файла напишем 'fpexist' к примеру

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

для этого создаем if и пишем перед переменной fpexist восклицательный знак. то есть если нет отпечатка, то создаем и принимаем новый

под этот if переносим действия с получением и применением отпечатка

Прокси

теперь берем прокси из базы данных. Для этого заходим в наш кубик "прокси"

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

Приватник

автоматизируем регистрацию кошелька.

запускаем расширение rabby, но до этого подгружаем любую страницу, как мы это делали до этого.

Создаем функцию и называем ее rabbywalletprivatekey

далее при помощи наших знаний о селекторах прокликиваем все кнопки, next, get started, import private key. для этого выбираем непрямое управление или нажимаем F1. далее наводимся на нужный объект, кликаем и в появившемся меню выбираем кликнуть по элементу. тут уже либо оставляем, либо используем другой вид селектора, это уже было в предыдущих уроках.

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

далее выбираем модуль строка, функцию ввод текста, выбираем при помощи селекторов куда вводить. в поле текст для ввода берем нашу переменную с паролем. интервал в миллисекундах можно указать 0. тоже самое делаем с "Password confirm"

По аналогии вводим приватник, только теперь берем переменную, которую мы спарсили из бд

далее нам нужно вызвать эту функцию в скрипте. она вызывается после того как мы загружаем расширение.
логика скрипта -> вызов функции -> rabbywalletprivatekey

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

для этого нажимаем правой кнопкой мыши по полю вводу пароля и выбираем "проверить существование"

селектор выглядит примерно так >CSS> #password

далее добавляем >AT>0 если не знаете почему, то посмотрите урок с селекторами

нажимаем галку "проверять, виден ли элемент на экране"

сохраняем в переменную passexists

далее через модуль "логика скрипта" и функцию If создаем условие

в выражение вставляем passexists и добавляем блок else

под else перемещаем кубик с вызовом функции rabbywalletprivatekey

под if копируем селектор, который мы проверяли на существование и вводом текста вставляем пароль. либо из распарсенной переменной из бд(если вы делали такой столбец) либо из ресурса(если вы не паритесь)

ну и нажимаем unlock, это тоже оставляем под if

далее в поиске ищем действие "переключиться на вкладку" и переходим на вкладку 0 и можете так же через "закрыть вкладку" закрыть вкладку с расширением

должно получиться как-то так

4.3. Обновление записей

Чтобы обновить запись в базе данных:

  1. Используйте модуль "База данных".
  2. Выберите действие "Изменить одну запись".
  3. Укажите ID записи и новое значение для обновления.

5. Дополнительные возможности работы с базами данных

5.1. Экспорт и импорт данных

Базы данных позволяют экспортировать и импортировать данные в различных форматах, таких как Excel, CSV и SQL. Это полезно для создания резервных копий или переноса данных между проектами.

5.2. Использование удаленных баз данных

Для работы с большими объемами данных (более 10 тысяч записей) рекомендуется использовать удаленные базы данных, такие как MySQL или PostgreSQL. Они обеспечивают более высокую производительность и гибкость в управлении данными.

5.3. Оптимизация запросов

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


6. Советы и рекомендации

6.1. Регулярное резервное копирование

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

6.2. Использование уникальных идентификаторов

Для каждой записи в базе данных используйте уникальные идентификаторы (ID). Это позволит легко находить и обновлять записи.

6.3. Оптимизация структуры базы данных

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


7. Заключение

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

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

надеюсь поддержите репостом, братва

в планах осталось еще 2 урока, чтобы полностью освоить базу. в скором времени дропну остальное. ЧАО ПОКА