b-rich / hackabot Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mythmon/hackabot
The big pile of code behind the big cuddly sea cow.
Home Page: http://code.google.com/p/hackabot/
This project forked from mythmon/hackabot
The big pile of code behind the big cuddly sea cow.
Home Page: http://code.google.com/p/hackabot/
Hackabot README =============== A crazy, hackable, and hacked up IRC bot. Licensed under the GNU GPL v2 or later. INTRODUCTION ------------ This bot was mainly written by Michael Marineau and includes contributions from other people including various staff of the OSU Open Source Lab. See docs/credits.txt for individual contributors. This bot is more widely known by it's original incarnation as 'manatee' on Freenode. The current implementation (it has been rewritten several times) by now features a core bot is written in Python using the Twisted framework. Commands and other event handlers can be implemented as plugins for the core bot or as individual scripts in commands/ or hooks/<type>/ which are called on demand. Most of the time writing features as external scripts is the way to go as plugins must always us non-blocking IO and play nice with Twisted. INSTALL ------- The bot should be run directly from its source tree (don't copy anything to /usr/bin). The code depends on the current directory layout to find all of its various pieces. Since the bot has a lot of random commands that you may not even want I've split the dependency list between the core requirements and the various noodly bits. Core Requirements ~~~~~~~~~~~~~~~~~ Python >= 2.4 Twisted Core >= 2.5 Twisted Words >= 2.5 MySQLdb (optional, see below) lxml or elementtree if using Python 2.4 Hackabot can be run without a database but many commands and hooks depend on it so you probably want it unless you are simply using Hackabot as a framework for your own stuff. Disclaimer: Although I think hackabot is compatible with Python 2.4 and Twisted 2.5 it has been a while since it was tested with these versions. Misc Requirements ~~~~~~~~~~~~~~~~~ Most external commands/hooks will be happy with the following: Bash Perl DBI DBD::mysql XML::Simple URI::Escape Time::Piece lynx wget Of course if you are running without db support DBI/DBD is optional but be sure to disable those external commands as it won't happen automatically. And some lesser things: URI::Find::Rule (TinyURL hook) WWW::Shorten::TinyURL (TinyURL hook) SOAP::Lite (Urban Dictionary command) figlet (figlet command) cowsay (cowsay command) and other stuff I forget... To attempt to get catch missing dependencies before starting run the check-deps script in the bin directory. It is far from perfect and is known to miss a few things, but it should catch most things. CONFIGURATION ------------- An example config file showing and explaining all the options is etc/hackabot.example.xml and a more minimal one is hackabot.simple.xml. The basics should be pretty clear from those examples. To set up access to various commands create an ACL config file and point to it using an acl tag in the main config file. The example and documentation is in etc/acl.example.xml. ACL files can be defined globally or per network. RUNNING ------- Once the config files are in place start hackabot with the config file as the argument: ./bin/hackabot etc/hackabot.xml If you want the bot to background the bot try this: ./bin/hackabot -l var/hackabot.log -p var/hackabot.pid etc/hackabot.xml Further documentation can be found in the docs directory. Enjoy! -- Michael Marineau <[email protected]>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.