Всем привет!
пишу телеграм бота посредством библиотеки telegraf. Нашёл простой пример на JS:
const telegraf = require('telegraf');
const SocksAgent = require('socks5-https-client/lib/Agent');
const socksAgent = new SocksAgent({
socksHost: 'localhost',
socksPort: 9050
});
const telegrammToken = 'token';
const bot = new telegraf(telegrammToken, {
telegram: {
agent: socksAgent
}
});
bot.start(ctx => ctx.reply('Welcome'));
bot.help(ctx => ctx.reply('Send me a sticker'));
bot.on('sticker', ctx => ctx.reply(''));
bot.hears('hi', ctx => ctx.reply('Hey there'));
bot.launch();
Оно работает.
Но я пишу на TypeScript и пытаюсь переписать:
import SocksProxyAgent from 'socks-proxy-agent/dist/agent';
import { Telegraf } from 'telegraf';
import { telegramToken } from './config/botConfig';
const socksAgent = new SocksProxyAgent({
host: 'localhost',
port: 9050
});
const bot = new Telegraf(telegramToken, {
telegram: {
agent: socksAgent
}
});
...
по началу ругался что нет types.
задекларировал (как смог)
declare module 'socks5-https-client/lib/Agent' {
import * as tls from 'tls';
import * as https from 'https';
interface IAgentOptions extends https.AgentOptions, tls.ConnectionOptions {
rejectUnauthorized?: boolean;
maxCachedSessions?: number;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
class Agent extends https.Agent {
constructor(options?: IAgentOptions);
options: IAgentOptions;
private createConnection(options: {}): any;
}
}
и теперь на строке
const bot = new Telegraf(telegramToken, {
telegram: {
agent: socksAgent
}
});
ошибку:
No overload matches this call.
...
подскажите, что не так ...
может кто писал бота на TypeScript и Telegraf с использованием прокси.
Спасибо