Bots Home
|
Create an App
Max Queen Grey Filter
Author:
greymatter
Description
Source Code
Launch Bot
Current Users
Created by:
Greymatter
/* THE FOLLOWING BOT IS BASED ON: BOT NAME: No Grey Demands,Graphics,Stickykeys,Caps bot AUTHOR: badbadbubba VERSION: 2.0.6e (9/18/2016) All credit goes to the original. This code is a major work in progress. My version includes: Blocked transphobic, (more) misogynist, homophobic, and racist language. Added blocked demands */ var MAX_REASONS = 9; var MAX_CHECKS = 11; var EnterMsg = ''; //to do: add specific transphobic, homophobic language categories mutereasons = [ // this \b thing might be the right way to format multiword regexp. check w3schools reference {regexp: /(?=.*\b(fuck|finger|suck|show|open|see|touch|eat|spank|spread|lick|massage|rub|kiss|watch)\b)(?=.*\b(body|ass|pussy|boobs?|bobs?|tits?|nipples?|breasts?|.*hole +|cock|penis|vagina|clit|face|me|your?|butt|booty|cheeks)\b)/i, notice: 'giving demands without tipping', index: 0}, {regexp: /:\b/, notice: 'graphics', index: 1}, {regexp: /(.)\1{2}/, notice: 'sticky keys', index: 2}, {regexp: /((?=.*pm)|(?=.*c2c)|(?=.*cam?2?cam)|(?=.*private)|(?=.*pvt)|(?=.*prvt))/i, notice: 'PM requests', index: 3}, {regexp: /((swipegirls)|(freecambook)|(skype)|(freetoken)|(kik)|(mypage)|(leaked)|(mybio)|(mycam)|(myprofile)|(mypr0file)|(myroom)|(tokengenerator)|(streamingnaked)|(erotimo)|(amecam)|(1.?f)|(bestwork)|(premiumcheat)|(ellagocam)|(visitthis)|(fucktubate)|(goo\.gl)|(goodotgl)|(\.com)|(dotcom)|(aly.sky)|(www))/i, notice: 'spam', index: 4}, {regexp: /((?=.*bitch)|(?=.*slut)|(?=.*whore)|(?=.*cunt)|(?=.*ugly)|(?=.*fat)|(?=.*pee)|(?=.*poop?)|(?=.*pee[ing])|(?=.*fist)|(?=.*fart)|(?=.*tranny)|(?=.*fag)|(?=.*nigger)|(?=.*nigga)|(?=.*asshole)|(?=.*ass)|(?=.*bbc)|(?=.*dick)|(?=.*cock))/i, notice: 'rudeness', index: 5}, {regexp: /((?=.*bb)|(?=.*babb?y)|(?=.*dadd[iy]))/i, notice: 'bb or baby', index: 6}, {regexp: /((?=.*f.?e.?e.?t)|(?=.*f33t?)|(?=.*foot)|(?=.*soles?)|(?=.*toes?))/i, notice: 'feet', index: 7}, //change this so that roman characters are allowed, regardless of diacritics // so just block foreign alphabets {regexp: /[^\x00-\x7F]+/, notice: 'non-english', index: 8}, //{regexp: /[\u0400-\u04FF]/, // notice: 'non-english: Cyrillic', // index: 8}, //{regexp: /[\u4E00-\u9FCC\u3400-\u4DB5\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d]/, // notice: 'non-english: Chinese characters', // index: 8}, {regexp: /\b[A-Z]{2,}\b/, notice: 'all caps', index: 9}, {regexp: /(please?|plz|pls).?.?$/i, notice: 'giving demands without tipping', index: 0}, {regexp: /((^mast.?rbate.?.?$)|(^squirt.?.?$)|(^kiss.?.?$)|(^cum.?.?$)|(^twerk.?.?$)|(^ass.?.?$)|(^boobs?.?.?$)|(^pussy.?.?$)|(^doggy.?.?$)|(^anal.?.?$)|(^zoom.?.?$)|(^show.?.?$)|(^tits?.?.?$)|(?=.*stand up.?.?)|(?=.*face.?.?)|(?=.*watch m.?.?))/i, notice: 'giving demands without tipping', index: 0}, ] cb.settings_choices = [ {name: 'msgonentry', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Display warning to greys on entry?"}, {name: 'mutehide', type: 'choice', choice1: 'mute', choice2: 'hide', defaultValue: 'mute', label: "Mute (replaces message) or hide (no notifications)"}, {name: 're0', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute sexual demands?"}, {name: 're1', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute graphics?"}, {name: 're2', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute sticky keys (3+ repeating characters eg. mmmm)?"}, {name: 're3', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute demand words (pm,c2c,private,pvt,prvt)?"}, {name: 're4', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute spam words (streamingnaked,18f cam,18female,erotimo,amecam,goo)?"}, // break this into categories? {name: 're5', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute rude words (bitch,slut,whore,ugly,fat,pee,poo,peeing,fist,fart)?"}, {name: 're6', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute baby talk (bb, baby, daddy)?"}, {name: 're7', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute feet words (feet,foot,soles,toes)?"}, {name: 're8', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute non-latin alphabets (cyrillic,arabic,chinese)?"}, {name: 're9', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Mute all caps?"}, ]; cb.onEnter(function(user) { var i; if (cb.settings['msgonentry'] == 'yes') { if ((!user['has_tokens']) && (!user['is_mod']) && (!user['in_fanclub']) && (user['user'] != cb['room_slug'])) { cb.chatNotice('Welcome ' + user['user'] + '! The MAX QUEEN GREY FILTER bot is running.',user['user'],'',cb.settings['msgcolor'],'bold'); cb.chatNotice(EnterMsg,user['user'],'',cb.settings['msgcolor'],'bold'); cb.chatNotice('You will be muted for giving demands outside of tip messages and using disrespectful language. Play nice ;)',user['user'],'',cb.settings['msgcolor'],'bold'); } } }); function onEnterMsg(){ var EnterMsg=''; for (i=0; i<= MAX_REASONS; i++) { // this 're' refers to the reason for blocking if (cb.settings['re' + i] == 'yes'){ EnterMsg += 'No ' + mutereasons[i].notice + ', '; } } return EnterMsg; } function checkmsg(msg) { var i, tmpmsg, reason, mutemsg, blockMsg; mutemsg = false; if ((!msg['has_tokens']) && (!msg['is_mod']) && (!msg['in_fanclub']) && (!is_broadcaster(msg))) { for (i=0; i<= MAX_CHECKS; i++) { if (i==4) { tmpmsg = tmpmsg.replace(/\s+/g, ''); } else { tmpmsg = msg['m']; } // if .. and if the settings allow for a specific mute reason class (by index number, listed as re0, etc) if ((tmpmsg.search(mutereasons[i].regexp) != -1) && (cb.settings['re' + mutereasons[i].index] == 'yes')){ mutemsg = true; reason = mutereasons[i].notice; } } // recently indented a tab if (mutemsg == true) { if (cb.settings['mutehide'] == 'mute') { msg['m'] = msg } // msg['m'] = "*** Muted for " + reason + " ***"; //add statement for cb.settings['mutehide'] == mute? //we shouldn't see both if it is hidden (we see both muter for rudeness and your message was blocked from appearing in the chat for the following reason: ' // recently indented a tab if (cb.settings['mutehide'] == 'hide') { // i think the original message should be shown to them in the hide scenario blockMsg = 'Your last message was muted for the following reason: ' + reason + '.' msg['X-Spam'] = true; cb.chatNotice(blockMsg,msg['user'],'','red','bold'); } } } } function is_broadcaster(msg) { return (msg['user'] == cb.room_slug); } function init() { if (cb.settings['sendrules'] == 'yes') { EnterMsg = onEnterMsg(); } } cb.onMessage(function (msg) { checkmsg(msg); return msg; }); init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.