diff options
author | Vitaly Takmazov | 2023-01-21 00:45:21 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2023-01-21 12:20:01 +0300 |
commit | d24c35089c11f86878e47f855bd5b6a4ef7e340e (patch) | |
tree | bd2445073a9577c68e239ca3afd89e6dbde0277b /vnext/server | |
parent | 4c59455fba112f0d7f2ef6ea1a44b3ea702f7a19 (diff) |
durov: use webhook
Diffstat (limited to 'vnext/server')
-rw-r--r-- | vnext/server/durov.js | 12 | ||||
-rw-r--r-- | vnext/server/index.js | 4 |
2 files changed, 15 insertions, 1 deletions
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'); |