Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
------- THIS PROJECT IS NO LONGER MAINTAINED ------- /' /' ____ /' ____ ____ . , /' / /' )--/' /' ) /' ) /' / \ / /' /' /' /' /' /(___,/' /' /' /' /' \' (___,/(__(___,/' (__(________(___,/(__(___,/(____/' \_ /' / /' (___,/' Yoleaux is a brand spankin' new utilikilt-wearin' Internet Relay Chat robot for the internet. Yoleaux is written in Ruby, has a clean(-ish), modular(-ish) preforking architecture and is generally steamin' cool. _______________________________ ( Sounds good. How do I use it? ) ------------------------------- o ^__^ o (oo)\_______ (__)\ )\/\ ||----w | || || Yoleaux requires the Nokogiri XML parsing library and the tzinfo and tzinfo-data libraries for user-specific timezone information. Use "gem install nokogiri tzinfo tzinfo-data" to install these before running Yoleaux. (Nokogiri in turn depends on having libxml2 installed on your system.) Assuming that you've downloaded the bot, which can be done from this 'ere link: <http://dpk.io/yoleaux.tar.gz> -- the process of installing it is actually quite simple. Having unpacked that archive, you should `cd` into the directory therein and type `./yoleaux create`, which will set up the initial configuration and pop open your favourite text editor on the configuration file. The configuration file is written in YAML, so it's easy to read and write. You will probably wish to change the bot's nick and add some channels for him to join. Some administrative commands are built into the bot which will edit the configuration file for you once the bot is running. See CONFIG for a list of all the things you can change in the configuration file. Having set things up just so in the config file, typing `./yoleaux run` will kick things off and get the bot running. Yoleaux always runs in the foreground; use an external script if you want to daemonise the bot. Likewise, logs cannot be printed anywhere other than standard-out; use a pipe to write them to a file. ____________________________ ( No, but how do I *use* it? ) ---------------------------- ^__^ o _______/(oo) o \/\( /(__) | w----|| || || Here's a summary of some of the commands available in Yoleaux by default: command what in the heck it does g Searches Google wik Searches Wikipedia wa Queries Wolfram Alpha c Calculates with Google title Gets the title of a link in Sets a reminder for you to/tell/ask Sends a message to someone when they're next available u Searches for a Unicode character A complete list is available at <http://dpk.io/yoleaux>. There's also a very nifty services system, whereby any user of the bot can add their own commands, provided that they don't trample on any existing command names. <dpk> .add-command something http://example.com/service.cgi <yoleaux> Added command something: oblique service. (Please add a help string with ".command-help something ...") <dpk> .something <yoleaux> This is the output of the web service! The URL can be any valid oblique service URL: https://github.com/nslater/oblique ____________________________________ ( Can I make commands elsewise, too? ) ------------------------------------ o ^__^ o (oo)\_______ (__)\ )\/\ ||----w | || || Yes! Commands are divided into 'command sets' or 'packages'. Think up a name for your package, say, xyzzy, and make a file in the commands directory called xyzzy. Put something like this in it: command_set :xyzzy do helpers do def plugh "Plugh!" end end command :do_something, 'This is the command help string' do respond plugh end end You can look at the existing packages to see the sorts of things you can do with commands. ______________________________________ ( What's the story of this 'ere robot? ) -------------------------------------- ^__^ o _______/(oo) o \/\( /(__) | w----|| || || Once there was a bot called Phenny. She was written in Python 2, she used threads all over the shop, and her creator was Sean B. Palmer, also known as sbp. Then, PYTHON3™ happened. sbp sent a decree through the land, "NIHIL FILUM TUTUM EST", and set to work on a PYTHON3™ version of Phenny. The new bot, the knight Duxlot, was much ador'd, but sbp was unhappy because, by his reckoning, his process-based architecture was just as bad as the thread-based architecture which Phenny had used. He cast them both off, declaring himself disgusted with them. David P. Kendal had an idea for how to resolve these issues. He made a bot called Fauxlot, which also used a process-based architecture, but in a very different way, which seemed not to exhibit those problems. He worked a little more on it, then, one day, the bot we know as Yoleaux popped out of his keyboard and into his computer. _______________________________________ ( What are people saying about Yoleaux? ) --------------------------------------- o ^__^ o (oo)\_______ (__)\ )\/\ ||----w | || || Acclaim for Yoleaux: <sbp> yoleaux doesn't do some things <sbp> such as work <sbp> it's all mostly bubblegum and moonbeams, held together with knicker elastic ______________________________ ( Who made this thing, anyway? ) ------------------------------ ^__^ o _______/(oo) o \/\( /(__) | w----|| || || Yoleaux was principally written by David Kendal. However, many parts where inspired by the sbpware which preceded it, and as such dpk owes a huge thanks to Sean B. Palmer: many of the commands are direct Ruby translations of sbp's original Python code for Phenny and Duxlot. dpk also owes Noah Slater a megathank for complaining at him about things which are broken / changed compared to Phenny and Duxlot, which he undoubtedly will do. Noah also inadvertently named the bot. I must also credit Noah, Matt Read, Mark E. Shoulson, Björn Höhrmann, Aaron Mathews, and Albert Kult for helping me to debug.