Bots Home
|
Create an App
SA - Moderator Toolbox
Author:
satest2
Description
Source Code
Launch Bot
Current Users
Created by:
Satest2
/* Name: Moderator Toolbox Author: mx2k6 Version History ============================================ v1.0 26/12/2013: First release */ var APP_VERSION = 1.00; var APP_DEBUG = false; if (cb === null || cb === undefined) { cb = {}; } if (cbjs === null || cbjs === undefined) { cbjs = {}; } /*============================================= Application settings =============================================*/ cb.settings_choices = [ { name: 'notify_on', label: 'Notify mods on enter/leave:', type: 'choice', choice1: '1: All users with tokens', choice2: '2: Users who have tipped recently only', choice3: '3: All users (including greys)', choice4: '4: No one', }, { name: 'copy_tip_notes', label: 'Copy tip notes to moderators:', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'No', }, /*{ name: 'copy_private_messages', label: 'Copy private messages to moderators:', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'No', },*/ { name: 'ghost_keywords', label: 'Ghost keywords (hide and show only to moderators):', type: 'str', maxLength: 255, defaultValue: 'pm me,on cam,www', required: false, }, ]; var settings = { notifyOnEntry: { // Notifies moderators of room entry darkBlue: false, lightBlue: false, grey: false, }, copyTipNotes: false, // Copies tip notes to the moderators if enabled copyPrivateMessages: false, // When api allows it, will copy private messages to the moderators if enabled ghostKeywords: ['pm me','on cam','www'], // Hides messages containing keywords from the room and displays them for moderators and broadcaster only }; function parseOptions() { settings.ghostKeywords = cb.settings.ghost_keywords.split(','); /*settings.copyPrivateMessages = (cb.settings.copy_private_messages === 'Yes');*/ settings.copyTipNotes = (cb.settings.copy_tip_notes === 'Yes'); var notifyopt = parseInt(cb.settings.notify_on.substring(0, 1)); switch (notifyopt) { case 1: settings.notifyOnEntry.darkBlue = settings.notifyOnEntry.lightBlue = true; break; case 2: settings.notifyOnEntry.darkBlue = true; break; case 3: settings.notifyOnEntry.darkBlue = settings.notifyOnEntry.lightBlue = settings.notifyOnEntry.grey = true; break; } } /*============================================= Useful enumerations =============================================*/ var Colours = { AliceBlue: "#F0F8FF", AntiqueWhite: "#FAEBD7", Aqua: "#00FFFF", Aquamarine: "#7FFFD4", Azure: "#F0FFFF", Beige: "#F5F5DC", Bisque: "#FFE4C4", Black: "#000000", BlanchedAlmond: "#FFEBCD", Blue: "#0000FF", BlueViolet: "#8A2BE2", Brown: "#A52A2A", BurlyWood: "#DEB887", CadetBlue: "#5F9EA0", Chartreuse: "#7FFF00", Chocolate: "#D2691E", Coral: "#FF7F50", CornflowerBlue: "#6495ED", Cornsilk: "#FFF8DC", Crimson: "#DC143C", Cyan: "#00FFFF", DarkBlue: "#00008B", DarkCyan: "#008B8B", DarkGoldenRod: "#B8860B", DarkGrey: "#A9A9A9", DarkGreen: "#006400", DarkKhaki: "#BDB76B", DarkMagenta: "#8B008B", DarkOliveGreen: "#556B2F", DarkOrange: "#FF8C00", DarkOrchid: "#9932CC", DarkRed: "#8B0000", DarkSalmon: "#E9967A", DarkSeaGreen: "#8FBC8F", DarkSlateBlue: "#483D8B", DarkSlateGrey: "#2F4F4F", DarkTurquoise: "#00CED1", DarkViolet: "#9400D3", DeepPink: "#FF1493", DeepSkyBlue: "#00BFFF", DimGrey: "#696969", DodgerBlue: "#1E90FF", FireBrick: "#B22222", FloralWhite: "#FFFAF0", ForestGreen: "#228B22", Fuschia: "#FF00FF", Gainsboro: "#DCDCDC", GhostWhite: "#F8F8FF", Gold: "#FFD700", GoldenRod: "#DAA520", Grey: "#808080", Green: "#008000", GreenYellow: "#ADFF2F", HoneyDew: "#F0FFF0", HotPink: "#FF69B4", IndianRed: "#CD5C5C", Indigo: "#4B0082", Ivory: "#FFFFF0", Khaki: "#F0E68C", Lavender: "#E6E6FA", LavenderBlush: "#FFF0F5", LawnGreen: "#7CFC00", LemonChiffon: "#FFFACD", LightBlue: "#ADD8E6", LightCoral: "#F08080", LightCyan: "#E0FFFF", LightGoldenRodYellow: "#FAFAD2", LightGrey: "#D3D3D3", LightGreen: "#90EE90", LightPink: "#FFB6C1", LightSalmon: "#FFA07A", LightSeaGreen: "#20B2AA", LightSkyBlue: "#87CEFA", LightSlateGrey: "#778899", LightSteelBlue: "#B0C4DE", LightYellow: "#FFFFE0", Lime: "#00FF00", LimeGreen: "#32CD32", Linen: "#FAF0E6", Magenta: "#FF00FF", Maroon: "#800000", MediumAquaMarine: "#66CDAA", MediumBlue: "#0000CD", MediumOrchid: "#BA55D3", MediumPurple: "#9370DB", MediumSeaGreen: "#3CB371", MediumSlateBlue: "#7B68EE", MediumSpringGreen: "#00FA9A", MediumTurquoise: "#48D1CC", MediumVioletRed: "#C71585", MidnightBlue: "#191970", MintCream: "#F5FFFA", MistyRose: "#FFE4E1", Moccasin: "#FFE4B5", NavajoWhite: "#FFDEAD", Navy: "#000080", OldLace: "#FDF5E6", Olive: "#808000", OliveDrab: "#6B8E23", Orange: "#FFA500", OrangeRed: "#FF4500", Orchid: "#DA70D6", PaleGoldenRod: "#EEE8AA", PaleGreen: "#98FB98", PaleTurquoise: "#AFEEEE", PaleVioletRed: "#DB7093", PapayaWhip: "#FFEFD5", PeachPuff: "#FFDAB9", Peru: "#CD853F", Pink: "#FFC0CB", Plum: "#DDA0DD", PowderBlue: "#B0E0E6", Purple: "#800080", Red: "#FF0000", RosyBrown: "#BC8F8F", RoyalBlue: "#4169E1", SaddleBrown: "#8B4513", Salmon: "#FA8072", SandyBrown: "#F4A460", SeaGreen: "#2E8B57", SeaShell: "#FFF5EE", Sienna: "#A0522D", Silver: "#C0C0C0", SkyBlue: "#87CEEB", SlateBlue: "#6A5ACD", SlateGrey: "#708090", Snow: "#FFFAFA", SpringGreen: "#00FF7F", SteelBlue: "#4682B4", Tan: "#D2B48C", Teal: "#008080", Thistle: "#D8BFD8", Tomato: "#FF6347", Turquoise: "#40E0D0", Violet: "#EE82EE", Wheat: "#F5DEB3", White: "#FFFFFF", WhiteSmoke: "#F5F5F5", Yellow: "#FFFF00", YellowGreen: "#9ACD32", }; var Groups = { Moderators: 'red', FanclubMembers: 'green', RecentTippers: 'blue', TokenHolders: 'cyan', Everyone: null, }; /*============================================= Utility functions =============================================*/ String.prototype.format = function () { var newString = String(this); for (var idx = 0; idx < arguments.length; idx++) { newString = newString.replace('{' + idx + '}', arguments[idx]); } return String(newString); }; /*============================================= Chat utility functions =============================================*/ function errorMessage(str, recipient, group) { genericMessage(str, Colours.Red, '', recipient, group); } function warningMessage(str, recipient, group) { genericMessage(str, Colours.Orange, '', recipient, group); } function successMessage(str, recipient, group) { genericMessage(str, Colours.DarkGreen, '', recipient, group); } function genericMessage(str, colour, background, recipient, group) { if (recipient != null && group != null) cb.sendNotice(str, recipient, '', colour, 'bold', ''); cb.sendNotice(str, recipient, background, colour, 'bold', group); } function ghostMessage(msg) { warningMessage('Message from {0} hidden: {1}'.format(msg.user, msg.m), cb.room_slug, Groups.Moderators); msg['X-Spam'] = true; return msg; } /*============================================= Event handlers =============================================*/ cb.onMessage(function(msg) { if (msg.is_mod) return; if (settings.ghostKeywords.length > 0) { for (var idx = 0; idx < settings.ghostKeywords.length; idx++) { if (msg.m.indexOf(settings.ghostKeywords[idx]) >= 0) msg = ghostMessage(msg); } } }); cb.onTip(function(tip) { if (settings.copyTipNotes) { genericMessage('Tip note from {0}: {1}'.format(tip.from_user, tip.message), Colours.GoldenRod, '', '', Groups.Moderators); } }); cb.onEnter(function(user) { if (settings.notifyOnEntry.grey && !user.has_tokens) genericMessage('{0} has entered the room'.format(user.user), Colours.DarkGrey, '', '', Groups.Moderators); if (settings.notifyOnEntry.darkBlue && user.has_tokens && user.tipped_recently) genericMessage('{0} has entered the room'.format(user.user), Colours.DarkBlue, '', '', Groups.Moderators); if (settings.notifyOnEntry.lightBlue && user.has_tokens && !user.tipped_recently) genericMessage('{0} has entered the room'.format(user.user), Colours.Cyan, '', '', Groups.Moderators); }); cb.onLeave(function (user) { if (settings.notifyOnEntry.grey && !user.has_tokens) genericMessage('{0} has left the room'.format(user.user), Colours.DarkGrey, '', '', Groups.Moderators); if (settings.notifyOnEntry.darkBlue && user.has_tokens && user.tipped_recently) genericMessage('{0} has left the room'.format(user.user), Colours.DarkBlue, '', '', Groups.Moderators); if (settings.notifyOnEntry.lightBlue && user.has_tokens && !user.tipped_recently) genericMessage('{0} has left the room'.format(user.user), Colours.Cyan, '', '', Groups.Moderators); });
© Copyright Chaturbate 2011- 2024. All Rights Reserved.