Skip to content
This repository has been archived by the owner on Aug 13, 2023. It is now read-only.

Commit

Permalink
Merge pull request #60 from WildPHP/architecture-rework
Browse files Browse the repository at this point in the history
Off it goes!
  • Loading branch information
Rick authored and Rick committed Dec 11, 2015
2 parents 5af7df6 + 67a3fbb commit 86f15a8
Show file tree
Hide file tree
Showing 40 changed files with 1,671 additions and 1,731 deletions.
24 changes: 16 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,28 @@
----------
[![Build Status](https://scrutinizer-ci.com/g/WildPHP/Wild-IRC-Bot/badges/build.png?b=master)](https://scrutinizer-ci.com/g/WildPHP/Wild-IRC-Bot/build-status/master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/WildPHP/Wild-IRC-Bot/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/WildPHP/Wild-IRC-Bot/?branch=master)

A modular IRC Bot built in PHP with the use of object-oriented programming.
Initially designed to run as an IRC bot, it now serves as a general-purpose framework for interactive applications.

It is designed to run off a local LAMP, WAMP, MAMP stack or just plain PHP installation.
No web server is required, only a working PHP installation.

## System requirements
In order to run WildPHP, we ask a few things from your system. Notably:

- A PHP version equal to or higher than **5.5.0**.
- **SSH** or other local access to the system you plan on running WildPHP on.
- WildPHP does **NOT** run on services where you can host your website.
- WildPHP has been tested to work on Linux. Other platforms are supported but not guaranteed to work.
- For the best experience, we recommend using **[tmux](https://en.wikipedia.org/wiki/Tmux)** or **[screen](https://en.wikipedia.org/wiki/GNU_Screen)** to allow the bot to run in the background.

## IRC Community & Support
If you need help or just want to idle in the IRC channel join us at
[#wildphp@irc.freenode.net](http://webchat.freenode.net/?channels=wildphp)

## Features and Functions
The bot itself has been designed to include the least features as possible. That means that only installing the core does **not** get you a functional bot.
The framework itself has been designed to include the least features as possible. That means that only installing the core will only get you the runtime.

The bot relies completely on modules, or plugins if you will.
The framework relies completely on modules, or plugins if you will.

Modules are installed using composer:

Expand All @@ -31,16 +33,22 @@ For example:

composer require wildphp/module-pingpong

After installation with composer, modules must be enabled in the configuration file. Please read the module description on how to do this.
After installation with composer, modules must be enabled and possibly configured. Please read the module's description on how to do this.

We have developed a few official modules:

### Core modules:
- [module-ircconnection](https://github.com/WildPHP/module-ircconnection), which provides the connection to IRC networks.
- [module-channelmanager](https://github.com/WildPHP/module-channelmanager), which provides the `join` and `part` commands, and provides auto-joining of channels.
- [module-commandparser](https://github.com/WildPHP/module-commandparser), which allows other modules to listen to commands on the bot.
- [module-nickwatcher](https://github.com/WildPHP/module-nickwatcher), which updates internal references to the nickname.
- [module-pingpong](https://github.com/WildPHP/module-pingpong), which allows the bot to stay online for long periods.
- [module-commandparser](https://github.com/WildPHP/module-commandparser), which allows other modules to listen to user commands on the bot.
- [module-nickwatcher](https://github.com/WildPHP/module-nickwatcher), which updates internal references to the nickname when it is changed.

It is recommended to install all of those modules to get a basic bot working which sits in channels. Functionality can be extended from there on with more modules.
All of these should be installed to get a usable IRC bot.

### Optional modules:
- [module-sasl](https://github.com/WildPHP/module-sasl), which allows the bot to authenticate itself using SASL.
- [module-linksniffer](https://github.com/WildPHP/module-linksniffer), with which the bot can detect links pasted in a channel and show their titles.
- [module-wiki](https://github.com/WildPHP/module-wiki), with which users can search MediaWikis (like Wikipedia) through the `wiki` command.

## Installation
To install the latest build, you need [Composer](https://getcomposer.org/). Install WildPHP using the following command:
Expand Down
16 changes: 3 additions & 13 deletions composer.json
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,20 @@
"name": "wildphp/wild-irc-bot",
"description": "A modular IRC bot written in PHP",
"type": "project",
"version": "2.0.1-alpha",
"require": {
"php": ">=5.5.0",
"nette/neon": "^2.3",
"myclabs/php-enum": "^1.4",
"phergie/phergie-irc-parser": "^2.1",
"react/react": "^0.4.2",
"phergie/phergie-irc-generator": "^1.7",
"phergie/phergie-irc-connection": "^2.0",
"monolog/monolog": "^1.17"
},
"suggest": {
"wildphp/module-channelmanager": "Keeps track of what channels the bot is in; provides !join and !part user commands",
"wildphp/module-commandparser": "Allows your bot to interpret user commands.",
"wildphp/module-nickwatcher": "Avoids issues by updating internal references of the nickname when it is changed",
"wildphp/module-pingpong": "Allows the bot to stay online for longer periods of time."
"guzzlehttp/guzzle": "^6.1"
},
"require-dev":
{
"phpunit/phpunit": "^4.8"
},
"autoload": {
"psr-4": {
"": "lib/"
"": "lib/",
"WPHPTests\\": "tests/"
}
},
"license": "GPL-3.0",
Expand Down
Loading

0 comments on commit 86f15a8

Please sign in to comment.