<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>6f4285d6cefa9e88f275b4c5a3b51fa28847cfdf</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/0954ef397103fee2eb4df8e2a0f22db21c13a45e</url>
    <id>0954ef397103fee2eb4df8e2a0f22db21c13a45e</id>
    <committed-date>2008-03-12T05:37:22-07:00</committed-date>
    <authored-date>2008-03-12T05:37:22-07:00</authored-date>
    <message>user location plugin advertises support for geoloc feature

I've also asked to be notified of geolocation updates, but we
need xep-0115 for this to work properly it seems.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>010733e8bbbdb1662e219b01f5424f1ab06db11c</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6f4d0bf249abedb0bf672cb3def49613622ea137</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/6f4285d6cefa9e88f275b4c5a3b51fa28847cfdf</url>
    <id>6f4285d6cefa9e88f275b4c5a3b51fa28847cfdf</id>
    <committed-date>2008-03-12T05:36:32-07:00</committed-date>
    <authored-date>2008-03-12T05:36:32-07:00</authored-date>
    <message>initial version of a disco#info API

Allows plugins to advertise features in the disco#info response.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>b9047386bd730b64cf05a660f98a901d0570ac44</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>778c4b6aff7313aed7f933145651feea8c9a1300</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/6f4d0bf249abedb0bf672cb3def49613622ea137</url>
    <id>6f4d0bf249abedb0bf672cb3def49613622ea137</id>
    <committed-date>2008-03-12T05:36:03-07:00</committed-date>
    <authored-date>2008-03-12T05:36:03-07:00</authored-date>
    <message>some trace messages during connection

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>812abff39d375f0c1d3725b3e4b73dcb727f6e88</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9267ee8c3914d407409dc4e2ddc86bb4f4ce4e23</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/778c4b6aff7313aed7f933145651feea8c9a1300</url>
    <id>778c4b6aff7313aed7f933145651feea8c9a1300</id>
    <committed-date>2008-03-12T05:35:46-07:00</committed-date>
    <authored-date>2008-03-12T05:35:46-07:00</authored-date>
    <message>ws fix: remove extra space

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>79f78535d9091fc7230381d692d44b2635838487</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>116e2a956ade8b39171949fa9f87d0514236c674</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/9267ee8c3914d407409dc4e2ddc86bb4f4ce4e23</url>
    <id>9267ee8c3914d407409dc4e2ddc86bb4f4ce4e23</id>
    <committed-date>2008-03-12T05:35:18-07:00</committed-date>
    <authored-date>2008-03-12T05:35:18-07:00</authored-date>
    <message>make sure stderr and stdout are in utf8 mode

Should fix debug erros of wide char print

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>51eb4c7aaa9e289d756a8b174aa06dd3bf94c614</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>644ff8e8a9f95ed006d9a3f76226053a866c86e8</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/116e2a956ade8b39171949fa9f87d0514236c674</url>
    <id>116e2a956ade8b39171949fa9f87d0514236c674</id>
    <committed-date>2008-03-12T05:34:41-07:00</committed-date>
    <authored-date>2008-03-12T05:34:41-07:00</authored-date>
    <message>updated ROADMAP, we need caps fast!

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>907e389e52989768a50c16ff6b6052e09a2c77ad</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>8a131525c0d90e82320b76c6f6851bdb05015f46</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/644ff8e8a9f95ed006d9a3f76226053a866c86e8</url>
    <id>644ff8e8a9f95ed006d9a3f76226053a866c86e8</id>
    <committed-date>2008-03-11T05:45:40-07:00</committed-date>
    <authored-date>2008-03-11T05:45:40-07:00</authored-date>
    <message>Added licensing information

I'm sure I'll have to add a lot more info on all the files but I'm a lazy bastard.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>f7c0d7f3d036feafc3b27a5f3dc713bea589d294</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f01f5bc56ee8820d1563bc16499ce014c0d14b05</id>
      </parent>
      <parent>
        <id>e32d4ff435c9ce1c2121b3ff741ab638f02d74bf</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/8a131525c0d90e82320b76c6f6851bdb05015f46</url>
    <id>8a131525c0d90e82320b76c6f6851bdb05015f46</id>
    <committed-date>2008-03-11T05:22:31-07:00</committed-date>
    <authored-date>2008-03-11T05:22:31-07:00</authored-date>
    <message>Merge branch 'xep-0080-support'</message>
    <tree>6e1bb39b814b2d7b22e23000615819b6123f2b65</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0c9f20f16bbe79c50c60ae92a751c0521e415f86</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/f01f5bc56ee8820d1563bc16499ce014c0d14b05</url>
    <id>f01f5bc56ee8820d1563bc16499ce014c0d14b05</id>
    <committed-date>2008-03-11T05:22:14-07:00</committed-date>
    <authored-date>2008-03-11T05:22:14-07:00</authored-date>
    <message>initial how-to-run a Alter Ego agent

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>b19028a46ebc2fec73a9d1ad5fc63d29c639a6b1</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f2874123709475a56d3f37f7c0fe83f897c21da3</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/0c9f20f16bbe79c50c60ae92a751c0521e415f86</url>
    <id>0c9f20f16bbe79c50c60ae92a751c0521e415f86</id>
    <committed-date>2008-03-11T05:21:51-07:00</committed-date>
    <authored-date>2008-03-11T05:21:51-07:00</authored-date>
    <message>initial roadmap for future versions

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>160fb4177eff22690a952be94f2732fb4be06953</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f2874123709475a56d3f37f7c0fe83f897c21da3</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/e32d4ff435c9ce1c2121b3ff741ab638f02d74bf</url>
    <id>e32d4ff435c9ce1c2121b3ff741ab638f02d74bf</id>
    <committed-date>2008-03-11T05:21:29-07:00</committed-date>
    <authored-date>2008-03-11T05:21:29-07:00</authored-date>
    <message>Fix: location comparison was using the wrong fields

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>2275c36158158f169aa6098f307839671c14d836</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>8fa26e77dbe1e69fee798441da7bc60c9908d41b</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/f2874123709475a56d3f37f7c0fe83f897c21da3</url>
    <id>f2874123709475a56d3f37f7c0fe83f897c21da3</id>
    <committed-date>2008-03-11T04:12:32-07:00</committed-date>
    <authored-date>2008-03-11T04:12:32-07:00</authored-date>
    <message>Finish implementation of UserLocation plugin

It now scans a set of user location databases (uses Config::Any,
so they can be in JSON, Yaml, Perl, XML and INI formats).

The location is only updated if it has changed
from the last time check_location was run.

Right now, we check the location each 60 seconds and immediatly after connect.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>f7f096c78e4fc6b231a0227ea3064ee4d8482e34</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>00f259a2149b8ee063b55ac6bdc8e598df4b1371</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/8fa26e77dbe1e69fee798441da7bc60c9908d41b</url>
    <id>8fa26e77dbe1e69fee798441da7bc60c9908d41b</id>
    <committed-date>2008-03-11T04:10:51-07:00</committed-date>
    <authored-date>2008-03-11T04:10:51-07:00</authored-date>
    <message>Added a regular check_location call with a timer

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>c2c1f997654ad9c97cb4e9ca84e16679d405db51</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e64809d6903e66d6194cd6804ad867d0ae7fd3a7</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/00f259a2149b8ee063b55ac6bdc8e598df4b1371</url>
    <id>00f259a2149b8ee063b55ac6bdc8e598df4b1371</id>
    <committed-date>2008-03-11T04:10:20-07:00</committed-date>
    <authored-date>2008-03-11T04:10:20-07:00</authored-date>
    <message>make each_interval() more stable

We call the user code after we reset the timer, so the timer is called more preciscly each $interval seconds.

If your code takes a long time to run, this can make a difference.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>d091b708bb79c121ad88b474ae478cf662e54648</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>387bc9767add7c515be336a0392f933fc0ca5171</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/e64809d6903e66d6194cd6804ad867d0ae7fd3a7</url>
    <id>e64809d6903e66d6194cd6804ad867d0ae7fd3a7</id>
    <committed-date>2008-03-11T04:09:19-07:00</committed-date>
    <authored-date>2008-03-11T04:09:19-07:00</authored-date>
    <message>fix in arp cleanup: single letter is expanded to 0letter

The mac 00:e:50:6d:ab:54 failed this, the :e: was not expanded properly.

Now it is.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>d299f12c0f6dbfd0db054c79fcdcc8ab3b64d02e</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>99af1a526c0baae7b2200e94e05b05051dbb4d79</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/387bc9767add7c515be336a0392f933fc0ca5171</url>
    <id>387bc9767add7c515be336a0392f933fc0ca5171</id>
    <committed-date>2008-03-11T04:08:00-07:00</committed-date>
    <authored-date>2008-03-11T04:08:00-07:00</authored-date>
    <message>A PubSub addon: only publishing works

Adds a single method to plugins who use this: publish(). It focus mainly
on PEP/PIP nodes for now.

The synopsis is simple:

    $self-&gt;publish({
      node     =&gt; 'http://some.url/node/namespace',
      payload  =&gt; {}, # in Net::XMPP2::Util::simxml format
      ok_cb    =&gt; sub {},
      error_cb =&gt; sub {},
    );

The parameters are:

 * node: the namespace of the node (required);
 * payload: the payload of the item to be published (required);
 * ok_cb: optional callback if the publish succeeds;
 * error_cb: optional callback if the publish fails.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>988b252a4c45c767317ac607bcca7f239f5a6a47</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7482b41aa9e9b372ce359ae497315a7f05940ddd</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/99af1a526c0baae7b2200e94e05b05051dbb4d79</url>
    <id>99af1a526c0baae7b2200e94e05b05051dbb4d79</id>
    <committed-date>2008-03-11T04:03:55-07:00</committed-date>
    <authored-date>2008-03-11T04:03:55-07:00</authored-date>
    <message>Base class for AddOns

Adds a single private method, _req_params, that can be called
to make sure we receive the parameters we want.

To use:

    my ($p1, $p2) = $self-&gt;_req_params($args, qw( p1_name p2_name ));

p1_name and p2_name are keys in the $args hashref that must exist.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>dd58af8a405bda96ce74261546479c15d3ac481e</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7c60240530c9ffce1c97aca84f15507e9dc3e038</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/7482b41aa9e9b372ce359ae497315a7f05940ddd</url>
    <id>7482b41aa9e9b372ce359ae497315a7f05940ddd</id>
    <committed-date>2008-03-11T04:01:33-07:00</committed-date>
    <authored-date>2008-03-11T04:01:33-07:00</authored-date>
    <message>Move to Class::C3::Componentised to help extend plugins with AddOns or Mixins

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>59c9a164a90ac43cda7b054c50a547cd2ed11832</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>df910b8b6a918659251ddcb496ce3fc1cf3cf671</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/7c60240530c9ffce1c97aca84f15507e9dc3e038</url>
    <id>7c60240530c9ffce1c97aca84f15507e9dc3e038</id>
    <committed-date>2008-03-11T04:00:56-07:00</committed-date>
    <authored-date>2008-03-11T04:00:56-07:00</authored-date>
    <message>timer api: the bot method each_interval allows for a sub to be called each N seconds

The syntax is simple:

    my $timer = $bot-&gt;each_interval($interval, sub {});

You get back a $timer object. The timer will be called until the $timer is
destroyed. You can also call $timer-&gt;dismiss to stop it.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>7ee81379fd1659f6593b17c396a18a3d1f22e44d</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>329e4bd379e08fbbfed25a8398be903547d9a91a</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/df910b8b6a918659251ddcb496ce3fc1cf3cf671</url>
    <id>df910b8b6a918659251ddcb496ce3fc1cf3cf671</id>
    <committed-date>2008-03-10T07:24:07-07:00</committed-date>
    <authored-date>2008-03-10T07:24:07-07:00</authored-date>
    <message>update sample config file for User Location plugin

We will use the set of fields from XEP-0080 as the field names in the configuration.

I've checked other sites, and they are good enough to also post on Fire Eagle.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>6385c22b6a27f43359ed5816e0e96880aa68f108</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>c65ba5b83a21cc89cdd0cef271eef5e9934391c5</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/329e4bd379e08fbbfed25a8398be903547d9a91a</url>
    <id>329e4bd379e08fbbfed25a8398be903547d9a91a</id>
    <committed-date>2008-03-10T06:12:56-07:00</committed-date>
    <authored-date>2008-03-10T06:12:56-07:00</authored-date>
    <message>The user location plugin can now detect our location

It fetches the mac address of our current default gateway, and checks
the location dbs (sample included) in `pwd/.location_db` and
`$HOME/location_db` to see if this is a known location.

If yes, it just dumps the location to STDERR for now.

All found dbs are checked.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>838ebbc29633b0c63a8a103946ccf1de106af3c5</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>16c57b51e158bb7df69f1b0af5cb44cac7596073</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/c65ba5b83a21cc89cdd0cef271eef5e9934391c5</url>
    <id>c65ba5b83a21cc89cdd0cef271eef5e9934391c5</id>
    <committed-date>2008-03-10T06:10:44-07:00</committed-date>
    <authored-date>2008-03-10T06:10:44-07:00</authored-date>
    <message>module to fetch the default gateway

Its pluggable, right now the only method is calling the `netstat` command line

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>0d50d42577c91343c7e361be8dd6deabe8ebde5f</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>fb2bda1861459764470daa8b47cd20ca84515e7c</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/16c57b51e158bb7df69f1b0af5cb44cac7596073</url>
    <id>16c57b51e158bb7df69f1b0af5cb44cac7596073</id>
    <committed-date>2008-03-10T06:10:19-07:00</committed-date>
    <authored-date>2008-03-10T06:10:19-07:00</authored-date>
    <message>module to fetch the Arp table

Its pluggable, right now the only method is calling the `arp` command line

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>c87d3d36f682f345a3319601307dd990f92c74a3</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6f141866ddd27ca98c7b22e4f3fdc2ba468ea218</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/fb2bda1861459764470daa8b47cd20ca84515e7c</url>
    <id>fb2bda1861459764470daa8b47cd20ca84515e7c</id>
    <committed-date>2008-03-10T06:09:37-07:00</committed-date>
    <authored-date>2008-03-10T06:09:37-07:00</authored-date>
    <message>new api for plugins for simple high-level events

The new API for event-driven programming:

 * add_listener(hook, cb): hooks `hook` with cb (a code ref);
 * hooks(hook): lists all available hooks for `hook`;
 * notify(hook, @params): notify all listeners for `hook`, @parameters will be passed along;

Internally we mapped some Net::XMPP2 events to this high-level API. Plugins can now hook
on these events:

 * `on_online`: sent when everything is online;
 * `on_offline`: whenever the bot gets disconnected;
 * `on_presence_set`: whenever our own presence is changed;
 * `on_message`: when we get a message.

The `on_message` hook has some interesting parameters. Each cb will receive
two parameters: the message received, and a scalar-ref handled flag.

If your plugin handles the message, you should $$handled = 1. Unhandled messages
will be taken care off by the main bot.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>7204e446bd5a6c57d02424204d3fd34d68fb6235</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>89ab32a16f038ed79df3b448e045c61a92a9627c</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/6f141866ddd27ca98c7b22e4f3fdc2ba468ea218</url>
    <id>6f141866ddd27ca98c7b22e4f3fdc2ba468ea218</id>
    <committed-date>2008-03-09T10:17:45-07:00</committed-date>
    <authored-date>2008-03-09T10:17:45-07:00</authored-date>
    <message>A sample User Location (XEP-0080) plugin

It really does not do nothing for now.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>44567aed7806c55289be8dbad7828c3f78c842ef</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>26a8527daaf64ca65f6fd5e491ec0efce21567a3</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/89ab32a16f038ed79df3b448e045c61a92a9627c</url>
    <id>89ab32a16f038ed79df3b448e045c61a92a9627c</id>
    <committed-date>2008-03-09T10:17:14-07:00</committed-date>
    <authored-date>2008-03-09T10:17:14-07:00</authored-date>
    <message>A base class for our Plugins.

For now, we make sure init() is called right after we load the plugin.

Do not assume that the bot is already connected.


Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>bb55c07e7374c75229b0a7d9d14a273035cd8d14</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1fc345122c73127536ed42d4de8b7e04b30afc9d</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/26a8527daaf64ca65f6fd5e491ec0efce21567a3</url>
    <id>26a8527daaf64ca65f6fd5e491ec0efce21567a3</id>
    <committed-date>2008-03-09T10:16:29-07:00</committed-date>
    <authored-date>2008-03-09T10:16:29-07:00</authored-date>
    <message>Support loading and registering Plugins

All plugins should be in the Bot::AlterEgo::Plugins namespace.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>cd0c5d51c67963e988d90669eb3149fbc8b4bee7</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>76f189f6ca504193ed95133831bd3ca94fad6855</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/1fc345122c73127536ed42d4de8b7e04b30afc9d</url>
    <id>1fc345122c73127536ed42d4de8b7e04b30afc9d</id>
    <committed-date>2008-03-09T10:05:05-07:00</committed-date>
    <authored-date>2008-03-09T10:05:05-07:00</authored-date>
    <message>Support disco#info (XEP-0030)

Add basic identification, to be a good citizen.

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>33adc1ae2bd182a3cb66f83c40b244aeb504cc3e</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>fe03c8f13a958fd518c736bf73d48ed87b8f8ed5</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/76f189f6ca504193ed95133831bd3ca94fad6855</url>
    <id>76f189f6ca504193ed95133831bd3ca94fad6855</id>
    <committed-date>2008-03-09T09:32:43-07:00</committed-date>
    <authored-date>2008-03-09T09:32:43-07:00</authored-date>
    <message>Small startup script

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>970287080d87fb9dac8f6853414813106cff34fb</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>05ddacf0264b67ed3071636812aa0c6cf175702b</id>
      </parent>
    </parents>
    <author>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </author>
    <url>http://github.com/melo/alterego/commit/fe03c8f13a958fd518c736bf73d48ed87b8f8ed5</url>
    <id>fe03c8f13a958fd518c736bf73d48ed87b8f8ed5</id>
    <committed-date>2008-03-09T09:32:08-07:00</committed-date>
    <authored-date>2008-03-09T09:32:08-07:00</authored-date>
    <message>Sample configuration file

Signed-off-by: Pedro Melo &lt;melo@simplicidade.org&gt;</message>
    <tree>c830f58a88737ba09dc1f40bf5a5f533cedbc09e</tree>
    <committer>
      <name>Pedro Melo</name>
      <email>melo@simplicidade.org</email>
    </committer>
  </commit>
</commits>
