Commit d52503ab48f7a45f186725bc4f1b867f30b24e39
1 parent
3a60c3b70a
Exists in
master
ready to test
Showing 2 changed files with 39 additions and 3 deletions Side-by-side Diff
index.js
... | ... | @@ -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() { |