Absentee Camper

This gem will monitor a Campfire room for @mentions, and notify the mentioned users via email if they aren't in the room. Multiple users can be mentioned in one Campfire message, and each user will receive one notification email. The email message will contain the message that was triggered by the @mention.

Usage

  1. gem install absentee_camper
  2. ABSENTEE_CAMPER_CONFIG=/path/to/config absentee_camper

Monitoring User

It is recommended to create a user for the sole purpose of monitoring the Campfire room (e.g. Campfire Bot), and use that user's API token when running Absentee Camper. The reason is that if you don't, and instead use the API token of a "real" user, that user will never be able to leave the Campfire room because Absentee Camper will be running under that user. This means that any mentions of that user won't trigger an email since they will always be present in the room.

Configuration

Here is a sample config file:

---
room_id: 12345
token: 'your-token'
campfire_subdomain: 'your-subdomain'
replyto_email_domain: 'your-replyto-domain'
users:
  john: 12345
  steve: 678910
  • room_id - The ID of the room you wish to monitor. This can be found in the URL for the room.
  • token - The API token for the monitoring user.
  • campfire_subdomain - This can be found in the Campfire URL (e.g. subdomain.campfirenow.com)
  • replyto_email_domain - The subdomain you would like to appear in the email from address.
  • users - Each user line consists of the name of the mention name and that user's corresponding 37Signals Campfire user ID. One way to get this user ID is to log into Campfire as a user that has admin privileges, click on the Users tab, and then hover over the change link of the user for which you want to find the user ID and take note of the number in the path (e.g. https://_your-company_.campfirenow.com/member/12345/permissions). For example, if you have a user named John Smith with a user ID of 12345, and you want to be able to mention them as @john, the users line in the config file would be john: 12345.

TODO

  • Specs!
  • Provide context in the notification. For example, in a Campfire session there are two users: John and Steve. Another user, Chad is not present in the room:

    John Smith: Hey Steve.  I am having a problem with the build.
    Steve Stallion: Hey John.  I don't know anything about that.  You
    should ask @chad.  That's his department.
    John Smith: Oh, I thought you were the one that handled that.  OK,
    I will wait for Chad's response.
    

    Currently, the email notification that Absentee Camper sends out will only contain the second message, which doesn't have any context about what was being discussed. It would be nice to set some configuration variables that indicated you wanted to include context in the notification message, and how many lines on either side to include.

  • Provide a means other than email, such as text messaging, to notify the users.

Contributing

Do the usual fork -> change -> pull request dance.