Commit d94bc60ef57eabf628166e07bf664c9b0aa56e10

Authored by Adhidarma Hadiwinoto
1 parent c9fecc1795
Exists in master

debug chat id

Showing 1 changed file with 6 additions and 1 deletions Inline Diff

1 var telegram = require('node-telegram-bot-api'); 1 var telegram = require('node-telegram-bot-api');
2 var logger = require('./logger.js').start(); 2 var logger = require('./logger.js').start();
3 var http = require('http'); 3 var http = require('http');
4 var evo = require('./evo-im.js'); 4 var evo = require('./evo-im.js');
5 5
6 var config = require('./config.json'); 6 var config = require('./config.json');
7 7
8 evo.start({ 8 evo.start({
9 config: config, 9 config: config,
10 logger: logger 10 logger: logger
11 }); 11 });
12 12
13 var chat_ids = {}; 13 var chat_ids = {};
14 14
15 var options = { 15 var options = {
16 webHook: { 16 webHook: {
17 port: config.webhook_port, 17 port: config.webhook_port,
18 key: __dirname+'/key.pem', 18 key: __dirname+'/key.pem',
19 cert: __dirname+'/crt.pem' 19 cert: __dirname+'/crt.pem'
20 } 20 }
21 }; 21 };
22 22
23 var bot = new telegram(config.token, options); 23 var bot = new telegram(config.token, options);
24 bot.setWebHook(config.webhook_prefix + config.token, __dirname+'/crt.pem'); 24 bot.setWebHook(config.webhook_prefix + config.token, __dirname+'/crt.pem');
25 25
26 function deleteChatId(from) { 26 function deleteChatId(from) {
27 delete chat_ids[from]; 27 delete chat_ids[from];
28 } 28 }
29 29
30 function updateChatId(from, chat_id) {
31 chat_ids[from] = chat_id;
32 logger.verbose('Chat id ' + chat_id + ' ' + from);
33 }
34
30 function sendMessage(destination, message) { 35 function sendMessage(destination, message) {
31 var chat_id = chat_ids[destination]; 36 var chat_id = chat_ids[destination];
32 37
33 if (!chat_id) { 38 if (!chat_id) {
34 logger.warn('Can not find approriate chat id for ' + destination + '. Abort sending message.'); 39 logger.warn('Can not find approriate chat id for ' + destination + '. Abort sending message.');
35 return; 40 return;
36 } 41 }
37 42
38 logger.info('Sending reply to ' + destination + '(' + chat_id + '): ' + message); 43 logger.info('Sending reply to ' + destination + '(' + chat_id + '): ' + message);
39 44
40 bot.sendMessage(chat_id, message); 45 bot.sendMessage(chat_id, message);
41 } 46 }
42 47
43 bot.getMe().then(function (me) { 48 bot.getMe().then(function (me) {
44 logger.info('Hi my name is %s!', me.username); 49 logger.info('Hi my name is %s!', me.username);
45 }); 50 });
46 51
47 bot.on('text', function (msg) { 52 bot.on('text', function (msg) {
48 logger.info('Incoming message (' + msg.chat.id + '): ' + msg.text, {message: msg}); 53 logger.info('Incoming message (' + msg.chat.id + '): ' + msg.text, {message: msg});
49 54
50 var from = msg.from.username.toUpperCase() + config.msisdn_suffix; 55 var from = msg.from.username.toUpperCase() + config.msisdn_suffix;
51 56
52 var now = Math.floor(new Date().getTime()/1000); 57 var now = Math.floor(new Date().getTime()/1000);
53 58
54 if (now - msg.date > config.message_max_age){ 59 if (now - msg.date > config.message_max_age){
55 var message = "Pesan anda diabaikan, silahkan diulang beberapa saat lagi jika diperlukan: " + msg.text; 60 var message = "Pesan anda diabaikan, silahkan diulang beberapa saat lagi jika diperlukan: " + msg.text;
56 logger.info(message, {msg: msg}) 61 logger.info(message, {msg: msg})
57 //bot.sendMessage(msg.chat.id, message); 62 //bot.sendMessage(msg.chat.id, message);
58 sendMessage(from, message); 63 sendMessage(from, message);
59 return; 64 return;
60 } 65 }
61 66
62 chat_ids[from] = msg.chat.id; 67 updateChatId(from, msg.chat.id);
63 68
64 var greeting_prefix = "Pesan anda telah diterima:"; 69 var greeting_prefix = "Pesan anda telah diterima:";
65 if (config.greeting_prefix) { 70 if (config.greeting_prefix) {
66 greeting_prefix = config.greeting_prefix; 71 greeting_prefix = config.greeting_prefix;
67 } 72 }
68 73
69 bot.sendMessage(msg.chat.id, greeting_prefix + ' ' + msg.text); 74 bot.sendMessage(msg.chat.id, greeting_prefix + ' ' + msg.text);
70 setTimeout( 75 setTimeout(
71 evo.onMessage, 76 evo.onMessage,
72 300, 77 300,
73 from, msg.text, msg.date * 1000, sendMessage 78 from, msg.text, msg.date * 1000, sendMessage
74 ); 79 );
75 }); 80 });
76 81
77 function dumpChatIds() { 82 function dumpChatIds() {
78 var i = 0; 83 var i = 0;
79 for (var key in chat_ids) { 84 for (var key in chat_ids) {
80 logger.verbose('DUMPED CHAT IDS #' + ++i + ' ' + key + ': ' + chat_ids[key]) 85 logger.verbose('DUMPED CHAT IDS #' + ++i + ' ' + key + ': ' + chat_ids[key])
81 } 86 }
82 87
83 logger.verbose('TOTAL ' + i + ' chat ids'); 88 logger.verbose('TOTAL ' + i + ' chat ids');
84 } 89 }
85 90
86 if (config.dump_chat_ids_interval) { 91 if (config.dump_chat_ids_interval) {
87 setInterval(dumpChatIds, config.dump_chat_ids_interval * 1000); 92 setInterval(dumpChatIds, config.dump_chat_ids_interval * 1000);
88 } 93 }
89 94