mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2025-03-31 05:43:44 +03:00
Add documentation for using proxy
This commit is contained in:
parent
ade4088551
commit
da48b9023f
62
README.md
62
README.md
@ -140,6 +140,68 @@ export class BotService {
|
|||||||
|
|
||||||
See https://github.com/bukhalo/nestjs-telegraf/issues/7#issuecomment-577582322
|
See https://github.com/bukhalo/nestjs-telegraf/issues/7#issuecomment-577582322
|
||||||
|
|
||||||
|
### Telegraf use proxy
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
|
||||||
|
/* bot.config.ts */
|
||||||
|
|
||||||
|
import { registerAs } from '@nestjs/config'
|
||||||
|
|
||||||
|
interface Config {
|
||||||
|
token: string
|
||||||
|
socksHost: string
|
||||||
|
socksPort: string | number
|
||||||
|
socksUser: string
|
||||||
|
socksPassword: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export default registerAs(
|
||||||
|
'bot',
|
||||||
|
(): Config => ({
|
||||||
|
token: process.env.TELEGRAM_BOT_TOKEN,
|
||||||
|
socksHost: process.env.TELEGRAM_BOT_SOCKS_HOST,
|
||||||
|
socksPort: process.env.TELEGRAM_BOT_SOCKS_PORT,
|
||||||
|
socksUser: process.env.TELEGRAM_BOT_SOCKS_USER,
|
||||||
|
socksPassword: process.env.TELEGRAM_BOT_SOCKS_PASS,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
|
||||||
|
/* telegraf-config.service.ts */
|
||||||
|
|
||||||
|
import { Injectable } from '@nestjs/common'
|
||||||
|
import { ConfigService } from '@nestjs/config'
|
||||||
|
import { TelegrafModuleOptions, TelegrafOptionsFactory } from 'nestjs-telegraf'
|
||||||
|
import { SocksProxyAgent } from 'socks-proxy-agent'
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class TelegrafConfigService implements TelegrafOptionsFactory {
|
||||||
|
private agent
|
||||||
|
|
||||||
|
constructor(private readonly configService: ConfigService) {}
|
||||||
|
|
||||||
|
createTelegrafOptions(): TelegrafModuleOptions {
|
||||||
|
const proxyConfig = {
|
||||||
|
host: this.configService.get('bot.socksHost'),
|
||||||
|
port: this.configService.get('bot.socksPort'),
|
||||||
|
userId: this.configService.get('bot.socksUser'),
|
||||||
|
password: this.configService.get('bot.socksPassword'),
|
||||||
|
}
|
||||||
|
this.agent = new SocksProxyAgent(proxyConfig)
|
||||||
|
|
||||||
|
return {
|
||||||
|
token: this.configService.get('bot.token'),
|
||||||
|
telegrafOptions: { telegram: { agent: this.agent } },
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
### Telegram
|
### Telegram
|
||||||
|
|
||||||
#### Telegram methods usage
|
#### Telegram methods usage
|
||||||
|
Loading…
Reference in New Issue
Block a user