Filter impl
This commit is contained in:
parent
763d7d1a8b
commit
bfff7a8b8d
|
|
@ -0,0 +1,121 @@
|
|||
<?php
|
||||
|
||||
namespace Alphaland\Moderation {
|
||||
|
||||
use PDO;
|
||||
|
||||
class Filter
|
||||
{
|
||||
public static function FilteredWordList()
|
||||
{
|
||||
return array(
|
||||
'Afro-engineering',
|
||||
'Afroengineering',
|
||||
'Afro engineering',
|
||||
'African engineering',
|
||||
'Africanengineering',
|
||||
'African-engineering',
|
||||
'nigger rigging',
|
||||
'nigger-rigging',
|
||||
'niggerrigging',
|
||||
'Ashke Nazi',
|
||||
'Ashke-Nazi',
|
||||
'AshkeNazi',
|
||||
'nazi',
|
||||
'hitler',
|
||||
'gas chambers',
|
||||
'gaschambers',
|
||||
'gas-chambers',
|
||||
'gas chamber',
|
||||
'gaschamber',
|
||||
'gas-chamber',
|
||||
'genocide',
|
||||
'Beaner',
|
||||
'Beaney',
|
||||
'boonie',
|
||||
'Coon',
|
||||
'Coonass',
|
||||
'Cracker',
|
||||
'Dothead',
|
||||
'Jewboy',
|
||||
'Jigaboo',
|
||||
'jiggabo',
|
||||
'jigarooni',
|
||||
'jijjiboo',
|
||||
'zigabo',
|
||||
'jigger',
|
||||
'Niglet',
|
||||
'nigglet',
|
||||
'Nig-nog',
|
||||
'Nignog',
|
||||
'Nigger',
|
||||
'niger',
|
||||
'nigor',
|
||||
'niggur ',
|
||||
'niggar',
|
||||
//'Nigga',
|
||||
//'nigga',
|
||||
'Porch monkey',
|
||||
'Porchmonkey',
|
||||
'porch-monkey',
|
||||
'Sand nigger',
|
||||
'Sandnigger',
|
||||
'Sand-nigger',
|
||||
'Spearchucker',
|
||||
'spick',
|
||||
'Tacohead',
|
||||
'TarBaby',
|
||||
'Tar Baby',
|
||||
'Tar-Baby',
|
||||
'Towel head',
|
||||
'Towelhead',
|
||||
'Towel-head',
|
||||
'Wetback',
|
||||
'Wigger',
|
||||
'Whigger',
|
||||
'Wigga',
|
||||
'White trash',
|
||||
'Whitetrash',
|
||||
'White-trash',
|
||||
'Whitey',
|
||||
'Zipperhead',
|
||||
'fagot',
|
||||
'faggot',
|
||||
'fegot',
|
||||
'faget',
|
||||
'feget',
|
||||
'fag',
|
||||
'rape',
|
||||
'tranny',
|
||||
'tarbaby',
|
||||
'tar baby',
|
||||
'blackface',
|
||||
'black face',
|
||||
'dogwater',
|
||||
'dog water',
|
||||
'dog-water',
|
||||
'Mirai'
|
||||
);
|
||||
}
|
||||
|
||||
public static function IsTextFiltered(string $text)
|
||||
{
|
||||
foreach(Filter::FilteredWordList() as $a) {
|
||||
if (stripos($text,$a) !== false) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function FilterText(string $text)
|
||||
{
|
||||
$badlist = Filter::FilteredWordList();
|
||||
$filterCount = sizeof($badlist);
|
||||
for ($i = 0; $i < $filterCount; $i++) {
|
||||
$text = preg_replace_callback('/(' . $badlist[$i] . ')/i', function($matches){return str_repeat('#', strlen($matches[0]));}, $text);
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -117,6 +117,7 @@ try
|
|||
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Games/Ticket.php";
|
||||
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Users/User.php";
|
||||
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Users/Outfit.php";
|
||||
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Moderation/Filter.php";
|
||||
|
||||
//authenticator
|
||||
$authenticator = new PHPGangsta_GoogleAuthenticator();
|
||||
|
|
|
|||
|
|
@ -200,129 +200,6 @@ function genTicket()
|
|||
|
||||
//TODO: Render Queue?
|
||||
|
||||
//filter shit
|
||||
|
||||
function getWordList()
|
||||
{
|
||||
return array(
|
||||
'Afro-engineering',
|
||||
'Afroengineering',
|
||||
'Afro engineering',
|
||||
'African engineering',
|
||||
'Africanengineering',
|
||||
'African-engineering',
|
||||
'nigger rigging',
|
||||
'nigger-rigging',
|
||||
'niggerrigging',
|
||||
'Ashke Nazi',
|
||||
'Ashke-Nazi',
|
||||
'AshkeNazi',
|
||||
'nazi',
|
||||
'hitler',
|
||||
'gas chambers',
|
||||
'gaschambers',
|
||||
'gas-chambers',
|
||||
'gas chamber',
|
||||
'gaschamber',
|
||||
'gas-chamber',
|
||||
'genocide',
|
||||
'Beaner',
|
||||
'Beaney',
|
||||
'boonie',
|
||||
'Coon',
|
||||
'Coonass',
|
||||
'Cracker',
|
||||
'Dothead',
|
||||
'Jewboy',
|
||||
'Jigaboo',
|
||||
'jiggabo',
|
||||
'jigarooni',
|
||||
'jijjiboo',
|
||||
'zigabo',
|
||||
'jigger',
|
||||
'Niglet',
|
||||
'nigglet',
|
||||
'Nig-nog',
|
||||
'Nignog',
|
||||
'Nigger',
|
||||
'niger',
|
||||
'nigor',
|
||||
'niggur ',
|
||||
'niggar',
|
||||
//'Nigga',
|
||||
//'nigga',
|
||||
'Porch monkey',
|
||||
'Porchmonkey',
|
||||
'porch-monkey',
|
||||
'Sand nigger',
|
||||
'Sandnigger',
|
||||
'Sand-nigger',
|
||||
'Spearchucker',
|
||||
'spick',
|
||||
'Tacohead',
|
||||
'TarBaby',
|
||||
'Tar Baby',
|
||||
'Tar-Baby',
|
||||
'Towel head',
|
||||
'Towelhead',
|
||||
'Towel-head',
|
||||
'Wetback',
|
||||
'Wigger',
|
||||
'Whigger',
|
||||
'Wigga',
|
||||
'White trash',
|
||||
'Whitetrash',
|
||||
'White-trash',
|
||||
'Whitey',
|
||||
'Zipperhead',
|
||||
'fagot',
|
||||
'faggot',
|
||||
'fegot',
|
||||
'faget',
|
||||
'feget',
|
||||
'fag',
|
||||
'rape',
|
||||
'tranny',
|
||||
'tarbaby',
|
||||
'tar baby',
|
||||
'blackface',
|
||||
'black face',
|
||||
'dogwater',
|
||||
'dog water',
|
||||
'dog-water',
|
||||
'Mirai'
|
||||
);
|
||||
}
|
||||
|
||||
function isFiltered($text)
|
||||
{
|
||||
return checkIfFiltered($text, getWordList());
|
||||
}
|
||||
|
||||
function checkIfFiltered($text, $badlist)
|
||||
{
|
||||
foreach($badlist as $a)
|
||||
{
|
||||
if (stripos($text,$a) !== false) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function filterText($text)
|
||||
{
|
||||
return performFilter($text, getWordList());
|
||||
}
|
||||
|
||||
function performFilter($text, $badlist)
|
||||
{
|
||||
$filterCount = sizeof($badlist);
|
||||
for ($i = 0; $i < $filterCount; $i++)
|
||||
{
|
||||
$text = preg_replace_callback('/(' . $badlist[$i] . ')/i', function($matches){return str_repeat('#', strlen($matches[0]));}, $text);
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
|
||||
function logChatMessage($userid, $text, $trippedfilter) //privacy concern?
|
||||
{
|
||||
if (userInfo($userid)->rank != 2) //dont log admins chats
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
TODO: This needs a re-do. This is one of the first pages on this project
|
||||
*/
|
||||
|
||||
use Alphaland\Moderation\Filter;
|
||||
use Alphaland\Users\Activation;
|
||||
use Alphaland\Users\ReferralProgram;
|
||||
use Alphaland\Web\WebContextManager;
|
||||
|
|
@ -55,7 +56,7 @@ else
|
|||
{
|
||||
$error = '<div class="alert alert-danger" role="alert">Your username must be between 3 and 20 characters long</div>';
|
||||
}
|
||||
if(isFiltered($uname))
|
||||
if (Filter::IsTextFiltered($uname))
|
||||
{
|
||||
$error = '<div class="alert alert-danger" role="alert">Username is not appropriate for Alphaland</div>';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Alphaland\Moderation\Filter;
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
|
|
@ -11,7 +12,8 @@ if (!$text || !$userid)
|
|||
die(json_encode(array("success" => false)));
|
||||
}
|
||||
|
||||
if (isFiltered($text)) {
|
||||
if (Filter::IsTextFiltered($text))
|
||||
{
|
||||
logChatMessage($userid, $text, true);
|
||||
|
||||
if (chatFilterInfractionLimit($userid, 3, 120)) //3 infraction within 2 minutes
|
||||
|
|
@ -19,7 +21,7 @@ if (isFiltered($text)) {
|
|||
die(kickUserIfInGame($userid, "'".$text."' is not appropriate on Alphaland, continued infractions will lead to a ban."));
|
||||
}
|
||||
|
||||
$text = filterText($text);
|
||||
$text = Filter::FilterText($text);
|
||||
//$text = "[ Content Deleted ]";
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue