UNPKG

4.76 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var facebook_1 = require("./broadcast/facebook");
4var viber_1 = require("./broadcast/viber");
5var telegram_1 = require("./broadcast/telegram");
6var wechat_1 = require("./broadcast/wechat");
7var message_1 = require("./message");
8var viber_2 = require("./viber");
9var Broadcast = /** @class */ (function () {
10 function Broadcast(bot) {
11 this.bot = bot;
12 }
13 Broadcast.prototype.send = function (body) {
14 var _this = this;
15 switch (body.platform) {
16 case 'facebook': {
17 var facebook_2 = new facebook_1.Facebook(this.bot);
18 var response = body.messages
19 .map(function (message) { return function () {
20 return facebook_2
21 .create(new message_1.Message(body.platform).eval(message))
22 .then(function (msgId) {
23 return facebook_2.createFilter(body.filter).then(function (label) {
24 console.log('broadcast:label', label);
25 return facebook_2.send(msgId, label);
26 });
27 })
28 .then(function (id) {
29 return { broadcast_id: id };
30 })
31 .catch(function (ex) {
32 console.error(ex);
33 throw ex;
34 });
35 }; });
36 return response
37 .reduce(function (a, b) {
38 return a.then(function (messages) {
39 return b().then(function (message) {
40 messages.push(message.broadcast_id);
41 return messages;
42 });
43 });
44 }, Promise.resolve([]));
45 }
46 case 'viber': {
47 var viber_3 = new viber_1.Viber(this.bot);
48 var response = body.messages
49 .map(function (message) { return function () {
50 var _viber = new viber_2.Viber(_this.bot);
51 return _viber.accountInfo()
52 .then(function (user) {
53 var converted = new message_1.Message(body.platform).eval(message);
54 converted.sender = {
55 name: user.name,
56 avatar: "https://icons.recime.io/" + _this.bot.id + ".png"
57 };
58 return viber_3.send(converted, body.filter || []);
59 });
60 }; });
61 return response
62 .reduce(function (a, b) {
63 return a.then(function (messages) {
64 return b().then(function (message) {
65 messages.push.apply(messages, message);
66 return messages;
67 });
68 });
69 }, Promise.resolve([]));
70 }
71 case 'telegram': {
72 var telegram_2 = new telegram_1.Telegram(this.bot);
73 var response = body.messages
74 .map(function (message) { return function () {
75 var converted = new message_1.Message(body.platform).eval(message);
76 return telegram_2.send(converted, body.filter || []);
77 }; });
78 return response
79 .reduce(function (a, b) {
80 return a.then(function (messages) {
81 return b().then(function (message) {
82 return {
83 success: true
84 };
85 });
86 });
87 }, Promise.resolve([]));
88 }
89 case 'wechat': {
90 var wechat_2 = new wechat_1.WeChat(this.bot);
91 var response = body.messages
92 .map(function (message) { return function () {
93 var converted = new message_1.Message(body.platform).eval(message);
94 return wechat_2.send(converted, body.filter || []);
95 }; });
96 return response
97 .reduce(function (a, b) {
98 return a.then(function (messages) {
99 return b().then(function (message) {
100 return message;
101 });
102 });
103 }, Promise.resolve([]));
104 }
105 }
106 return Promise.resolve([]);
107 };
108 return Broadcast;
109}());
110exports.Broadcast = Broadcast;