@@ -20,7 +20,10 @@ module Agents |
||
| 20 | 20 |
Once the webhook has been setup it can be used to post to other channels or ping team members. |
| 21 | 21 |
To send a private message to team-mate, assign his username as `@username` to the channel option. |
| 22 | 22 |
To communicate with a different webhook on slack, assign your custom webhook name to the webhook option. |
| 23 |
- Messages can also be formatted using [Liquid](https://github.com/cantino/huginn/wiki/Formatting-Events-using-Liquid) |
|
| 23 |
+ Messages can also be formatted using [Liquid](https://github.com/cantino/huginn/wiki/Formatting-Events-using-Liquid). |
|
| 24 |
+ |
|
| 25 |
+ Finally, you can set a custom icon for this webhook in `icon`, either as [emoji](http://unicodey.com/emoji-data/table.htm) or an URL to an image. |
|
| 26 |
+ Leaving this field blank will use the default icon for a webhook. |
|
| 24 | 27 |
MD |
| 25 | 28 |
|
| 26 | 29 |
def default_options |
@@ -29,6 +32,7 @@ module Agents |
||
| 29 | 32 |
'channel' => '#general', |
| 30 | 33 |
'username' => DEFAULT_USERNAME, |
| 31 | 34 |
'message' => "Hey there, It's Huginn", |
| 35 |
+ 'icon' => '', |
|
| 32 | 36 |
} |
| 33 | 37 |
end |
| 34 | 38 |
|
@@ -67,7 +71,11 @@ module Agents |
||
| 67 | 71 |
def receive(incoming_events) |
| 68 | 72 |
incoming_events.each do |event| |
| 69 | 73 |
opts = interpolated(event) |
| 70 |
- slack_notifier.ping opts[:message], channel: opts[:channel], username: opts[:username] |
|
| 74 |
+ if /^:/.match(opts[:icon]) |
|
| 75 |
+ slack_notifier.ping opts[:message], channel: opts[:channel], username: opts[:username], icon_emoji: opts[:icon] |
|
| 76 |
+ else |
|
| 77 |
+ slack_notifier.ping opts[:message], channel: opts[:channel], username: opts[:username], icon_url: opts[:icon] |
|
| 78 |
+ end |
|
| 71 | 79 |
end |
| 72 | 80 |
end |
| 73 | 81 |
end |
@@ -33,6 +33,17 @@ describe Agents::SlackAgent do |
||
| 33 | 33 |
@checker.options['channel'] = nil |
| 34 | 34 |
expect(@checker).not_to be_valid |
| 35 | 35 |
end |
| 36 |
+ |
|
| 37 |
+ it "should allow an icon" do |
|
| 38 |
+ @checker.options['icon_emoji'] = nil |
|
| 39 |
+ expect(@checker).to be_valid |
|
| 40 |
+ @checker.options['icon_emoji'] = ":something:" |
|
| 41 |
+ expect(@checker).to be_valid |
|
| 42 |
+ @checker.options['icon_url'] = "http://something.com/image.png" |
|
| 43 |
+ expect(@checker).to be_valid |
|
| 44 |
+ @checker.options['icon_emoji'] = "something" |
|
| 45 |
+ expect(@checker).to be_valid |
|
| 46 |
+ end |
|
| 36 | 47 |
end |
| 37 | 48 |
|
| 38 | 49 |
describe "#receive" do |