forked from GNUsocial/gnu-social
ircmanager.php almost complete - Need to add exception catching
This commit is contained in:
parent
942ce88a75
commit
2550971450
@ -31,10 +31,11 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class IrcManager extends ImManager {
|
class IrcManager extends ImManager {
|
||||||
|
|
||||||
public $conn = null;
|
public $conn = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize connection to server.
|
* Initialize connection to server.
|
||||||
|
*
|
||||||
* @return boolean true on success
|
* @return boolean true on success
|
||||||
*/
|
*/
|
||||||
public function start($master) {
|
public function start($master) {
|
||||||
@ -46,10 +47,16 @@ class IrcManager extends ImManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return any open sockets that the run loop should listen
|
||||||
|
* for input on.
|
||||||
|
*
|
||||||
|
* @return array Array of socket resources
|
||||||
|
*/
|
||||||
public function getSockets() {
|
public function getSockets() {
|
||||||
$this->connect();
|
$this->connect();
|
||||||
if ($this->conn) {
|
if ($this->conn) {
|
||||||
return array($this->conn->myConnection);
|
return $this->conn->getSockets();
|
||||||
} else {
|
} else {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
@ -57,7 +64,9 @@ class IrcManager extends ImManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Process IRC events that have come in over the wire.
|
* Process IRC events that have come in over the wire.
|
||||||
|
*
|
||||||
* @param resource $socket
|
* @param resource $socket
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function handleInput($socket) {
|
public function handleInput($socket) {
|
||||||
common_log(LOG_DEBUG, 'Servicing the IRC queue.');
|
common_log(LOG_DEBUG, 'Servicing the IRC queue.');
|
||||||
@ -65,7 +74,12 @@ class IrcManager extends ImManager {
|
|||||||
$this->conn->receive();
|
$this->conn->receive();
|
||||||
}
|
}
|
||||||
|
|
||||||
function connect() {
|
/**
|
||||||
|
* Initiate connection
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function connect() {
|
||||||
if (!$this->conn) {
|
if (!$this->conn) {
|
||||||
$this->conn = new Phergie_Extended_Bot;
|
$this->conn = new Phergie_Extended_Bot;
|
||||||
|
|
||||||
@ -78,7 +92,6 @@ class IrcManager extends ImManager {
|
|||||||
$config = new Phergie_Config;
|
$config = new Phergie_Config;
|
||||||
$config->readArray(
|
$config->readArray(
|
||||||
array(
|
array(
|
||||||
// One array per connection, pretty self-explanatory
|
|
||||||
'connections' => array(
|
'connections' => array(
|
||||||
array(
|
array(
|
||||||
'host' => $this->plugin->host,
|
'host' => $this->plugin->host,
|
||||||
@ -119,17 +132,31 @@ class IrcManager extends ImManager {
|
|||||||
return $this->conn;
|
return $this->conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
function handle_irc_message($data) {
|
/**
|
||||||
|
* Called via a callback when a message is received
|
||||||
|
*
|
||||||
|
* Passes it back to the queuing system
|
||||||
|
*
|
||||||
|
* @param array $data Data
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function handle_irc_message($data) {
|
||||||
$this->plugin->enqueue_incoming_raw($data);
|
$this->plugin->enqueue_incoming_raw($data);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function send_raw_message($data) {
|
/**
|
||||||
|
* Send a message using the daemon
|
||||||
|
*
|
||||||
|
* @param $data Message
|
||||||
|
* @return boolean true on success
|
||||||
|
*/
|
||||||
|
public function send_raw_message($data) {
|
||||||
$this->connect();
|
$this->connect();
|
||||||
if (!$this->conn) {
|
if (!$this->conn) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$this->conn->sflapSend($data[0],$data[1],$data[2],$data[3]);
|
$this->conn->send($data[0], $data[1]);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user