Использование конфигурационного файла

Использование конфигурационного файла

Файл конфигурации — это файл, содержащий важные учетные данные. Добавьте tgsnake.config.js в .gitignore, чтобы этот файл не попал в GitHUb.

tgsnake.config.js
/** @type {import('tgsnake').Options} */
const config = {
  apiHash: 'abcdefgh',
  apiId: 0123455,
  logLevel: 'error',
  plugins: [],
  clientOptions: {},
  login: {
    sessionName: 'myapp',
    forceDotSession: true,
    botToken: '',
  },
  experimental: {},
};
module.exports = config;

Для платформы Deno ситуация может быть немного иной, поскольку Deno полностью использует ESM. Поэтому необходимо настроить конфигурацию так:

tgsnake.config.js
/** @type {import('tgsnake').Options} */
const config = {
  apiHash: 'abcdefgh',
  apiId: 0123455,
  logLevel: 'error',
  plugins: [],
  clientOptions: {},
  login: {
    sessionName: 'myapp',
    forceDotSession: true,
    botToken: '',
  },
  experimental: {}
};
export default config;

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

    • tgsnake.config.js
    • package.json
    • yarn.lock
  • Если конфигурация не найдена и вы не создавали конфигурацию при создании клиента, появится ошибка. Приведенный выше фрагмент кода является примером его реализации, а ниже приводится объяснение каждого параметра.

    apiHash

    type: string
    Когда вы создаете свое приложение на my.telegram.org, в конечном итоге вы получите API Hash и API ID. Заполните этот параметр полученным API Hash.

    apiId

    type: number
    Когда вы создаете свое приложение на my.telegram.org, в конечном итоге вы получите API Hash и API ID. Заполните этот параметр полученным API ID.

    logLevel

    type: string | Array<string> Параметр для установки уровней логирования отображающихся в терминале. Заполните его массивом уровней, чтобы можно было управлять двумя или более уровнями одновременно. По умолчанию он будет читать env, подробнее

    plugins

    type: Array<Function>
    Список плагинов, которые будут созданы при первом вызове .run(). Ознакомьтесь с руководством по созданию плагина здесь.

    clientOptions

    type: ClientOptions Дополнительные параметры, необходимые для создания клиента. Этот вариант - параметр, который позднее будет использоваться @tgsnake/core.

    login

    type: LoginWithSession
    Параметр для завершения действия входа. Этот параметр должен быть объектом, соответствующим заданному типу.

    interface LoginWithSession {
      /**
       * Строка сессии или импортируйте класс сессии.
       */
      session?: string | Storages.AbstractSession;
      /**
       * Войдите в систему как бот, используя токен от Bot Father. <br/>
       * Действует только в том случае, если `session` нет.
       */
      botToken?: string;
      /**
       * Принудительно перенести сессию в файл .session, если поле сессии передано в виде строки. <br/>
       * По умолчанию true.
       */
      forceDotSession?: boolean;
      /**
       * Имя сеанса, которое будет использоваться для чтения файла .session. <br/>
       * По умолчанию "tgsnake"
       */
      sessionName?: string;
    }

    session

    type: string | Storages.AbstractSession | undefined Класс Session предназначен для хранения информации о входе. Сессия может представлять собой string session или экземпляр класса Storages.AbstractSession из @tgsnake/core.

    botToken

    type: string | undefined
    Если вы хотите войти, используя токен бота, полученный от BotFather, вы можете добавить в этот параметр токен.

    forceDotSession

    type: boolean | undefined
    Этот параметр будет использоваться для создания файлов с расширениями .session и .cache. Имя файла будет соответствовать указанному в sessionName. Значение по умолчанию - true.

    sessionName

    type: string | undefined
    Имя текущей сессии, которое затем будет использоваться для входа. Значение по умолчанию - tgsnake.

    experimental

    type: ExperimentalOptions
    Экспериментальный параметр, которая может работать нестабильно. Мы не рекомендуем использовать эту опцию. Вы должны понимать каждый риск, который может возникнуть.

    ПараметрыОбязательныйТипОписание
    alwaysOnlinefalsebooleanКогда пользователь находится не в сети, он автоматически вернётся в онлайн. По умолчанию false.
    alwaysSyncfalsebooleanДля супергрупп/каналов, которые слишком часто отправляют сообщения, чтобы через 2 минуты работы клиента обновлений от Telegram больше не было. Вы можете использовать эту опцию, чтобы заставить клиент синхронизироваться с заранее заданными интервалами и задержками. По умолчанию false.
    customPathfalseCustomPathПримените собственные пути для некоторых конфигураций, таких как данные для входа и кеш.
    onlineOnStartfalseПри запуске нового клиента будет ли он отображать статус, что пользователь находится в сети. По умолчанию false.
    shutdownfalsebooleanСделайте функцию завершения работы по умолчанию в классе client. По умолчанию этот параметр true. Читать руководство по выключению.
    syncEveryfalsenumberПроверяйте канал каждый раз. Если по истечении таймаута syncTimeout обновления не получены, для синхронизации будет вызвана функция getChannelDifference. По умолчанию 10000.
    syncTimeoutfalsenumberДля супергрупп/каналов, которые слишком часто отправляют сообщения, чтобы через 2 минуты работы клиента обновлений от Telegram больше не было. Вы можете использовать эту опцию, чтобы заставить клиент синхронизироваться с заранее заданными интервалами и задержками. По умолчанию 30000.

    customPath

    ПараметрыОбязательныйТипОписание
    loginDirfalsestringДиректория, в которой будут храниться все данные для входа. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сессии, такие как RedisSession. По умолчанию используется process.cwd().
    loginExtfalsestringРасширение файла сохраненной информации для входа. По умолчанию расширение файла — session. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сессии, такие как RedisSession. По умолчанию — session
    cacheDirfalsestringДиректория, в которой будет храниться весь кэш. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сеансы, такие как RedisSession. По умолчанию используется process.cwd().
    cacheExtfalsestringРасширение файла сохраненного кеша. По умолчанию расширение файла — ‘cache’. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сеансы, такие как RedisSession. По умолчанию – cache.