From d24c35089c11f86878e47f855bd5b6a4ef7e340e Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sat, 21 Jan 2023 00:45:21 +0300 Subject: durov: use webhook --- vnext/server/durov.js | 12 +++++++++++- vnext/server/index.js | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'vnext') diff --git a/vnext/server/durov.js b/vnext/server/durov.js index acd89158..df33f743 100644 --- a/vnext/server/durov.js +++ b/vnext/server/durov.js @@ -7,13 +7,23 @@ import config from 'config'; import { formatQuote, formatTitle } from './common/MessageUtils'; import { format } from '../src/utils/embed'; -const sender = new TelegramBot(config.get('service.durov.token'), { polling: true }); +const bot_token = config.get('service.durov.token'); + +const sender = new TelegramBot(bot_token); const demouser = config.get('service.durov.demouser'); +sender.setWebHook(`${config.get('service.baseURL')}/api/${bot_token}`).then(() => { + log('Webhook is set'); +}).catch(console.log); sender.on('message', msg => { log(`MESSAGE: ${JSON.stringify(msg)}`); }); +export const webhook = (req, res) => { + sender.processUpdate(JSON.parse(req.body)); + res.sendStatus(200); +}; + /** * @param {import('../src/api').Message} msg * @param {string[]} subscribers diff --git a/vnext/server/index.js b/vnext/server/index.js index 89122069..b4c637bf 100644 --- a/vnext/server/index.js +++ b/vnext/server/index.js @@ -10,8 +10,11 @@ import event from './middleware/event'; import oembed from './middleware/oembed'; import urlExpand from './middleware/urlexpand'; +const bot_token = config.get('service.durov.token'); + const PORT = 8081; import path from 'path'; +import { webhook } from './durov'; // initialize the application and create the routes const app = express(); @@ -22,6 +25,7 @@ const router = express.Router(); router.post('/api/sender', event); router.get('/api/oembed', oembed); router.get('/api/urlexpand', urlExpand); +router.post(`/api/${bot_token}`, webhook); router.use('^/$', serverRenderer); const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'public'); -- cgit v1.2.3