]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/Irc/extlib/phergie/Phergie/Plugin/Censor.php
Merge branch 'social-master' into rewrites-master/type-hints-asserts
[quix0rs-gnu-social.git] / plugins / Irc / extlib / phergie / Phergie / Plugin / Censor.php
diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Censor.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Censor.php
deleted file mode 100644 (file)
index 99c69d8..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/**
- * Phergie
- *
- * PHP version 5
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.
- * It is also available through the world-wide-web at this URL:
- * http://phergie.org/license
- *
- * @category  Phergie
- * @package   Phergie_Plugin_Censor
- * @author    Phergie Development Team <team@phergie.org>
- * @copyright 2008-2010 Phergie Development Team (http://phergie.org)
- * @license   http://phergie.org/license New BSD License
- * @link      http://pear.phergie.org/package/Phergie_Plugin_Censor
- */
-
-/**
- * Facilitates censoring of event content or discardment of events
- * containing potentially offensive phrases depending on the value of the
- * configuration setting censor.mode ('off', 'censor', 'discard'). Also
- * provides access to a web service for detecting censored words so that
- * other plugins may optionally integrate and adjust behavior accordingly to
- * prevent discardment of events.
- *
- * @category Phergie
- * @package  Phergie_Plugin_Censor
- * @author   Phergie Development Team <team@phergie.org>
- * @license  http://phergie.org/license New BSD License
- * @link     http://pear.phergie.org/package/Phergie_Plugin_Censor
- * @uses     extension soap
- */
-class Phergie_Plugin_Censor extends Phergie_Plugin_Abstract
-{
-    /**
-     * SOAP client to interact with the CDYNE Profanity Filter API
-     *
-     * @var SoapClient
-     */
-    protected $soap;
-
-    /**
-     * Checks for dependencies.
-     *
-     * @return void
-     */
-    public function onLoad()
-    {
-        if (!extension_loaded('soap')) {
-            $this->fail('The PHP soap extension is required');
-        }
-
-        if (!in_array($this->config['censor.mode'], array('censor', 'discard'))) {
-            $this->plugins->removePlugin($this);
-        }
-    }
-
-    /**
-     * Returns a "clean" version of a given string.
-     *
-     * @param string $string String to clean
-     *
-     * @return string Cleaned string
-     */
-    public function cleanString($string)
-    {
-        if (empty($this->soap)) {
-            $this->soap = new SoapClient('http://ws.cdyne.com/ProfanityWS/Profanity.asmx?wsdl');
-        }
-        $params = array('Text' => $string);
-        $attempts = 0;
-        while ($attempts < 3) {
-            try {
-                $response = $this->soap->SimpleProfanityFilter($params);
-                break;
-            } catch (SoapFault $e) {
-                $attempts++;
-                sleep(1);
-            }
-        }
-        if ($attempts == 3) {
-            return $string;
-        }
-        return $response->SimpleProfanityFilterResult->CleanText;
-    }
-
-    /**
-     * Processes events before they are dispatched and either censors their
-     * content or discards them if they contain potentially offensive
-     * content.
-     *
-     * @return void
-     */
-    public function preDispatch()
-    {
-        $events = $this->events->getEvents();
-
-        foreach ($events as $event) {
-            switch ($event->getType()) {
-                case Phergie_Event_Request::TYPE_PRIVMSG:
-                case Phergie_Event_Request::TYPE_ACTION:
-                case Phergie_Event_Request::TYPE_NOTICE:
-                    $text = $event->getArgument(1);
-                    $clean = $this->cleanString($text);
-                    if ($text != $clean) {
-                        if ($this->config['censor.mode'] == 'censor') {
-                            $event->setArgument(1, $clean);
-                        } else {
-                            $this->events->removeEvent($event);
-                        }
-                    }
-                    break;
-            }
-        }
-    }
-}