Commit 1075631ae9f254b5d06d31d674d127c92e0bc4de

Authored by Adhidarma Hadiwinoto
1 parent 0385eb763f
Exists in master

ready to rocks

Showing 3 changed files with 39 additions and 2 deletions Side-by-side Diff

1 1 node_modules/
2 2 config.ini
  3 +log.2015-09-29
... ... @@ -3,9 +3,28 @@ var http = require('http');
3 3 var url = require('url');
4 4 var fs = require('fs');
5 5 var ini = require('ini');
  6 +var strftime = require('strftime');
6 7 var xmpp = require('simple-xmpp');
7 8 var winston = require('winston');
8 9  
  10 +var warming_up = true;
  11 +
  12 +var logger = new (winston.Logger)({
  13 + transports: [
  14 + new (winston.transports.Console)({
  15 + timestamp: function() {
  16 + return strftime('%F %T', new Date());
  17 + }
  18 + }),
  19 + new (winston.transports.DailyRotateFile)({
  20 + filename: 'log',
  21 + timestamp: function() {
  22 + return strftime('%F %T', new Date());
  23 + }
  24 + })
  25 + ]
  26 +});
  27 +
9 28 var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8'));
10 29  
11 30 function createHttpListener() {
... ... @@ -25,7 +44,7 @@ function createHttpListener() {
25 44 }
26 45  
27 46 function sendMessage(destination, message) {
28   - logger.info('Sending message', {destination: destination, message: message});
  47 + logger.info('Sending xmpp message', {destination: destination, message: message});
29 48 xmpp.send(destination, message);
30 49 }
31 50  
... ... @@ -51,10 +70,26 @@ function reportToSMSIN(from, message) {
51 70 xmpp.on('online', function(data) {
52 71 logger.info('XMPP online', {data: data});
53 72 logger.info('Connected with JID: ' + data.jid.user);
  73 +
  74 + setTimeout(function() {
  75 + warming_up = false;
  76 + logger.info('BOT selesai warming up, pesan-pesan selanjutnya akan diproses');
  77 + }, config.globals.warming_up);
54 78 });
55 79  
56 80 xmpp.on('chat', function(from, message) {
57 81 logger.info('Incoming message via XMPP ', {from: from, message: message});
  82 +
  83 + if (warming_up) {
  84 + logger.info('BOT masih dalam tahap warming up, abaikan pesan');
  85 + var response_message = 'Pesan diabaikan. Silahkan diulang kembali: ' + message;
  86 + sendMessage(from, response_message);
  87 + return;
  88 + }
  89 +
  90 + var response_message = 'Pesan anda telah diterima dan akan segera diproses: ' + message;
  91 + sendMessage(from, response_message);
  92 +
58 93 reportToSMSIN(from, message);
59 94 });
60 95  
... ... @@ -24,6 +24,7 @@
24 24 "ini": "~1.3.4",
25 25 "request": "~2.64.0",
26 26 "url": "~0.11.0",
27   - "winston": "~1.0.2"
  27 + "winston": "~1.0.2",
  28 + "strftime": "~0.9.2"
28 29 }
29 30 }