Commit d52503ab48f7a45f186725bc4f1b867f30b24e39

Authored by Adhidarma Hadiwinoto
1 parent 3a60c3b70a
Exists in master

ready to test

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

... ... @@ -3,8 +3,11 @@ var url = require('url');
3 3 var winston = require('winston');
4 4 var strftime = require('strftime');
5 5 var strptime = require('micro-strptime').strptime;
  6 +var request = require('request');
  7 +var striptags = require('striptags');
6 8 var fs = require('fs');
7 9 var ini = require('ini');
  10 +
8 11 var config = ini.parse(fs.readFileSync(__dirname + '/config.ini', 'utf-8'));
9 12  
10 13 var last_message_hash;
... ... @@ -44,14 +47,17 @@ function sendIgnoreResponse(destination, message) {
44 47 function onPm(data) {
45 48 logger.info('onPM()', {data: data});
46 49  
47   - var new_message_hash = data.sender + ': ' + data.message;
  50 + var message = striptags(data.message);
  51 + var new_message_hash = data.sender + ': ' + message;
48 52  
49 53 if (last_message_hash == new_message_hash) {
50 54 return;
51 55 }
52 56  
53 57 last_message_hash = new_message_hash;
54   - ym.sendPM(data.sender, "Pesan anda telah diterima dan akan segera diproses: " + data.message);
  58 + ym.sendPM(data.sender, "Pesan anda telah diterima dan akan segera diproses: " + message);
  59 +
  60 + forwardMessageToEvo(data.sender, message, formatTimestamp(data.time));
55 61 }
56 62  
57 63 function onOfflinePM(data) {
... ... @@ -68,6 +74,34 @@ function onBuddyAddRequest(data) {
68 74 function onHttpIncomingMessage(request, response) {
69 75 var qs = url.parse(request.url, true).query;
70 76 logger.info("onHttpIncomingMessage()", {qs: qs});
  77 +
  78 + ym.sendPM(qs.to, qs.msg);
  79 + response.end('OK');
  80 +}
  81 +
  82 +function formatTimestamp(ts) {
  83 + var _ts = strptime(ts, '%A %b %d %Y %H:%M:%S GMT%z');
  84 + return strftime('%F %T', _ts);
  85 +}
  86 +
  87 +function forwardMessageToEvo(sender, message, ts) {
  88 + var opts = {
  89 + url: config.globals.evo_url,
  90 + qs: {
  91 + msg: message,
  92 + msisdn: sender,
  93 + smsc: config.globals.smsc,
  94 + ts: ts
  95 + }
  96 + };
  97 +
  98 + logger.info("Forwarding message to evo", {request_opts: opts});
  99 + request(opts, function(err, response, body) {
  100 + if (err) {
  101 + logger.warn('Error forwarding to evo: ' + err);
  102 + return;
  103 + }
  104 + });
71 105 }
72 106  
73 107 function createHttpServer() {
... ... @@ -26,6 +26,8 @@
26 26 "url": "~0.11.0",
27 27 "winston": "~1.1.1",
28 28 "strftime": "~0.9.2",
29   - "micro-strptime": "~0.2.2"
  29 + "micro-strptime": "~0.2.2",
  30 + "request": "~2.65.0",
  31 + "striptags": "~2.0.4"
30 32 }
31 33 }