commit
2878880fd5
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hubot-matrix",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"description": "Matrix adapter for hubot",
|
||||
"main": "src/matrix.coffee",
|
||||
"scripts": {
|
||||
@ -10,7 +10,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"parent-require": "^1.0.0",
|
||||
"matrix-js-sdk": ">=0.3.0"
|
||||
"matrix-js-sdk": "^0.6.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"hubot": ">=2.0"
|
||||
|
@ -18,12 +18,28 @@ class Matrix extends Adapter
|
||||
if /^(f|ht)tps?:\/\//i.test(str)
|
||||
@sendImage envelope, str
|
||||
else
|
||||
@client.sendTextMessage envelope.room, str
|
||||
@client.sendMessage envelope.room, {
|
||||
msgtype: "m.notice",
|
||||
body: str
|
||||
}
|
||||
|
||||
emote: (envelope, strings...) ->
|
||||
for str in strings
|
||||
@client.sendMessage envelope.room, {
|
||||
msgtype: "m.emote",
|
||||
body: str
|
||||
}
|
||||
|
||||
reply: (envelope, strings...) ->
|
||||
for str in strings
|
||||
@send envelope, "#{envelope.user.name}: #{str}"
|
||||
|
||||
topic: (envelope, strings...) ->
|
||||
for str in strings
|
||||
@client.sendEvent envelope.room, "m.room.topic", {
|
||||
topic: str
|
||||
}
|
||||
|
||||
sendImage: (envelope, url) ->
|
||||
@client.uploadContent(stream: request url, name: url).done (murl) =>
|
||||
@client.sendMessage envelope.room, {
|
||||
@ -49,11 +65,14 @@ class Matrix extends Adapter
|
||||
baseUrl: process.env.HUBOT_MATRIX_HOST_SERVER || 'https://matrix.org'
|
||||
accessToken: @access_token
|
||||
userId: @user_id
|
||||
@client.on 'syncComplete', =>
|
||||
@robot.logger.info "Synced #{@client.getRooms().length} rooms"
|
||||
@emit 'connected'
|
||||
@client.on 'sync', (state, prevState, data) =>
|
||||
switch state
|
||||
when "PREPARED"
|
||||
@robot.logger.info "Synced #{@client.getRooms().length} rooms"
|
||||
@emit 'connected'
|
||||
@client.on 'Room.timeline', (event, room, toStartOfTimeline) =>
|
||||
if event.getType() == 'm.room.message' and toStartOfTimeline == false
|
||||
@client.sendReadReceipt(event)
|
||||
if event.getType() == 'm.room.message' and event.getContent().msgtype != "m.notice" and toStartOfTimeline == false
|
||||
message = event.getContent().body
|
||||
name = event.getSender()
|
||||
user = @robot.brain.userForId name
|
||||
|
Loading…
Reference in New Issue
Block a user