mirror of
https://github.com/muerwre/vk-tg-bot.git
synced 2025-04-25 06:56:40 +07:00
#5 added webhook probe
This commit is contained in:
parent
1fe3d35540
commit
6344f6dc5a
4 changed files with 35 additions and 5 deletions
|
@ -11,8 +11,8 @@ import { corsMiddleware, errorMiddleware } from "./middleware";
|
||||||
import { WebhookConfig } from "../../service/telegram/types";
|
import { WebhookConfig } from "../../service/telegram/types";
|
||||||
|
|
||||||
export class HttpApi {
|
export class HttpApi {
|
||||||
app: Express;
|
app!: Express;
|
||||||
webhook: WebhookConfig;
|
webhook!: WebhookConfig;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private props: HttpConfig,
|
private props: HttpConfig,
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import { TelegramService } from "../../service/telegram";
|
import { TelegramService } from "../../service/telegram";
|
||||||
|
import axios from "axios";
|
||||||
|
import logger from "../../service/logger";
|
||||||
|
|
||||||
export class TelegramApi {
|
export class TelegramApi {
|
||||||
constructor(private telegram: TelegramService) {}
|
constructor(private telegram: TelegramService) {}
|
||||||
|
@ -16,4 +18,25 @@ export class TelegramApi {
|
||||||
"CAACAgIAAxkBAAIB6F82KSeJBEFer895bb7mFI7_GzYoAAISAAOwODIrOXeFNb5v4aEaBA"
|
"CAACAgIAAxkBAAIB6F82KSeJBEFer895bb7mFI7_GzYoAAISAAOwODIrOXeFNb5v4aEaBA"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Probes webhook url and falls back to polling mode on error
|
||||||
|
*/
|
||||||
|
public probe = async () => {
|
||||||
|
if (!this.telegram.webhook.enabled || !this.telegram.webhook.url) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await axios.get(this.telegram.webhook.url);
|
||||||
|
logger.info(
|
||||||
|
`probing telegram webhook at ${this.telegram.webhook.url} succeeded`
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
logger.warn(
|
||||||
|
`probing telegram webhook at ${this.telegram.webhook.url} failed, falling back to polling mode`
|
||||||
|
);
|
||||||
|
await this.telegram.bot.launch();
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,10 +16,15 @@ async function main() {
|
||||||
const telegram = new TelegramService(config.telegram);
|
const telegram = new TelegramService(config.telegram);
|
||||||
const vkService = new VkService(config.vk, telegram, config.templates, db);
|
const vkService = new VkService(config.vk, telegram, config.templates, db);
|
||||||
|
|
||||||
const telegramApi = new TelegramApi(telegram).listen();
|
const telegramApi = new TelegramApi(telegram);
|
||||||
|
telegramApi.listen();
|
||||||
|
|
||||||
await telegram.start();
|
await telegram.start();
|
||||||
|
|
||||||
const httpApi = new HttpApi(config.http, telegram, vkService).listen();
|
const httpApi = new HttpApi(config.http, telegram, vkService);
|
||||||
|
|
||||||
|
await httpApi.listen();
|
||||||
|
await telegramApi.probe();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(e.message);
|
logger.error(e.message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,11 @@
|
||||||
likes: ['😱','🤔','😃']
|
likes: ['😱','🤔','😃']
|
||||||
---
|
---
|
||||||
{{!--
|
{{!--
|
||||||
|
|
||||||
use handlebars template here
|
use handlebars template here
|
||||||
available variables are: text, user, group, type
|
available variables are: text, user, group, type
|
||||||
(see PostNewHandler)
|
(see PostNewHandler)
|
||||||
|
|
||||||
--}}
|
--}}
|
||||||
{{#ifEq type 'suggest'}}
|
{{#ifEq type 'suggest'}}
|
||||||
Предложка:
|
Предложка:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue