summaryrefslogtreecommitdiff
path: root/dist/classes/CLIEvent.js
blob: d2992b79336874b1d822fc1655366a3120d1ad71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CLIEvent = void 0;
const GroupTypingMessage_1 = require("./GroupTypingMessage");
const User_1 = require("./User");
const DMTypingMessage_1 = require("./DMTypingMessage");
const GroupDataMessage_1 = require("./GroupDataMessage");
const DMDataMessage_1 = require("./DMDataMessage");
const UserDataType_1 = require("../enums/UserDataType");
const DMReactionMessage_1 = require("./DMReactionMessage");
const GroupReactionMessage_1 = require("./GroupReactionMessage");
const CLIDispatcher_1 = require("./CLIDispatcher");
const DMStickerMessage_1 = require("./DMStickerMessage");
const GroupStickerMessage_1 = require("./GroupStickerMessage");
const DMEditMessage_1 = require("./DMEditMessage");
const GroupEditMessage_1 = require("./GroupEditMessage");
const GroupDeleteMessage_1 = require("./GroupDeleteMessage");
const DMDeleteMessage_1 = require("./DMDeleteMessage");
/**
 * A signal-cli event
 */
class CLIEvent {
    static fromEvent(client, data) {
        client.emit("cliEvent", data);
        if (data.method === "receive") {
            if (data.params.envelope.typingMessage) {
                if (client.verbose)
                    console.log(data.params.envelope.typingMessage);
                if (data.params.envelope.typingMessage.groupId) {
                    let message = new GroupTypingMessage_1.GroupTypingMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, data.params.envelope.typingMessage.groupId, client);
                    client.emit("typingMessage", message);
                }
                else {
                    let message = new DMTypingMessage_1.DMTypingMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, client);
                    client.emit("typingMessage", message);
                }
            }
            else if (data.params.envelope.editMessage) {
                if (client.verbose)
                    console.log(data.params.envelope.editMessage);
                if (data.params.envelope.editMessage.dataMessage.groupInfo) {
                    let message = new GroupEditMessage_1.GroupEditMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.editMessage.dataMessage, data.params.envelope.editMessage.dataMessage.timestamp, data.params.envelope.editMessage.dataMessage.groupInfo.groupId, data.params.envelope.editMessage.targetSentTimestamp, client);
                    client.emit("editMessage", message);
                }
                else {
                    let message = new DMEditMessage_1.DMEditMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.editMessage.dataMessage, data.params.envelope.editMessage.dataMessage.timestamp, data.params.envelope.editMessage.targetSentTimestamp, client);
                    client.emit("editMessage", message);
                }
            }
            else if (data.params.envelope.dataMessage) {
                if (client.verbose)
                    console.log(data.params.envelope.dataMessage);
                if (data.params.envelope.dataMessage.remoteDelete) {
                    if (data.params.envelope.dataMessage.groupInfo) {
                        let message = new GroupDeleteMessage_1.GroupDeleteMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, data.params.envelope.dataMessage.groupInfo.groupId, client, data.params.envelope.dataMessage.remoteDelete.timestamp);
                        client.emit("deleteMessage", message);
                    }
                    else {
                        let message = new DMDeleteMessage_1.DMDeleteMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, client, data.params.envelope.dataMessage.remoteDelete.timestamp);
                        client.emit("deleteMessage", message);
                    }
                }
                else if (data.params.envelope.dataMessage.reaction) {
                    if (data.params.envelope.dataMessage.groupInfo) {
                        let message = new GroupReactionMessage_1.GroupReactionMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, data.params.envelope.dataMessage.groupInfo.groupId, client);
                        client.emit("reaction", message);
                        if (message.removed) {
                            client.emit("reactionRemove", message);
                        }
                        else {
                            client.emit("reactionAdd", message);
                        }
                    }
                    else {
                        let message = new DMReactionMessage_1.DMReactionMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, client);
                        client.emit("reaction", message);
                        if (message.removed) {
                            client.emit("reactionRemove", message);
                        }
                        else {
                            client.emit("reactionAdd", message);
                        }
                    }
                }
                else if (data.params.envelope.dataMessage.sticker) {
                    CLIDispatcher_1.CLIDispatcher.dispatch("listStickerPacks", {}, client.process).then((cliData) => {
                        client.stickerPacks['list'] = cliData.result;
                        if (data.params.envelope.dataMessage.groupInfo) {
                            let message = new GroupStickerMessage_1.GroupStickerMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, data.params.envelope.dataMessage.groupInfo.groupId, client);
                            client.emit("sticker", message);
                        }
                        else {
                            let message = new DMStickerMessage_1.DMStickerMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, client);
                            client.emit("sticker", message);
                        }
                    });
                }
                else {
                    if (data.params.envelope.dataMessage.groupInfo) {
                        let message = new GroupDataMessage_1.GroupDataMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, data.params.envelope.dataMessage.groupInfo.groupId, client);
                        client.emit("message", message);
                    }
                    else {
                        let message = new DMDataMessage_1.DMDataMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, client);
                        client.emit("message", message);
                    }
                }
            }
        }
    }
}
exports.CLIEvent = CLIEvent;
//# sourceMappingURL=CLIEvent.js.map