My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

Welcome to JSONBOT

JSONBOT is a remote event-driven framework for building bots that talk JSON to each other over XMPP.

This distribution provides bots built on this framework for console, IRC, XMPP, Convore and WWW on the shell.

the jsb pakage contains the following programs:

  • jsb - console version of jsb
  • jsb-convore - Convore version of jsb
  • jsb-makecert - create keys and certifictes for web console SSL
  • jsb-init - create data directory and config examples, default ~/.jsb
  • jsb-irc - IRC version of jsb
  • jsb-fleet - mix IRC and XMPP bots
  • jsb-sed - sed a whole directory
  • jsb-stop - stop a running bot
  • jsb-tornado - a shell web server based on tornado
  • jsb-udp - send udp packets to the bot that will relay the data
  • jsb-udpdirect - a stand alone udp program, copy & edit
  • jsb-xmpp - XMPP version of jsb

note: JSONBOT is in BETA stage right now and still subject to change of protocols and API.

see http://jsonbot.googlecode.com. see http://jsonbot.org for documentation on the bot.

if you want the GAE part of the bot install from mercurial repo.

license

JSONBOT is free code (MIT) and can be cloned where needed.

contact the developer

  • email: bthate@gmail.com
  • jabber/xmpp: bthate@gmail.com
  • IRC: botfather on #dunkbots irc.freenode.net
  • twitter: http://twitter.com/jsonbot

urls

plugins

  • batteries are included
  • bart@monster:~/dev/last/first$ ./bin/jsb descriptions
    descriptions: 
    jsb.plugs.common.8b -  run the eight ball. 
    
    jsb.plugs.common.ask -  ask a user a question and relay back the response. 
    
    jsb.plugs.common.colors -  use the morph to add color to selected words. 
    
    jsb.plugs.common.controlchar - 
        command to control the control (command) characters. The cc is a string 
        containing the allowed control characters.
    
    
    
    jsb.plugs.common.feedback -  give feedback on the bot to dunker@jsonbot.org. connects to jsonbot.org if no jabber bot exists. 
    
    jsb.plugs.common.forward -  forward incoming trafic on a bot to another bot through xmpp. 
    
    jsb.plugs.common.gcalc -  use google to calculate e.g. !gcalc 1 + 1 
    
    jsb.plugs.common.googletranslate -  use google translate. 
    
    jsb.plugs.common.hubbub -  
        the hubbub mantra is of the following:
        use the hb-register <feedname> <url> command to register url and start a feed in in one pass.
    
    
    
    jsb.plugs.common.idle -  show how long someone has been idle. 
    
    jsb.plugs.common.imdb -  query the imdb database. 
    
    jsb.plugs.common.ipcalc -  IP subnet calculator. this module allows you to perform network calculations. 
    
    jsb.plugs.common.koffie -  schenk wat koffie! 
    
    jsb.plugs.common.learn -  learn information items .. facts .. factoids. 
    
    jsb.plugs.common.quote -  manage quotes. 
    
    jsb.plugs.common.relay -  relay to other users/channels. 
    
    jsb.plugs.common.remind -  remind people .. say txt when somebody gets active 
    
    jsb.plugs.common.rss - 
        the rss mantra is of the following:
    
        1) add a url with !rss-add <feedname> <url>
        2) use !rss-start <feed> in the channel you want the feed to appear
        3) run !rss-scan <feed> to see what tokens you can use .. add them with !rss-additem <feed> <token>
        4) change markup with !rss-addmarkup <feed> <markupitem> <value> .. see !rss-markuplist for possible markups
        5) check with !rss-feeds in a channel to see what feeds are running in a channel
        6) in case of trouble check !rss-running to see what feeds are monitored
        7) enjoy
        
    
    
    jsb.plugs.common.seen -  nick tracking. 
    
    jsb.plugs.common.shop -  maitain a shopping list (per user). 
    
    jsb.plugs.common.tinyurl -  tinyurl.com feeder 
    
    jsb.plugs.common.todo -  manage todo lists per users .. a time/data string can be provided to set 
        time on a todo item.
    
    
    jsb.plugs.common.topic -  manage topics. 
    
    jsb.plugs.common.twitter -  a twitter plugin for the JSONBOT. uses tweepy oauth. 
    
    jsb.plugs.common.url -  maintain log of urls. 
    
    jsb.plugs.common.urlinfo - 
        Catches URLs on channel and gives information about them like title, image size, etc.
        Uses http://whatisthisfile.appspot.com/ via XMLRPC
    
        Example:
        19:20 <@raspi> http://www.youtube.com/watch?v=9RZ-hYPAMFQ
        19:20 <@bot> Title: "YouTube - Black Knight Holy Grail"
        19:28 <@raspi> test http://www.raspi.fi foobar http://raspi.fi/wp-includes/images/rss.png
        19:28 <@bot> 1. Title: "raspi.fi" Redirect: http://raspi.fi/  2. Image: 14x14
    
    
    
    jsb.plugs.common.watcher -  watch channels. channels events can be of remote origin. 
    
    jsb.plugs.common.weather -  show weather based on Google's weather API 
    
    jsb.plugs.common.wikipedia -  query wikipedia .. use countrycode to select a country specific wikipedia. 
    
    jsb.plugs.core.admin -  admin related commands. these commands are mainly for maintaining the bot. 
    
    jsb.plugs.core.alias -  
        this alias plugin allows aliases for commands to be added. aliases are in
        the form of <alias> -> <command> .. aliases to aliases are not allowed, 
        aliases are per channel.
    
    
    
    jsb.plugs.core.botevent -  provide handling of host/tasks/botevent tasks. 
    
    jsb.plugs.core.chan -  channel related commands. 
    
    jsb.plugs.core.choice -  the choice command can be used with a string or in a pipeline. 
    
    jsb.plugs.core.core -  core bot commands. 
    
    jsb.plugs.core.count -  count number of items in result queue. 
    
    jsb.plugs.core.data -  data dumper commands. 
    
    jsb.plugs.core.dispatch -  this is the dispatch plugin that dispatches events to commands. 
    
    jsb.plugs.core.echo -  echo typed sentences. 
    
    jsb.plugs.core.fleet -  
        The fleet makes it possible to run multiple bots in one running instance.
        It is a list of bots. This plugin provides commands to manipulate this list of bots.
    
    
    
    jsb.plugs.core.gatekeeper -  gatekeeper commands. 
    
    jsb.plugs.core.grep -  grep the output of bot comamnds. 
    
    jsb.plugs.core.ignore - no docstring available
    
    jsb.plugs.core.irc -  irc related commands. 
    
    jsb.plugs.core.misc -  misc commands. 
    
    jsb.plugs.core.more -  access the output cache. 
    
    jsb.plugs.core.nickcapture -  nick recapture callback. 
    
    jsb.plugs.core.nickserv -  authenticate to NickServ. 
    
    jsb.plugs.core.not -  negative grep. 
    
    jsb.plugs.core.outputcache -  outputcache used when reply cannot directly be delivered. 
    
    jsb.plugs.core.plug -  plugin management. 
    
    jsb.plugs.core.rc -  jsonbot resource files .. files with the .jsb extension which consists of commands to be executed. 
    
    jsb.plugs.core.remotecallbacks -  dispatch remote events. 
    
    jsb.plugs.core.reverse -  reverse pipeline or reverse <txt>. 
    
    jsb.plugs.core.sort -  sort bot results. 
    
    jsb.plugs.core.tail -  tail bot results. 
    
    jsb.plugs.core.test -  test plugin. 
    
    jsb.plugs.core.to -  send output to another user .. used in a pipeline. 
    
    jsb.plugs.core.underauth -  handle non-ident connection on undernet. 
    
    jsb.plugs.core.uniq -  used in a pipeline .. unique elements. 
    
    jsb.plugs.core.user -  users related commands. 
    
    jsb.plugs.core.userstate -  userstate is stored in jsondata/state/users/<username>. 
    
    jsb.plugs.core.welcome -  send welcome message. 
    
    jsb.plugs.core.xmpp -  xmpp related commands. 
    
    jsb.plugs.socket.chatlog - 
        log irc channels to [hour:min] <nick> txt format, only 
        logging to files is supported right now. 
    
    
    
    jsb.plugs.socket.dns -  do a fqdn loopup. 
    
    jsb.plugs.socket.geo -  This product includes GeoLite data created by MaxMind, available from http://maxmind.com/ 
    
    jsb.plugs.socket.kickban -  kickban functionality for IRC. 
    
    jsb.plugs.socket.mpd -  music player daemon control. 
    
    jsb.plugs.socket.restserver - no docstring available
    
    jsb.plugs.socket.udp - 
        the bot has the capability to listen for udp packets which it will use
        to /msg a given nick or channel.
    
        1) setup
    
            * do !reload udp to enable the udp plugin
            * call !udp-cfgsave to generate a config file in gozerdata/plugs/udp/config
            * edit this file .. esp. look at the udpallowednicks list
            * run ./bin/jsb-udp -s to generate clientside config file "udp-send"
            * edit this file
            * test with:
    
            ::
    
                echo "YOOO" | ./bin/jsb-udp
    
        2) limiter
    
            on IRC the bot's /msg to a user/channel are limited to 1 per 3 seconds so the
            bot will not excessflood on the server. you can use partyudp if you need no 
            delay between sent messages, this will use dcc chat to deliver the message.
            on jabber bots there is no delay
Powered by Google Project Hosting