Commit 7676e51eb022c18bc82556b19773622eaea1c822

Authored by Husni Mubarok
1 parent 025274bdbf
Exists in master

Hapus _ pada Nama Log

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

1 var iniparser = require('iniparser'); 1 var iniparser = require('iniparser');
2 var config = iniparser.parseSync('./config.ini'); 2 var config = iniparser.parseSync('./config.ini');
3 var telegram = require('node-telegram-bot-api'); 3 var telegram = require('node-telegram-bot-api');
4 var request = require('request'); 4 var request = require('request');
5 var http = require('http'); 5 var http = require('http');
6 var url = require('url'); 6 var url = require('url');
7 var strftime = require('strftime'); 7 var strftime = require('strftime');
8 var winston = require('winston'); 8 var winston = require('winston');
9 9
10 var logger = new (winston.Logger)({ 10 var logger = new (winston.Logger)({
11 transports: [ 11 transports: [
12 new (winston.transports.Console)({ 12 new (winston.transports.Console)({
13 timestamp: function() { 13 timestamp: function() {
14 return strftime('%F %T', new Date()); 14 return strftime('%F %T', new Date());
15 }, 15 },
16 formatter: function(options) { 16 formatter: function(options) {
17 // Return string will be passed to logger. 17 // Return string will be passed to logger.
18 return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '') + 18 return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '') +
19 (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' ); 19 (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' );
20 } 20 }
21 }), 21 }),
22 new (winston.transports.DailyRotateFile)({ 22 new (winston.transports.DailyRotateFile)({
23 filename: 'log_', 23 filename: 'log',
24 timestamp: function() { 24 timestamp: function() {
25 return strftime('%F %T', new Date()); 25 return strftime('%F %T', new Date());
26 }, 26 },
27 formatter: function(options) { 27 formatter: function(options) {
28 // Return string will be passed to logger. 28 // Return string will be passed to logger.
29 return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '') + 29 return options.timestamp() +' '+ options.level.toUpperCase() +' '+ (undefined !== options.message ? options.message : '') +
30 (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' ); 30 (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' );
31 } 31 }
32 }) 32 })
33 ] 33 ]
34 }); 34 });
35 35
36 36
37 var chat_ids = {}; 37 var chat_ids = {};
38 38
39 var options = { 39 var options = {
40 polling: true 40 polling: true
41 }; 41 };
42 42
43 var bot = new telegram(config.globals.token, options); 43 var bot = new telegram(config.globals.token, options);
44 44
45 function deleteChatId(from) { 45 function deleteChatId(from) {
46 delete chat_ids[from]; 46 delete chat_ids[from];
47 } 47 }
48 48
49 function sendMessage(destination, message) { 49 function sendMessage(destination, message) {
50 //destination = destination.replace(/@TELEGRAM$/, ''); 50 //destination = destination.replace(/@TELEGRAM$/, '');
51 logger.info('Sending reply to ' + destination + ': ' + message); 51 logger.info('Sending reply to ' + destination + ': ' + message);
52 var chat_id = chat_ids[destination]; 52 var chat_id = chat_ids[destination];
53 bot.sendMessage(chat_id, message); 53 bot.sendMessage(chat_id, message);
54 } 54 }
55 55
56 function createHttpResponseServer(){ 56 function createHttpResponseServer(){
57 var httpServer = http.createServer(function(request,response){ 57 var httpServer = http.createServer(function(request,response){
58 var qs = url.parse(request.url, true).query; 58 var qs = url.parse(request.url, true).query;
59 logger.info('Incoming request from SMSIN server:', {qs: qs}) 59 logger.info('Incoming request from SMSIN server:', {qs: qs})
60 //logger.info(qs); 60 //logger.info(qs);
61 response.end('OK'); 61 response.end('OK');
62 62
63 sendMessage(qs.PhoneNumber, qs.text); 63 sendMessage(qs.PhoneNumber, qs.text);
64 }); 64 });
65 httpServer.listen(config.globals.listen_port, function(){ 65 httpServer.listen(config.globals.listen_port, function(){
66 logger.info("listening on " + config.globals.listen_port); 66 logger.info("listening on " + config.globals.listen_port);
67 }) 67 })
68 } 68 }
69 createHttpResponseServer(); 69 createHttpResponseServer();
70 70
71 bot.getMe().then(function (me) { 71 bot.getMe().then(function (me) {
72 logger.info('Hi my name is %s!', me.username); 72 logger.info('Hi my name is %s!', me.username);
73 }); 73 });
74 74
75 bot.on('text', function (msg) { 75 bot.on('text', function (msg) {
76 logger.info(msg); 76 logger.info(msg);
77 77
78 var now = Math.floor(new Date().getTime()/1000); 78 var now = Math.floor(new Date().getTime()/1000);
79 79
80 if (now - msg.date > config.globals.message_max_age){ 80 if (now - msg.date > config.globals.message_max_age){
81 var message = 'Pesan "' + msg.text + '" diabaikan. Silahkan diulang kembali.'; 81 var message = 'Pesan "' + msg.text + '" diabaikan. Silahkan diulang kembali.';
82 logger.info(message) 82 logger.info(message)
83 bot.sendMessage(msg.chat.id, message); 83 bot.sendMessage(msg.chat.id, message);
84 return; 84 return;
85 } 85 }
86 86
87 var from = msg.from.username.toUpperCase() + config.globals.msisdn_suffix; 87 var from = msg.from.username.toUpperCase() + config.globals.msisdn_suffix;
88 88
89 chat_ids[from] = msg.chat.id; 89 chat_ids[from] = msg.chat.id;
90 //setTimeout(deleteChatId, 1000 * 3600 * 24 * 2, from) 90 //setTimeout(deleteChatId, 1000 * 3600 * 24 * 2, from)
91 91
92 bot.sendMessage( msg.chat.id,'Pesan anda telah diterima: ' + msg.text); 92 bot.sendMessage( msg.chat.id,'Pesan anda telah diterima: ' + msg.text);
93 93
94 var request_opts = { 94 var request_opts = {
95 url: config.globals.aaa, 95 url: config.globals.aaa,
96 qs: { 96 qs: {
97 PhoneNumber: from, 97 PhoneNumber: from,
98 Text: msg.text, 98 Text: msg.text,
99 Res_Port: config.globals.listen_port, 99 Res_Port: config.globals.listen_port,
100 SMSCID: config.globals.smscid 100 SMSCID: config.globals.smscid
101 } 101 }
102 }; 102 };
103 103
104 request(request_opts, function(err, response, body) { 104 request(request_opts, function(err, response, body) {
105 if (err) { 105 if (err) {
106 logger.info('Request error: ' + err); 106 logger.info('Request error: ' + err);
107 return; 107 return;
108 } 108 }
109 109
110 logger.info('Response: ' + response); 110 logger.info('Response: ' + response);
111 logger.info('Body: ' + body); 111 logger.info('Body: ' + body);
112 112
113 }); 113 });
114 }); 114 });
115 115
116 116