Apache ESME > Index > Actions
Added by Vassil Dichev, last edited by Richard Hirsch on Jul 05, 2009  (view change)

Filters (tests)

Syntax Description Example Note
@username Selects messages sent by a particular user @dpp  
any Selects all messages regardless of their characteristics any  
/regex/ Selects messages if body matches a regular expression /exception/  
"string" Selects messages if body contains the case insensitive string "sales order"  
#tag Selects the messages containing the tag. #project gumbo Note the tag could be in the message as a hash code or created by the user directly as a tag
to = @username Selects the messages that were sent to a particular user to = @dpp  
to = (@username1, @username2) Selects the messages that were sent to multiple users. to = (@dpp, @m) List should be comma separated
to <> @username Selects the messages that were not sent to a particular user to <> @dpp  
not(exp) Selects the messages in which the expression evaluates to false not("sales order" )  
exp1 | exp2 Selects the messages in which either expression is true "sales order" | "profit"  
exp1 & exp2 Selects the messages in which both expressions are true "sales order" & "profit"  
number% Returns messages based on the percentage. 44% For example, the 45% will be true 45% of the time.

Hooks (messages generated on system events)

Syntax Description Notes
login Selects the messages generated on user login.  
follow Selects the messages generated when a user follows you. %f expands to follower nickname
unfollow Selects the messages generated when a user unfollows you. %f expands to ex-follower nickname
profile Selects the messages generated when your profile is changed.  
every number mins Generates messages at regular intervals and selects them. The message is not saved- too noisy, plus two identical tests never refer to the same event

User, followers' and public timelines

Messages generated by events can be used in the actions test expression, since the event cause is attached to them. Messages generated by events appear by default in the user's timeline, but not in follower's timeline. The message can be resent to followers using the existing resend action, or suppressed from user's own timeline by means of the filter action. Any and all saved messages appear in the public timeline (this could be addressed by these messages being private by default in the future).
|

Actions (performances)

Syntax Description Example Note
filter Filter the message out and don't put it in your mailbox filter  
resend Resend the message to all your followers regardless of their characteristics resend It will only be put in your followers timeline if it is not already there.
http:// server Does an HTTP(S) POST of the message on a server with certain headers set http://user:password@identi.ca/api/statuses/update.xml
status=%s
Enter HTTP POST data on a new line; %s expands to original message, %u expands to user nickname, %i expands to image URL, %w expands to user's full (mnemonic: w hole) name (first + last)
mailto: email Send the body of the message to the email recipient
mailto:wille.coyote@acme.com
For custom mails, enter mail text on a new line; same expansions apply as for HTTP POST
atom: url://
rss: url://
Posts the new entries from Atom/RSS feed atom:http://twitter.com/statuses/user_timeline/esmeproject.atom Bots can also post to ESME, but polling from ESME is more secure and robust
scala Interprets the text of a message as Scala code and returns back the result action which interprets the text of a message as Scala
code and returns back the result
Details here

Examples for assembling tests and actions

Test Action Description Similar to
follow mailto: mail Sends mail when followed by any user Twitter sends messages on follow
unfollow mailto: mail Sends mail when unfollowed by a user Qwitter helps track who is unfollowing you
profile http:// server Sends HTTP POST when the profile is changed @chinposin on Twitter tracks your avatar change to chinposin.com
every 5 mins rss:http://blog.esme.us/feed/rss Updates new posts from the ESME blog twitterfeed posts your blog titles to Twitter
login resend Notifies your followers when you log in Yammer notifies when a user logs in for the first time
#twitter & @me http://user:password@twitter.com/statuses/update.xml
status=%s
Posts all messages tagged #twitter to Twitter Identi.ca integrates with Twitter by reposting messages
#bot | @bot http://localhost:8080/api/send_msg
token=XXX&message=%u said: %s
Reposts customized message to the same ESME instance, possibly with a different user's credentials twitterbots helps you retweet automatically

Too permissive action tests

Be careful, tests for the actions might apply to more messages than you think. For example, the tag filter applies not only to your messages, but also ones from people you're following. In the action above which posts to Twitter, if you forget to restrict the author, you might flood the twitter timeline with messages you didn't intend to post.
|

Additional Links

There are many lists of ad-hoc Twitter third-party tools, some of which might be assembled in ESME using actions.