umbot - v2.0.8
    Preparing search index...

    Class SoundTokens

    Модель для управления звуковыми файлами в различных платформах. Предоставляет единый интерфейс для работы со звуковыми файлами в Яндекс.Алисе, ВКонтакте, Telegram и Марусе.

    SoundTokens

    // Создание и загрузка звукового файла для Telegram
    const sound = new SoundTokens();
    sound.path = '/path/to/audio.mp3';
    sound.type = SoundTokens.T_TELEGRAM;
    const token = await sound.getToken();
    if (token) {
    console.log('Звуковой файл успешно загружен, токен:', token);
    }

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    T_ALISA: 0

    Тип платформы: Яндекс.Алиса

    T_VK: 1

    Тип платформы: ВКонтакте

    T_TELEGRAM: 2

    Тип платформы: Telegram

    T_MARUSIA: 3

    Тип платформы: Маруся

    soundToken: null | string

    Идентификатор/токен звукового файла. Уникальный идентификатор, используемый для ссылки на звуковой файл в API платформы.

    path: null | string

    Расположение звукового файла (url/директория). Может быть URL-адресом звукового файла или путем к локальному файлу.

    type: number

    Тип приложения, для которого загружен звуковой файл. Определяется одной из констант T_ALISA, T_VK, T_TELEGRAM или T_MARUSIA.

    isAttachContent: boolean

    Флаг, указывающий, что передается содержимое файла. Если true, то path содержит содержимое файла, а не путь к нему.

    false
    

    Контроллер для работы с базой данных Используется для выполнения запросов и управления данными

    // Получение данных через контроллер
    const result = await this.dbController.select(
    { where: { id: 1 } },
    true
    );
    queryData: QueryData

    Объект для хранения параметров запроса Содержит условия поиска и данные для обновления

    // Установка параметров запроса
    this.queryData.setQuery({ id: 1 });
    this.queryData.setData({ name: 'John' });
    startIndex: number = 0

    Начальный индекс для итерации по данным Используется при инициализации модели из массива

    state: Partial<TState> = {}

    Состояние модели Содержит текущие значения всех атрибутов

    // Установка значений
    this.state.username = 'John';
    this.state.age = 25;

    // Получение значений
    console.log(this.state.username);

    Methods

    • Возвращает название таблицы/файла с данными.

      Returns string

      Название таблицы для хранения данных о звуковых файлах

    • Получает или создает токен звукового файла для указанной платформы. Метод автоматически определяет тип платформы и использует соответствующий API для загрузки и получения токена звукового файла.

      Returns Promise<null | string>

      Токен звукового файла или null в случае ошибки

      // Загрузка звукового файла для VK
      const sound = new SoundTokens();
      sound.path = '/path/to/voice.mp3';
      sound.type = SoundTokens.T_VK;
      const token = await sound.getToken();
      if (token) {
      console.log('Звуковой файл успешно загружен, токен:', token);
      }
    • Проверяет состояние подключения к базе данных

      Returns Promise<boolean>

      Promise - true если подключение активно

      const isConnected = await model.isConnected();
      if (isConnected) {
      // Выполнение операций с базой данных
      }
    • Экранирует специальные символы в строке

      Parameters

      • text: string | number

        Текст для экранирования

      Returns string

      Экранированная строка

      const safe = model.escapeString("O'Connor");
      
    • Выполняет валидацию данных модели Может быть переопределен в дочерних классах

      Returns void

      validate(): void {
      if (!this.state.username) {
      throw new Error('Username is required');
      }
      }
    • Определяет имя первичного ключа таблицы Ищет поле с меткой 'id' или 'ID'

      Returns null | string | number

      Имя первичного ключа или null

    • Выполняет поиск записи по первичному ключу

      Returns Promise<IModelRes>

      Promise с результатом запроса

      const result = await model.selectOne();
      if (result.status) {
      model.init(result.data);
      }
    • Сохраняет данные модели в базу данных Если запись существует - обновляет, иначе создает новую

      Parameters

      • isNew: boolean = false

        Флаг создания новой записи

      Returns Promise<any>

      Promise с результатом операции

      model.state.name = 'John';
      await model.save(); // Обновление существующей записи
      await model.save(true); // Создание новой записи
    • Обновляет существующую запись в базе данных

      Returns Promise<any>

      Promise с результатом операции

      model.state.name = 'John';
      await model.update();
    • Добавляет новую запись в базу данных

      Returns Promise<any>

      Promise с результатом операции

      model.state.name = 'John';
      await model.add();
    • Удаляет запись из базы данных

      Returns Promise<boolean>

      Promise - true если удаление успешно

      await model.remove();
      
    • Выполняет произвольный запрос к базе данных

      Parameters

      • where: any = '1'

        Условия запроса

      • isOne: boolean = false

        Флаг выборки одной записи

      Returns Promise<IModelRes>

      Promise с результатом запроса

      const result = await model.where(
      { age: { $gt: 18 } },
      false
      );
    • Выполняет запрос с выборкой одной записи

      Parameters

      • where: any = '1'

        Условия запроса

      Returns Promise<boolean>

      Promise - true если запись найдена

      const found = await model.whereOne({ id: 1 });
      if (found) {
      console.log('Record found');
      }
    • Выполняет произвольный запрос к базе данных

      Parameters

      • callback: TQueryCb

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

      Returns any

      Результат выполнения запроса

      const result = await model.query(async (client, db) => {
      const collection = db.collection('users');
      return await collection.aggregate([
      { $match: { age: { $gt: 18 } } },
      { $group: { _id: '$city', count: { $sum: 1 } } }
      ]).toArray();
      });