Использование конфигурационного файла
Файл конфигурации — это файл, содержащий важные учетные данные. Добавьте tgsnake.config.js
в .gitignore
, чтобы этот файл не попал в GitHUb.
/** @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. Поэтому необходимо настроить конфигурацию так:
/** @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
Экспериментальный параметр, которая может работать нестабильно. Мы не рекомендуем использовать эту опцию. Вы должны понимать каждый риск, который может возникнуть.
Параметры | Обязательный | Тип | Описание |
---|---|---|---|
alwaysOnline | false | boolean | Когда пользователь находится не в сети, он автоматически вернётся в онлайн. По умолчанию false. |
alwaysSync | false | boolean | Для супергрупп/каналов, которые слишком часто отправляют сообщения, чтобы через 2 минуты работы клиента обновлений от Telegram больше не было. Вы можете использовать эту опцию, чтобы заставить клиент синхронизироваться с заранее заданными интервалами и задержками. По умолчанию false. |
customPath | false | CustomPath | Примените собственные пути для некоторых конфигураций, таких как данные для входа и кеш. |
onlineOnStart | false | При запуске нового клиента будет ли он отображать статус, что пользователь находится в сети. По умолчанию false. | |
shutdown | false | boolean | Сделайте функцию завершения работы по умолчанию в классе client. По умолчанию этот параметр true. Читать руководство по выключению. |
syncEvery | false | number | Проверяйте канал каждый раз. Если по истечении таймаута syncTimeout обновления не получены, для синхронизации будет вызвана функция getChannelDifference. По умолчанию 10000. |
syncTimeout | false | number | Для супергрупп/каналов, которые слишком часто отправляют сообщения, чтобы через 2 минуты работы клиента обновлений от Telegram больше не было. Вы можете использовать эту опцию, чтобы заставить клиент синхронизироваться с заранее заданными интервалами и задержками. По умолчанию 30000. |
customPath
Параметры | Обязательный | Тип | Описание |
---|---|---|---|
loginDir | false | string | Директория, в которой будут храниться все данные для входа. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сессии, такие как RedisSession. По умолчанию используется process.cwd() . |
loginExt | false | string | Расширение файла сохраненной информации для входа. По умолчанию расширение файла — session. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сессии, такие как RedisSession. По умолчанию — session |
cacheDir | false | string | Директория, в которой будет храниться весь кэш. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сеансы, такие как RedisSession. По умолчанию используется process.cwd() . |
cacheExt | false | string | Расширение файла сохраненного кеша. По умолчанию расширение файла — ‘cache’. Эта опция работает только тогда, когда активен forceDotSession. И не используйте специальные сеансы, такие как RedisSession. По умолчанию – cache . |