index.js 1.97 KB
var iniparser = require('iniparser');
var config = iniparser.parseSync('./config.ini');
var telegram = require('node-telegram-bot-api');
var request = require('request');
var http = require('http');
var url = require('url');
 

var chat_ids = {};

var options = {
  polling: true
};

var bot = new telegram(config.globals.token, options);

function sendMessage(destination, message) {
	//destination = destination.replace(/@TELEGRAM$/, '');
	console.log('Sending reply to ' + destination + ': ' + message);
	var chat_id = chat_ids[destination];
	bot.sendMessage(chat_id, message);
}

function createHttpResponseServer(){
	var httpServer = http.createServer(function(request,response){
		var qs = url.parse(request.url, true).query;
		console.log('Incoming message from SMSIN server:')
		console.log(qs);	
		response.end('OK');
		
		sendMessage(qs.PhoneNumber, qs.text);
	});
	httpServer.listen(config.globals.listen_port, function(){
		console.log("listening on " + config.globals.listen_port);
	})
}
createHttpResponseServer();

bot.getMe().then(function (me) {
  console.log('Hi my name is %s!', me.username);
});

bot.on('text', function (msg) {
	console.log(msg);
	
	var now = Math.floor(new Date().getTime()/1000);
	
	if (now - msg.date > config.globals.message_max_age){
		var message = 'Pesan "' + msg.text + '" diabaikan. Silahkan diulang kembali.';
		console.log(message)
		bot.sendMessage(msg.chat.id, message);
		return;
	}
	
	var from = msg.from.username.toUpperCase() + config.globals.msisdn_suffix;
	
	chat_ids[from] = msg.chat.id;
	
	bot.sendMessage( msg.chat.id,'Pesan anda telah diterima: ' + msg.text);

	var request_opts = {
		url: config.globals.aaa,
		qs: {
			PhoneNumber: from,
			Text: msg.text,
			Res_Port: config.globals.listen_port,
			SMSCID: config.globals.smscid
		}
	};
	
	request(request_opts, function(err, response, body) {
		if (err) {
			console.log('Request error: ' + err);
			return;
		}
		
		console.log('Response: ' + response);
		console.log('Body: ' + body);
		
	});
});