Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hashworks/phergie-whois-on-join
Phergie plugin to whois a user on join and handle the result.
https://github.com/hashworks/phergie-whois-on-join
Last synced: about 1 month ago
JSON representation
Phergie plugin to whois a user on join and handle the result.
- Host: GitHub
- URL: https://github.com/hashworks/phergie-whois-on-join
- Owner: hashworks
- License: gpl-3.0
- Created: 2015-02-12T20:59:03.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-03-28T14:52:46.000Z (over 6 years ago)
- Last Synced: 2024-10-19T22:48:46.484Z (2 months ago)
- Language: PHP
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PhergieWhoisOnJoin
[Phergie](http://github.com/phergie/phergie-irc-bot-react/) plugin to whois a user on join and handle the result.
## Abandoned!
This plugin is abandoned. Further developement will continue in [PhergieUserWatch](https://github.com/hashworks/PhergieUserWatch).## About
This plugin was originally written to keep the growing amount of chan-whore-monitoring-bots in the Rizon network out of channels.
However you can do what you want with the whois result, it'll require a bit of PHP knowledge trough.## Install
To install via [Composer](http://getcomposer.org/), use the command below, it will automatically detect the latest version and bind it with `~`.
```
composer require hashworks/phergie-whois-on-join-plugin
```See Phergie documentation for more information on
[installing and enabling plugins](https://github.com/phergie/phergie-irc-bot-react/wiki/Usage#plugins).## Configuration Examples
```php
// Simple example, give voice to every user who joins the channel.
new \hashworks\Phergie\Plugin\WhoisOnJoin\Plugin(function(\hashworks\Phergie\Plugin\WhoisOnJoin\WhoisResult $whoisResult) {
$whoisResult->setChannelMode('+v', $whoisResult->getNick());
})
``````php
// Kick everyone who isn't using a secure connection.
new \hashworks\Phergie\Plugin\WhoisOnJoin\Plugin(function(\hashworks\Phergie\Plugin\WhoisOnJoin\WhoisResult $whoisResult) {
if (!$whoisResult->hasSecureConnection()) {
$whoisResult->kick('This channel requires a secure connection.');
}
})
``````php
// This is how I use it. Kickban every user who is in 13 channels or more. Ban based on nick and username, replace numbers with question marks.
new \hashworks\Phergie\Plugin\WhoisOnJoin\Plugin(function(\hashworks\Phergie\Plugin\WhoisOnJoin\WhoisResult $whoisResult) {
if (count($whoisResult->getChannels()) >= 13) {
$strReplaceNumbers = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$banMask = preg_replace_callback('/^(?.+?)(?[0-9]{0,})!(?.+?)(?[0-9]{0,})@.+$/', function ($matches) {
return $matches['nick'] . str_replace($strReplaceNumbers, '?', $matches['nicknumbers']) . '!' .
$matches['username'] . str_replace($strReplaceNumbers, '?', $matches['usernumbers']) . '@*';
}, $whoisResult->getNick() . '!' . $whoisResult->getUsername() . '@' . $whoisResult->getHost());
if (!empty($banMask)) {
$whoisResult->setChannelMode('+b', $banMask);
$whoisResult->privmsgUser('You have been banned automatically from ' . $whoisResult->getEvent()->getSource() . '. Please contact hashworks to fill a complaint.');
}
$whoisResult->kick('You have been kicked automatically. Please contact hashworks to fill a complaint.');
}
})
```