mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-27 09:12:41 +01:00
Lock down bot adapter API slightly
Summary: - Reduce visibiliy of config. - Add a typehint. Test Plan: Ran campfire/irc bots and chatted with them. Reviewers: indiefan Reviewed By: indiefan CC: aran, amerigomasini Differential Revision: https://secure.phabricator.com/D4923
This commit is contained in:
parent
7b133b8bf2
commit
ec306497f5
4 changed files with 19 additions and 14 deletions
|
@ -4,13 +4,18 @@
|
|||
* Defines the api for protocol adapters for @{class:PhabricatorBot}
|
||||
*/
|
||||
abstract class PhabricatorBaseProtocolAdapter {
|
||||
protected $config;
|
||||
|
||||
private $config;
|
||||
|
||||
public function setConfig($config) {
|
||||
$this->config = $config;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getConfig($key, $default = null) {
|
||||
return idx($this->config, $key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs any connection logic necessary for the protocol
|
||||
*/
|
||||
|
|
|
@ -12,10 +12,10 @@ extends PhabricatorBaseProtocolAdapter {
|
|||
private $inRooms = array();
|
||||
|
||||
public function connect() {
|
||||
$this->server = idx($this->config, 'server');
|
||||
$this->authtoken = idx($this->config, 'authtoken');
|
||||
$ssl = idx($this->config, 'ssl', false);
|
||||
$rooms = idx($this->config, 'join');
|
||||
$this->server = $this->getConfig('server');
|
||||
$this->authtoken = $this->getConfig('authtoken');
|
||||
$ssl = $this->getConfig('ssl', false);
|
||||
$rooms = $this->getConfig('join');
|
||||
|
||||
// First, join the room
|
||||
if (!$rooms) {
|
||||
|
|
|
@ -13,12 +13,12 @@ extends PhabricatorBaseProtocolAdapter {
|
|||
'PRIVMSG' => 'MESSAGE');
|
||||
|
||||
public function connect() {
|
||||
$nick = idx($this->config, 'nick', 'phabot');
|
||||
$server = idx($this->config, 'server');
|
||||
$port = idx($this->config, 'port', 6667);
|
||||
$pass = idx($this->config, 'pass');
|
||||
$ssl = idx($this->config, 'ssl', false);
|
||||
$user = idx($this->config, 'user', $nick);
|
||||
$nick = $this->getConfig('nick', 'phabot');
|
||||
$server = $this->getConfig('server');
|
||||
$port = $this->getConfig('port', 6667);
|
||||
$pass = $this->getConfig('pass');
|
||||
$ssl = $this->getConfig('ssl', false);
|
||||
$user = $this->getConfig('user', $nick);
|
||||
|
||||
if (!preg_match('/^[A-Za-z0-9_`[{}^|\]\\-]+$/', $nick)) {
|
||||
throw new Exception(
|
||||
|
|
|
@ -39,7 +39,7 @@ abstract class PhabricatorBotHandler {
|
|||
return;
|
||||
}
|
||||
|
||||
public function replyTo($original_message, $body) {
|
||||
public function replyTo(PhabricatorBotMessage $original_message, $body) {
|
||||
if ($original_message->getCommand() != 'MESSAGE') {
|
||||
throw new Exception(
|
||||
"Handler is trying to reply to something which is not a message!");
|
||||
|
|
Loading…
Reference in a new issue