Bots Home
|
Create an App
tippper
Author:
pauletteperkinson
Description
Source Code
Launch Bot
Current Users
Created by:
Pauletteperkinson
// CB app settings cb.settings_choices = [ {name: 'greeting', label: 'Greeting for incoming viewers (wildcard %user% for nickname allowed)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Hi %user%'}, {name: 'favgreeting', label: 'Greeting for incoming FAVORITE viewers (wildcard %user% for nickname allowed)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Hi %user%'}, {name: 'rules', label: 'Rules info for incoming viewers', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ''}, {name: 'notifyMeOnVisitors', type: 'choice', label: 'Inform me when a "gray" user enters or leaves my room', choice1: 'Yes', choice2: 'No', defaultValue: 'Yes'}, {name: 'disableChat', type: 'choice', label: 'Disable chat', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'disableChatMessage', label: 'Auto-answer when chat is disabled', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: "My chat is disabled"}, {name: 'busy', type: 'choice', label: 'Start in "BUSY" mode', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'busyAutoRespond', type: 'choice', label: 'Auto-answer when busy', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'busyMessage', label: 'Message for viewers when busy', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: "I can't answer in chat"}, {name: 'freeMessage', label: "Message for viewers when i'm free for chat", type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: "I'm free for chat now"}, {name: 'chatOnMessage', label: "Message for viewers when chat is enabled", type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: "My chat is enabled now"}, {name: 'supressMen', type: 'choice', label: 'Suppress messages from males', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'supressWomen', type: 'choice', label: 'Suppress messages from females', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'supressTrannies', type: 'choice', label: 'Suppress messages from trannies', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'supressPairs', type: 'choice', label: 'Suppress messages from couples', choice1: 'Yes', choice2: 'No', defaultValue: 'No'}, {name: 'favUsers', label: "My favorite viewers (comma-separated)", type: 'str', minLength: 0, maxLength: 30000, required: false, defaultValue: ""} ]; var actualParams={ 'greeting' : '', 'favgreeting' : '', 'rules' : '', 'notifyMeOnVisitors' : '', 'disableChat' : '', 'disableChatMessage' : '', 'busy' : '', 'busyAutoRespond' : '', 'busyMessage' : '', 'freeMessage' : '', 'chatOnMessage' : '', 'supressMen' : '', 'supressWomen' : '', 'supressTrannies' : '', 'supressPairs' : '', 'nextRed' : 0, 'favUsers' : {} }; var colors = { 'green' : '#339933', 'red' : '#c42323', 'white' : '#ffffff', 'gray' : '#5f5f5f', 'fav' : '#33BB33' }; function fillFavUsers() { var favstr = cb.settings.favUsers; if(favstr && favstr.length) { var re = /\s*,\s*/; var favs_arr = favstr.split(re); for (i=0; i<favs_arr.length; i++) { var cur_fav = favs_arr[i]; if(cur_fav) { actualParams.favUsers[cur_fav]=1; } } } } function read_settings() { actualParams.greeting = cb.settings.greeting; actualParams.favgreeting = cb.settings.favgreeting; actualParams.rules = cb.settings.rules; actualParams.notifyMeOnVisitors = cb.settings.notifyMeOnVisitors; actualParams.disableChat = cb.settings.disableChat; actualParams.disableChatMessage = cb.settings.disableChatMessage; actualParams.busy = cb.settings.busy; actualParams.busyAutoRespond = cb.settings.busyAutoRespond; actualParams.busyMessage = cb.settings.busyMessage; actualParams.freeMessage = cb.settings.freeMessage; actualParams.chatOnMessage = cb.settings.chatOnMessage; actualParams.supressMen = cb.settings.supressMen; actualParams.supressWomen = cb.settings.supressWomen; actualParams.supressTrannies = cb.settings.supressTrannies; actualParams.supressPairs = cb.settings.supressPairs; fillFavUsers(); } read_settings(); function urgent(msg, user) { if(msg && msg.length>0) { cb.sendNotice(msg, user, colors.white, colors.red, 'bold'); } } function red(msg, user) { if(msg && msg.length>0) { cb.sendNotice(msg, user, colors.white, colors.red, 'bold'); } } function green(msg, user) { if(msg && msg.length>0) { cb.sendNotice(msg, user, colors.white, colors.green, 'bold'); } } function gray(msg, user) { if(msg && msg.length>0) { cb.sendNotice(msg, user, colors.white, colors.gray, 'bold'); } } function notice_me(msg) { gray(msg, cb.room_slug); } function is_gray(user) { return !user['in_fanclub'] && !user['has_tokens'] && !user['is_mod'] && !user['tipped_recently'] && !(user['user']==cb.room_slug); } function is_moder(user) { return user['is_mod'] || (user['user']==cb.room_slug); } var commands = { 'busy': function(r) { actualParams.busy = 'Yes'; urgent(actualParams.busyMessage, ""); }, 'free': function(r) { actualParams.busy = 'No'; green(actualParams.freeMessage, ""); }, 'nochat': function(r) { actualParams.disableChat = 'Yes'; urgent(actualParams.disableChatMessage, ""); }, 'chat': function(r) { actualParams.disableChat = 'No'; green(actualParams.chatOnMessage, ""); }, 'alert': function(r) { urgent(r, ""); }, 'nextred': function(r) { actualParams.nextRed = 2; } }; function supress_gender(user) { var cur_g = user['gender']; if((actualParams.supressMen=='Yes')&&(cur_g=='m')) { return true; } if((actualParams.supressWomen=='Yes')&&(cur_g=='f')) { return true; } if((actualParams.supressTrannies=='Yes')&&(cur_g=='s')) { return true; } if((actualParams.supressPairs=='Yes')&&(cur_g=='c')) { return true; } return false; } function check_and_process_command(msgtext) { var res = false; if(msgtext && msgtext.length>1) { if(msgtext.substring(0,1)=="/") { var sp_p = msgtext.indexOf(" ",0); var cmd = ""; if(sp_p < 0) { cmd = msgtext.substring(1); } else { cmd = msgtext.substring(1,sp_p); } var rr = msgtext.substring(sp_p+1); if(cmd in commands) { var handler = commands[cmd]; handler(rr); res = true; } } } return res; } cb.onEnter(function(user) { if(supress_gender(user)) { red("You're not allowed to chat with broadcaster", user['user']); return; } var act_gr = ""; if(user['user'] in actualParams.favUsers) { var tmp_gr = actualParams.favgreeting; if(tmp_gr && tmp_gr.length) { act_gr = tmp_gr; } else { act_gr = actualParams.greeting; } } else { act_gr = actualParams.greeting; } if(act_gr && act_gr.length>0) { act_gr = act_gr.split("%user%").join(user['user']); } green(act_gr, user['user']); green(actualParams.rules, user['user']); if((actualParams.notifyMeOnVisitors=='Yes')&&is_gray(user)) { notice_me(''+user['user']+' [in]'); } if(actualParams.disableChat=='Yes') { red(actualParams.disableChatMessage, user['user']); } if(actualParams.busy=='Yes') { red(actualParams.busyMessage, user['user']); } }); cb.onLeave(function(user) { if((actualParams.notifyMeOnVisitors=='Yes')&&is_gray(user)) { notice_me(''+user['user']+' [out]'); } }); cb.onMessage(function (msg) { var msg_text = msg['m']; if(is_moder(msg)) { if(check_and_process_command(msg_text)) { msg['X-Spam'] = true; msg['m'] = 'Processed: '+msg['m']; } if(actualParams.nextRed>0) { msg['c'] = colors.red; actualParams.nextRed--; } return msg; } else if (supress_gender(msg)) { msg['X-Spam'] = true; msg['m'] = ''; red("You're not allowed to chat with broadcaster", msg['user']); return msg; } else { if(actualParams.disableChat=='Yes') { msg['X-Spam'] = true; msg['m'] = ''; red(actualParams.disableChatMessage, msg['user']); return msg; } else if(actualParams.busy=='Yes') { if(actualParams.busyAutoRespond=='Yes') { green(actualParams.busyMessage, msg['user']); } } } if(msg['user'] in actualParams.favUsers) { msg['c'] = colors.fav; } return msg; });
© Copyright Chaturbate 2011- 2026. All Rights Reserved.