[TASK] Fix line endings to LF only.
This commit is contained in:
		
							parent
							
								
									4eaf0ede24
								
							
						
					
					
						commit
						c5b045236e
					
				@ -1,144 +1,144 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * ContentObject for IRC Protocol
 | 
					 * ContentObject for IRC Protocol
 | 
				
			||||||
 * @author JPT
 | 
					 * @author JPT
 | 
				
			||||||
 * @package Protocol
 | 
					 * @package Protocol
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class Protocol_IrcProtocolContentObject extends Protocol_AbstractProtocolContentObject {
 | 
					class Protocol_IrcProtocolContentObject extends Protocol_AbstractProtocolContentObject {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $sender;
 | 
						protected $sender;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $command;
 | 
						protected $command;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $params;
 | 
						protected $params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Contains a user or the channel a command is addressed to.
 | 
						 * Contains a user or the channel a command is addressed to.
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $target;
 | 
						protected $target;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $message;
 | 
						protected $message;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $subject;
 | 
						protected $subject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets sender.
 | 
						 * Sets sender.
 | 
				
			||||||
	 * @param string $sender
 | 
						 * @param string $sender
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setSender($sender) {
 | 
						public function setSender($sender) {
 | 
				
			||||||
		$this->sender = $sender;
 | 
							$this->sender = $sender;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets sender.
 | 
						 * Gets sender.
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getSender() {
 | 
						public function getSender() {
 | 
				
			||||||
		return $this->sender;
 | 
							return $this->sender;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets command.
 | 
						 * Sets command.
 | 
				
			||||||
	 * @param string $command
 | 
						 * @param string $command
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setCommand($command) {
 | 
						public function setCommand($command) {
 | 
				
			||||||
		$this->command = $command;
 | 
							$this->command = $command;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets command.
 | 
						 * Gets command.
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getCommand() {
 | 
						public function getCommand() {
 | 
				
			||||||
		return $this->command;
 | 
							return $this->command;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets params.
 | 
						 * Sets params.
 | 
				
			||||||
	 * @param string $params
 | 
						 * @param string $params
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setParams($params) {
 | 
						public function setParams($params) {
 | 
				
			||||||
		$this->params = $params;
 | 
							$this->params = $params;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets params.
 | 
						 * Gets params.
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getParams() {
 | 
						public function getParams() {
 | 
				
			||||||
		return $this->params;
 | 
							return $this->params;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets target.
 | 
						 * Sets target.
 | 
				
			||||||
	 * @param string $target
 | 
						 * @param string $target
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setTarget($target) {
 | 
						public function setTarget($target) {
 | 
				
			||||||
		$this->target = $target;
 | 
							$this->target = $target;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets target.
 | 
						 * Gets target.
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getTarget() {
 | 
						public function getTarget() {
 | 
				
			||||||
		return $this->target;
 | 
							return $this->target;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets message.
 | 
						 * Sets message.
 | 
				
			||||||
	 * @param string $message
 | 
						 * @param string $message
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setMessage($message) {
 | 
						public function setMessage($message) {
 | 
				
			||||||
		$this->message = $message;
 | 
							$this->message = $message;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets message.
 | 
						 * Gets message.
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getMessage() {
 | 
						public function getMessage() {
 | 
				
			||||||
		return $this->message;
 | 
							return $this->message;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets subject.
 | 
						 * Sets subject.
 | 
				
			||||||
	 * @param string $subject
 | 
						 * @param string $subject
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setSubject($subject) {
 | 
						public function setSubject($subject) {
 | 
				
			||||||
		$this->subject = $subject;
 | 
							$this->subject = $subject;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Gets subject.
 | 
						 * Gets subject.
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function getSubject() {
 | 
						public function getSubject() {
 | 
				
			||||||
		return $this->subject;
 | 
							return $this->subject;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
@ -1,211 +1,211 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * The ProtocolHandler for the IRC Protocol.
 | 
					 * The ProtocolHandler for the IRC Protocol.
 | 
				
			||||||
 * @author JPT
 | 
					 * @author JPT
 | 
				
			||||||
 * @package Protocol
 | 
					 * @package Protocol
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
class Protocol_IrcProtocolHandler extends Protocol_AbstractProtocolHandler {
 | 
					class Protocol_IrcProtocolHandler extends Protocol_AbstractProtocolHandler {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @var string
 | 
						 * @var string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected $linebreak;
 | 
						protected $linebreak;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Is called by the constructor.
 | 
						 * Is called by the constructor.
 | 
				
			||||||
	 * Shall create the two buffers and set them up.
 | 
						 * Shall create the two buffers and set them up.
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected function createBuffers() {
 | 
						protected function createBuffers() {
 | 
				
			||||||
		$this->linebreak = "\n";
 | 
							$this->linebreak = "\n";
 | 
				
			||||||
		$this->bufferIncoming = new Misc_Buffer($this->linebreak);
 | 
							$this->bufferIncoming = new Misc_Buffer($this->linebreak);
 | 
				
			||||||
		$this->bufferOutgoing = new Misc_Buffer($this->linebreak);
 | 
							$this->bufferOutgoing = new Misc_Buffer($this->linebreak);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Main worker function. It will be called in a loop.
 | 
						 * Main worker function. It will be called in a loop.
 | 
				
			||||||
	 * It does all the protocol-dependent parsing.
 | 
						 * It does all the protocol-dependent parsing.
 | 
				
			||||||
	 * The returned ContentObject will be passed to the client.
 | 
						 * The returned ContentObject will be passed to the client.
 | 
				
			||||||
	 * @return Protocol_IrcProtocolContentObject
 | 
						 * @return Protocol_IrcProtocolContentObject
 | 
				
			||||||
	 * @throws Exception_ProtocolHandlerException
 | 
						 * @throws Exception_ProtocolHandlerException
 | 
				
			||||||
	 * @throws Exception_GeneralException
 | 
						 * @throws Exception_GeneralException
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function work() {
 | 
						public function work() {
 | 
				
			||||||
		$data = $this->bufferIncoming->getNextLine();
 | 
							$data = $this->bufferIncoming->getNextLine();
 | 
				
			||||||
			//create contentObject and set the raw data.
 | 
								//create contentObject and set the raw data.
 | 
				
			||||||
		$contentObject = new Protocol_IrcProtocolContentObject($data);
 | 
							$contentObject = new Protocol_IrcProtocolContentObject($data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//trim whitespace
 | 
								//trim whitespace
 | 
				
			||||||
		$data = trim($data);
 | 
							$data = trim($data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//no data? complain!
 | 
								//no data? complain!
 | 
				
			||||||
		if($data === "") throw new Exception_ProtocolHandlerException("No data to process! Where did it go?!", 1292082006);
 | 
							if($data === "") throw new Exception_ProtocolHandlerException("No data to process! Where did it go?!", 1292082006);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//get the guy who sent the message
 | 
								//get the guy who sent the message
 | 
				
			||||||
		$sender = "";
 | 
							$sender = "";
 | 
				
			||||||
		if($data[0] === ":") {
 | 
							if($data[0] === ":") {
 | 
				
			||||||
			list($sender, $data) = explode(" ", $data, 2);
 | 
								list($sender, $data) = explode(" ", $data, 2);
 | 
				
			||||||
				//cut the colon
 | 
									//cut the colon
 | 
				
			||||||
			$sender = substr($sender, 1);
 | 
								$sender = substr($sender, 1);
 | 
				
			||||||
			$contentObject->setSender($sender);
 | 
								$contentObject->setSender($sender);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//determine what command was sent
 | 
								//determine what command was sent
 | 
				
			||||||
		$command = "";
 | 
							$command = "";
 | 
				
			||||||
		if(strpos($data, " ") !== FALSE) {
 | 
							if(strpos($data, " ") !== FALSE) {
 | 
				
			||||||
			list($command, $data) = explode(" ", $data, 2);
 | 
								list($command, $data) = explode(" ", $data, 2);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			$command = $data;
 | 
								$command = $data;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		$contentObject->setCommand($command);
 | 
							$contentObject->setCommand($command);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//we'll write these values into the contentObject later!
 | 
							//we'll write these values into the contentObject later!
 | 
				
			||||||
			//contains a user or the channel a command is addressed to.
 | 
								//contains a user or the channel a command is addressed to.
 | 
				
			||||||
		$target = NULL;
 | 
							$target = NULL;
 | 
				
			||||||
			//parameters of the command
 | 
								//parameters of the command
 | 
				
			||||||
		$params = NULL;
 | 
							$params = NULL;
 | 
				
			||||||
			//content or message
 | 
								//content or message
 | 
				
			||||||
		$message = NULL;
 | 
							$message = NULL;
 | 
				
			||||||
			//affected nickname(s) (e.g. by a KICK or MODE +b)
 | 
								//affected nickname(s) (e.g. by a KICK or MODE +b)
 | 
				
			||||||
		$subject = NULL;
 | 
							$subject = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//command-dependent parsing
 | 
								//command-dependent parsing
 | 
				
			||||||
		switch($command) {
 | 
							switch($command) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "PRIVMSG":
 | 
								case "PRIVMSG":
 | 
				
			||||||
			case "NOTICE":
 | 
								case "NOTICE":
 | 
				
			||||||
				list($target, $params) = explode(" ", $data, 2);
 | 
									list($target, $params) = explode(" ", $data, 2);
 | 
				
			||||||
					//cut the colon
 | 
										//cut the colon
 | 
				
			||||||
				$message = substr($params, 1);
 | 
									$message = substr($params, 1);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "INVITE":
 | 
								case "INVITE":
 | 
				
			||||||
				list($target, $params) = explode(" ", $data, 2);
 | 
									list($target, $params) = explode(" ", $data, 2);
 | 
				
			||||||
					//cut the colon
 | 
										//cut the colon
 | 
				
			||||||
				$params = substr($params, 1);
 | 
									$params = substr($params, 1);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "ERROR":
 | 
								case "ERROR":
 | 
				
			||||||
			case "QUIT":
 | 
								case "QUIT":
 | 
				
			||||||
				if(strpos($data, " :") !== FALSE) {
 | 
									if(strpos($data, " :") !== FALSE) {
 | 
				
			||||||
					list($params, $message) = explode(" :", $data);
 | 
										list($params, $message) = explode(" :", $data);
 | 
				
			||||||
					$message = substr($message, 1);
 | 
										$message = substr($message, 1);
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					$params = $data;
 | 
										$params = $data;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "PING":
 | 
								case "PING":
 | 
				
			||||||
			case "JOIN":
 | 
								case "JOIN":
 | 
				
			||||||
					//cut the colon
 | 
										//cut the colon
 | 
				
			||||||
				$params = substr($data, 1);
 | 
									$params = substr($data, 1);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//channel, <comment>
 | 
									//channel, <comment>
 | 
				
			||||||
			case "PART":
 | 
								case "PART":
 | 
				
			||||||
				if(strpos($data, " :") !== FALSE) {
 | 
									if(strpos($data, " :") !== FALSE) {
 | 
				
			||||||
					list($params, $message) = explode(" :", $data);
 | 
										list($params, $message) = explode(" :", $data);
 | 
				
			||||||
					$message = substr($message, 1);
 | 
										$message = substr($message, 1);
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					$params = $data;
 | 
										$params = $data;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "NICK":
 | 
								case "NICK":
 | 
				
			||||||
					//cut the colon
 | 
										//cut the colon
 | 
				
			||||||
				$params = substr($data, 1);
 | 
									$params = substr($data, 1);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//channel, user, <comment>
 | 
									//channel, user, <comment>
 | 
				
			||||||
			case "KICK":
 | 
								case "KICK":
 | 
				
			||||||
				$pieces = explode(" ", $data, 3);
 | 
									$pieces = explode(" ", $data, 3);
 | 
				
			||||||
				list($target, $subject, $data) = explode(" ", $data, 3);
 | 
									list($target, $subject, $data) = explode(" ", $data, 3);
 | 
				
			||||||
					//get comment for kick and cut the colon
 | 
										//get comment for kick and cut the colon
 | 
				
			||||||
				if(count($pieces === 3)) $message = substr($data, 1);
 | 
									if(count($pieces === 3)) $message = substr($data, 1);
 | 
				
			||||||
				unset($pieces);
 | 
									unset($pieces);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//MOTD content
 | 
									//MOTD content
 | 
				
			||||||
			case "372":
 | 
								case "372":
 | 
				
			||||||
				list($target, $message) = explode(" :", $data);
 | 
									list($target, $message) = explode(" :", $data);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//user, comment
 | 
									//user, comment
 | 
				
			||||||
			case "KILL":
 | 
								case "KILL":
 | 
				
			||||||
			case "MODE":
 | 
								case "MODE":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "AWAY":
 | 
								case "AWAY":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "001":
 | 
								case "001":
 | 
				
			||||||
			case "002":
 | 
								case "002":
 | 
				
			||||||
			case "003":
 | 
								case "003":
 | 
				
			||||||
			case "004":
 | 
								case "004":
 | 
				
			||||||
			case "005":
 | 
								case "005":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "250":
 | 
								case "250":
 | 
				
			||||||
			case "251":
 | 
								case "251":
 | 
				
			||||||
			case "252":
 | 
								case "252":
 | 
				
			||||||
			case "253":
 | 
								case "253":
 | 
				
			||||||
			case "254":
 | 
								case "254":
 | 
				
			||||||
			case "255":
 | 
								case "255":
 | 
				
			||||||
			case "265":
 | 
								case "265":
 | 
				
			||||||
			case "266":
 | 
								case "266":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "332":
 | 
								case "332":
 | 
				
			||||||
			case "333":
 | 
								case "333":
 | 
				
			||||||
			case "353":
 | 
								case "353":
 | 
				
			||||||
				//NAMES end
 | 
									//NAMES end
 | 
				
			||||||
			case "366":
 | 
								case "366":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//MOTD start
 | 
									//MOTD start
 | 
				
			||||||
			case "375":
 | 
								case "375":
 | 
				
			||||||
				//MOTD end
 | 
									//MOTD end
 | 
				
			||||||
			case "376":
 | 
								case "376":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//break;
 | 
									//break;
 | 
				
			||||||
				//tell when stuff is not implemented
 | 
									//tell when stuff is not implemented
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				//echo "N.i.y.: " . $command . " [".$data."]\r\n";
 | 
									//echo "N.i.y.: " . $command . " [".$data."]\r\n";
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//we're done parsing, now write the stuff into the contentObject.
 | 
								//we're done parsing, now write the stuff into the contentObject.
 | 
				
			||||||
		$contentObject->setTarget($target);
 | 
							$contentObject->setTarget($target);
 | 
				
			||||||
		$contentObject->setParams($params);
 | 
							$contentObject->setParams($params);
 | 
				
			||||||
		$contentObject->setMessage($message);
 | 
							$contentObject->setMessage($message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return $contentObject;
 | 
							return $contentObject;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Returns whether there is work to be done.
 | 
						 * Returns whether there is work to be done.
 | 
				
			||||||
	 * Important in order to assure that a ContentObject is created and passed to the Client.
 | 
						 * Important in order to assure that a ContentObject is created and passed to the Client.
 | 
				
			||||||
	 * @return boolean
 | 
						 * @return boolean
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function canWork() {
 | 
						public function canWork() {
 | 
				
			||||||
		return $this->bufferIncoming->hasLines();
 | 
							return $this->bufferIncoming->hasLines();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Will put raw data into the outgoing buffer.
 | 
						 * Will put raw data into the outgoing buffer.
 | 
				
			||||||
	 * This function will be removed soon.
 | 
						 * This function will be removed soon.
 | 
				
			||||||
	 * The ProtocolHandler shall take care of this directly.
 | 
						 * The ProtocolHandler shall take care of this directly.
 | 
				
			||||||
	 * @param string $data
 | 
						 * @param string $data
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function sendRaw($data) {
 | 
						public function sendRaw($data) {
 | 
				
			||||||
		$this->bufferOutgoing->addData($data . $this->linebreak);
 | 
							$this->bufferOutgoing->addData($data . $this->linebreak);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sends a pong.
 | 
						 * Sends a pong.
 | 
				
			||||||
	 * @param string $param
 | 
						 * @param string $param
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function pong($param) {
 | 
						public function pong($param) {
 | 
				
			||||||
		$this->sendRaw("PONG :" . $param);
 | 
							$this->sendRaw("PONG :" . $param);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
@ -1,12 +1,12 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * This file bootstraps the SocketFramework by initializing the error_reporting to E_ALL
 | 
					 * This file bootstraps the SocketFramework by initializing the error_reporting to E_ALL
 | 
				
			||||||
 * and initializing the ClassLoader.
 | 
					 * and initializing the ClassLoader.
 | 
				
			||||||
 * @author jpt
 | 
					 * @author jpt
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
error_reporting(\E_ALL);
 | 
					error_reporting(\E_ALL);
 | 
				
			||||||
require_once("Classes" . \DIRECTORY_SEPARATOR . "Core" . \DIRECTORY_SEPARATOR . "ClassLoader.php");
 | 
					require_once("Classes" . \DIRECTORY_SEPARATOR . "Core" . \DIRECTORY_SEPARATOR . "ClassLoader.php");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$classLoader = new \JPT\SocketFramework\Core\ClassLoader();
 | 
					$classLoader = new \JPT\SocketFramework\Core\ClassLoader();
 | 
				
			||||||
$classLoader->initialize();
 | 
					$classLoader->initialize();
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
@ -1,74 +1,74 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
namespace JPT\SocketFramework\Client;
 | 
					namespace JPT\SocketFramework\Client;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Interface that includes the real must-have stuff.
 | 
					 * Interface that includes the real must-have stuff.
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * @author jpt
 | 
					 * @author jpt
 | 
				
			||||||
 * @interface
 | 
					 * @interface
 | 
				
			||||||
 * @package Client
 | 
					 * @package Client
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
interface ClientDispatcherInterface {
 | 
					interface ClientDispatcherInterface {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Forwards incoming data to the ProtocolHandler
 | 
						 * Forwards incoming data to the ProtocolHandler
 | 
				
			||||||
	 * Let's the ProtocolHandler do all the work and forward its results to the Clients.
 | 
						 * Let's the ProtocolHandler do all the work and forward its results to the Clients.
 | 
				
			||||||
	 * Return resulting raw data.
 | 
						 * Return resulting raw data.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @param string $rawData
 | 
						 * @param string $rawData
 | 
				
			||||||
	 * @return string
 | 
						 * @return string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function processRawData($rawData);
 | 
						public function processRawData($rawData);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * This function will load the given config.
 | 
						 * This function will load the given config.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @param array $config
 | 
						 * @param array $config
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function loadConfig($config);
 | 
						public function loadConfig($config);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Will reset the connectionStatus of the client.
 | 
						 * Will reset the connectionStatus of the client.
 | 
				
			||||||
	 * Implementation is optional and depends on the client.
 | 
						 * Implementation is optional and depends on the client.
 | 
				
			||||||
	 * Should be used to reset internal variables.
 | 
						 * Should be used to reset internal variables.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function resetConnectionStatus();
 | 
						public function resetConnectionStatus();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * This function gets called every time, the connection is established.
 | 
						 * This function gets called every time, the connection is established.
 | 
				
			||||||
	 * This allows the client to send initial data.
 | 
						 * This allows the client to send initial data.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function initializeConnection();
 | 
						public function initializeConnection();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets the ID.
 | 
						 * Sets the ID.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @param int $id
 | 
						 * @param int $id
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setID($id);
 | 
						public function setID($id);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Sets the group.
 | 
						 * Sets the group.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @param string $group
 | 
						 * @param string $group
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function setGroup($group);
 | 
						public function setGroup($group);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Injects ClientManager.
 | 
						 * Injects ClientManager.
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @param \JPT\SocketFramework\Client\ClientManager $clientManager
 | 
						 * @param \JPT\SocketFramework\Client\ClientManager $clientManager
 | 
				
			||||||
	 * @return void
 | 
						 * @return void
 | 
				
			||||||
	 * @throws \JPT\SocketFramework\Exception\WrongDatatypeException
 | 
						 * @throws \JPT\SocketFramework\Exception\WrongDatatypeException
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public function injectClientManager($clientManager);
 | 
						public function injectClientManager($clientManager);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
@ -1,49 +1,49 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Parser for Clientside-IRC.
 | 
					 * Parser for Clientside-IRC.
 | 
				
			||||||
 * @param string $msg
 | 
					 * @param string $msg
 | 
				
			||||||
 * @return array
 | 
					 * @return array
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
function parse($msg){
 | 
					function parse($msg){
 | 
				
			||||||
		//skip empty
 | 
							//skip empty
 | 
				
			||||||
	if(trim($msg) === "") return;
 | 
						if(trim($msg) === "") return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	$from = "";
 | 
						$from = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if($msg[0] === ":") {
 | 
						if($msg[0] === ":") {
 | 
				
			||||||
		$piece = explode(" ", $msg, 2);
 | 
							$piece = explode(" ", $msg, 2);
 | 
				
			||||||
		list($from, $msg) = $piece;
 | 
							list($from, $msg) = $piece;
 | 
				
			||||||
		unset($piece);
 | 
							unset($piece);
 | 
				
			||||||
			//cut the colon
 | 
								//cut the colon
 | 
				
			||||||
		$from = substr($from, 1);
 | 
							$from = substr($from, 1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	$command = "";
 | 
						$command = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	$piece = explode(" ", $msg, 2);
 | 
						$piece = explode(" ", $msg, 2);
 | 
				
			||||||
	list($command, $msg) = $piece;
 | 
						list($command, $msg) = $piece;
 | 
				
			||||||
	unset($piece);
 | 
						unset($piece);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return array("From" => $from, "Command" => $command, "Msg" => $msg);
 | 
						return array("From" => $from, "Command" => $command, "Msg" => $msg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$lines = array();
 | 
					$lines = array();
 | 
				
			||||||
$lines[] = ":kornbluth.freenode.net 376 JPT|test :End of /MOTD command.";
 | 
					$lines[] = ":kornbluth.freenode.net 376 JPT|test :End of /MOTD command.";
 | 
				
			||||||
$lines[] = ":frigg!~frigg@freenode/utility-bot/frigg PRIVMSG JPT|test :VERSION";
 | 
					$lines[] = ":frigg!~frigg@freenode/utility-bot/frigg PRIVMSG JPT|test :VERSION";
 | 
				
			||||||
$lines[] = ":kornbluth.freenode.net 333 JPT|test #botted rotw!~rotw@p5B133ADF.dip.t-dialin.net 1291741910";
 | 
					$lines[] = ":kornbluth.freenode.net 333 JPT|test #botted rotw!~rotw@p5B133ADF.dip.t-dialin.net 1291741910";
 | 
				
			||||||
$lines[] = ":ChanServ!ChanServ@services. NOTICE JPT|test :[#botted] Für Statistiken siehe !stats. Wenn du nicht in diesen Auftauchen willst, wende dich bitte an samohT";
 | 
					$lines[] = ":ChanServ!ChanServ@services. NOTICE JPT|test :[#botted] Für Statistiken siehe !stats. Wenn du nicht in diesen Auftauchen willst, wende dich bitte an samohT";
 | 
				
			||||||
$lines[] = ":kornbluth.freenode.net NOTICE * :*** Found your hostname";
 | 
					$lines[] = ":kornbluth.freenode.net NOTICE * :*** Found your hostname";
 | 
				
			||||||
$lines[] = ":thomasbot!~thomasbot@unaffiliated/thomas/x-476237/bot/thomasbot PRIVMSG #botted :*pong*";
 | 
					$lines[] = ":thomasbot!~thomasbot@unaffiliated/thomas/x-476237/bot/thomasbot PRIVMSG #botted :*pong*";
 | 
				
			||||||
$lines[] = ":n|ki!~niki@star-sim.de MODE #botted -v JPT";
 | 
					$lines[] = ":n|ki!~niki@star-sim.de MODE #botted -v JPT";
 | 
				
			||||||
$lines[] = "ERROR :Closing Link: dslb-088-070-011-158.pools.arcor-ip.net (Client Quit)";
 | 
					$lines[] = "ERROR :Closing Link: dslb-088-070-011-158.pools.arcor-ip.net (Client Quit)";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
foreach($lines AS $line) {
 | 
					foreach($lines AS $line) {
 | 
				
			||||||
	var_dump(parse($line));
 | 
						var_dump(parse($line));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "\r\n\r\n";
 | 
					echo "\r\n\r\n";
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user