broidHQ / integrations

Connect your App to Multiple Messaging Channels with the W3C Open standard.
https://www.broid.ai
GNU Affero General Public License v3.0
745 stars 83 forks source link

Broid-slack does not support thread reply #150

Open ShinyChang opened 7 years ago

ShinyChang commented 7 years ago

Overview

Steps to Reproduce

  1. Start application
  2. Reply a thread

Observed

I received

{
    "pid": 41035,
    "hostname": "hostname",
    "name": "parser",
    "level": 20,
    "time": 1495610073164,
    "event": {
        "type": "message",
        "message": {
            "type": "message",
            "user": "UXXXXXXXX",
            "text": "help",
            "thread_ts": "1495609649.461128",
            "reply_count": 4,
            "replies": [{
                "user": "UXXXXXXXX",
                "ts": "1495609888.506232"
            }, {
                "user": "UXXXXXXXX",
                "ts": "1495609916.511405"
            }, {
                "user": "UXXXXXXXX",
                "ts": "1495609947.517213"
            }, {
                "user": "UXXXXXXXX",
                "ts": "1495610072.540685"
            }],
            "unread_count": 4,
            "ts": "1495609649.461128"
        },
        "subtype": "message_replied",
        "hidden": true,
        "channel": {
            "id": "CXXXXXXXX",
            "name": "xxxxxx",
            "is_channel": true,
            "created": 1484712180,
            "creator": "UXXXXXXXX",
            "is_archived": false,
            "is_general": false,
            "name_normalized": "xxxxx",
            "is_shared": false,
            "is_org_shared": false,
            "has_pins": true,
            "is_member": true,
            "last_read": "1493366886.606761",
            "latest": {
                "type": "message",
                "user": "UXXXXXXXX",
                "text": "...",
                "thread_ts": "1495605530.830455",
                "parent_user_id": "UXXXXXXXX",
                "ts": "1495609965.520724"
            },
            "unread_count": 512,
            "unread_count_display": 510,
            "members": [],
            "topic": {
                "value": "",
                "creator": "",
                "last_set": 0
            },
            "purpose": {
                "value": "XXXXXXXX",
                "creator": "UXXXXXXXX",
                "last_set": 1484712181
            },
            "previous_names": [],
            "_is_channel": true
        },
        "event_ts": "1495610072.540698",
        "ts": "1495610072.540698"
    },
    "v": 1
}

and got error message:

TypeError: Cannot read property 'substr' of undefined
    at Promise.resolve.then (/Users/shinychang/bots/node_modules/@broid/slack/lib/core/Parser.js:50:38)
    at tryCatcher (/Users/shinychang/bots/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/shinychang/bots/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/Users/shinychang/bots/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromiseCtx (/Users/shinychang/bots/node_modules/bluebird/js/release/promise.js:606:10)
    at Async._drainQueue (/Users/shinychang/bots/node_modules/bluebird/js/release/async.js:138:12)
    at Async._drainQueues (/Users/shinychang/bots/node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/shinychang/bots/node_modules/bluebird/js/release/async.js:17:14)
    at tryOnImmediate (timers.js:543:15)
    at processImmediate [as _immediateCallback] (timers.js:523:5)

Expected

some format like below

{
    "pid": 41375,
    "hostname": "hostname",
    "name": "parser",
    "level": 20,
    "time": 1495610339939,
    "event": {
        "@context": "https://www.w3.org/ns/activitystreams",
        "generator": {
            "id": "cd0504ac-abcd-abcd-abcd-c2504e0fe06d",
            "name": "slack",
            "type": "Service"
        },
        "published": 1495610339,
        "type": "Create",
        "actor": {
            "id": "UXXXXXXXX",
            "name": "foo",
            "type": "Person"
        },
        "target": {
            "id": "GXXXXXXXX",
            "name": "G5799LYRK",
            "type": "Group"
        },
        "object": {
            "content": "test",
            "id": "1495610339.597571",
            "type": "Note"
        }
    },
    "v": 1
}