SnakeBot is a python jabber bot. It's probably a bad idea to try and use it right now. It's based on the minimalist http://thpinfo.com/2007/python-jabberbot/. It will be licensed under AGPLv3.

Source

http://svn.blagosphere.net/scripts/snakebot/trunk

Branches

JohnSullivan is breaking things in http://svn.blagosphere.net/scripts/snakebot/branches/johnsu01.

MattLee is maybe hacking on http://svn.blagosphere.net/scripts/snakebot/branches/mattl.

LoganIngalls is hacking on http://svn.blagosphere.net/scripts/snakebot/branches/lingalls.

Merging instructions: http://svnbook.red-bean.com/en/1.0/re16.html.

Trunk requirements

Commands

trunk

subscribe

Subscribes the sender to the roster.

status <user>

Returns last twitter status message. In the future it should also show jabber away messages, identi.ca info, facebook info, last.fm, and maybe also a message that can be set manually.

fortune

Returns a random quote. In the future users should be able to teach it quotes that can be included in this output as well.

dict <word>

Returns definitions from dict.org.

weather <zip code>

Returns weather information.

fact <something> <the rest>

Associate <the rest> with key <something>. If there isn't any <the rest>, then show what it knows about <something>. Obviously this needs to handle a list of values per key, and have an interface for updating and deleting things. With no argument, show a random fact.

reload

restarts the bot.

roster

list all subscribers

8ball

Ask the Magic 8-Ball

choose <choice> [<choice> ...]

Pick a random <choice>.

mbta

Shows current MBTA alerts.

version

Return SVN revision number of running bot.

johnsu01 branch

Everything in trunk.

Bugs

/Bugs

To Do

(Fully crossed-out things are done in trunk.)

Unsorted

Status command

Storage

Using python's shelve module for this right now. Do we need relational?

Namespaces

We need to store facts about different types of things, like users. Should we use separate shelves for each one (or at least the major ones)? Or just differentiate them by key? I'm leaning toward using a separate shelf for users, at least.

MBTA Service alerts

<div id="service_alerts">
        <h3><span>Service Alerts</span><img src="/images/h3-service_alerts-homepage.png" alt="Service Alerts" /></h3>
        
        <ul id="serviceAlerts">
                <li class="serviceAlert"><a href="/rider_tools/transit_updates/?ttype=boat">Boat</a> (1 alert)</li><li class="serviceAlert"><a href="/rider_tools/transit_updates/?ttype=cr">Commuter Rail</a> (2 alerts)</li><li class="serviceAlert"><a href="/rider_tools/transit_updates/?ttype=esc&route=Escalator#details">Escalator</a> (4 alerts)</li>

        </ul>
        
        <p>
                <strong>
                <a href="/rider_tools/transit_updates/">View all Service Updates</a> &raquo;<br />
                <a href="/rider_tools/transit_updates/?ttype=esc">View Elevator/Escalator Status</a> &raquo;
                </strong>
        </p>

</div>

Other python bots

SnakeBot (last edited 2011-11-28 02:21:05 by JohnSullivan)