Apps Home
|
Create an App
LRD_Lovers
Author:
lrds_bodyguard
Description
Source Code
Launch App
Current Users
Created by:
Lrds_Bodyguard
// fuck-friend-200, ;boyfriend-450, fiance-650,husband-900 // // CB app settings cb.settings_choices = [ {name: 'mmText', label: 'Text to put in front of fuck-friend messages (e.g. JA), the text will be put inside square brackets []', type: 'str', minLength: 0, maxLength: 30, required: false, defaultValue: 'fuck-friend'}, {name: 'mmTextColor', label: 'fuck-friend text color - HTML colour code without starting \'#\' e.g. (FFFFFF is white)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: '2EFEF'}, {name: 'mmBGColor', label: 'fuck-friend background color - HTML colour code without starting \'#\' e.g. (000000 is black)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: '000000'}, {name: 'mmMinTip', label: 'Minimum tip to become fuck-friend', type: 'int', minValue: 1, defaultValue: 200}, {name: 'mmAnnounce', label: 'Text to show when someone tips to become a fuck-friend, the text MEMBERNAME will be replaced with the username of the new (Note: graphics don\'t work in this text)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'MEMBERNAME just became a Fuck-friend'}, {name: 'mmMemberList', label: 'List of current fuck-friend, separated by commas (and they need to be the CB username exactly)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ''}, {name: 'mmRainText', label: 'Text to use for fuck-friend lines', type: 'str', minLength: 0, maxLength: 80, required: false, defaultValue: 'fuck-friend'}, {name: 'mmRainCount', label: 'Number of lines of fuck-friend rain', type: 'int', minValue: 1, maxValue: 15, defaultValue: 5}, {name: 'mgText', label: 'Text to put in front of boyfriend messages (e.g. JF)', type: 'str', minLength: 0, maxLength: 30, required: false, defaultValue: 'boyfriend'}, {name: 'mgTextColor', label: 'boyfriend text color - HTML colour code without starting \'#\' e.g. (000000 is black)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: '00000F'}, {name: 'mgBGColor', label: 'boyfriend background color - HTML colour code without starting \'#\' e.g. (F5B608 is orangey/gold)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: '000000'}, {name: 'mgMinTip', label: 'Minimum tip to become boyfriend', type: 'int', minValue: 1, defaultValue: 450}, {name: 'mgAnnounce', label: 'Text to show when someone tips to become a Boyfriend, the text MEMBERNAME will be replaced with the username of the new member (Note: graphics don\'t work in this text)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'MEMBERNAME just became a Boyfriend'}, {name: 'mgMemberList', label: 'List of current Boyfriend, separated by commas (and they need to be the CB username exactly)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ''}, {name: 'mgRainText', label: 'Text to use for Boyfriend rain lines', type: 'str', minLength: 0, maxLength: 80, required: false, defaultValue: 'Boyfriend'}, {name: 'mgRainCount', label: 'Number of lines of Boyfriend rain', type: 'int', minValue: 1, maxValue: 15, defaultValue: 9}, {name: 'bText', label: 'Text to put in front of fiance (e.g. JBF)', type: 'str', minLength: 0, maxLength: 30, required: false, defaultValue: 'fiance'}, {name: 'bTextColor', label: 'fiance text color - HTML colour code without starting \'#\' e.g. (FFFFFF is white)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: 'FF004'}, {name: 'bBGColor', label: 'fiance background color - HTML colour code without starting \'#\' e.g. (2F1BE0 is blue)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: '000000'}, {name: 'bMinTip', label: 'Minimum tip to become fiance', type: 'int', minValue: 1, defaultValue: 650}, {name: 'bAnnounce', label: 'Text to show when someone tips to become a fiance, the text MEMBERNAME will be replaced with the username of the new member (Note: graphics don\'t work in this text)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'MEMBERNAME just became a fiance'}, {name: 'bMemberList', label: 'List of current fiance, separated by commas (and they need to be the CB username exactly)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ''}, {name: 'bRainText', label: 'Text to use for fiance rain lines', type: 'str', minLength: 0, maxLength: 80, required: false, defaultValue: 'fiance'}, {name: 'bRainCount', label: 'Number of lines of Fiance rain', type: 'int', minValue: 1, maxValue: 15, defaultValue: 11}, {name: 'dText', label: 'Text to put in front of husband messages (e.g. JHB)', type: 'str', minLength: 0, maxLength: 30, required: false, defaultValue: 'husband'}, {name: 'dTextColor', label: 'husband text color - HTML colour code without starting \'#\' e.g. (FFFFFF is white)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: 'FA58F'}, {name: 'dBGColor', label: 'husband background color - HTML colour code without starting \'#\' e.g. (A62121 is deep red)', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: 'A4A4A'}, {name: 'dMinTip', label: 'Minimum tip to become husband', type: 'int', minValue: 1, defaultValue: 900}, {name: 'dAnnounce', label: 'Text to show when someone tips to become a Husband, the text MEMBERNAME will be replaced with the username of the new member (Note: graphics don\'t work in this text)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'MEMBERNAME just became a Husband'}, {name: 'dMemberList', label: 'List of current husband, separated by commas (and they need to be the CB username exactly)', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ''}, {name: 'dRainText', label: 'Text to use for Husband rain lines', type: 'str', minLength: 0, maxLength: 80, required: false, defaultValue: 'husband'}, {name: 'dRainCount', label: 'Number of lines of Husband rain', type: 'int', minValue: 1, maxValue: 15, defaultValue: 15} ]; var mmMembers = {}; var mgMembers = {}; var bMembers = {}; var dMembers = {}; var mmNotice = "Tip " + cb.settings.mmMinTip + " to become a Fuck-friend, Tip " + cb.settings.mgMinTip + " to become a Boyfriend.\nTip " + cb.settings.bMinTip + " to become a Fiance! Tip " + cb.settings.dMinTip + " to become a Husband!"; // For auto-silencing at least some of token_wh*re_c*nts usernames var twcRegex = /t.?k.?n.?wh.?r.?_c.?nt.?/i; function showMMNotice() { cb.chatNotice(mmNotice); cb.setTimeout(showMMNotice, 900000); } cb.onMessage(function (msg) { // vars for ease of use var u = msg['user']; // Don't process commands and hide them if (/^\//.test(msg['m'])) { msg['X-Spam'] = true; return msg; } if (isD(u)) { // msg['background'] = '#' + cb.settings.dBGColor; msg['c'] = '#' + cb.settings.dTextColor; msg['m'] = "[" + cb.settings.dText + "] " + msg['m']; } else if (isB(u)) { // msg['background'] = '#' + cb.settings.bBGColor; msg['c'] = '#' + cb.settings.bTextColor; msg['m'] = " " + cb.settings.bText + " " + msg['m']; } else if (isMG(u)) { // msg['background'] = '#' + cb.settings.mgBGColor; msg['c'] = '#' + cb.settings.mgTextColor; msg['m'] = "[" + cb.settings.mgText + "] " + msg['m']; } else if (isMM(u)) { // msg['background'] = '#' + cb.settings.mmBGColor; msg['c'] = '#' + cb.settings.mmTextColor; msg['m'] = "[" + cb.settings.mmText + "] " + msg['m']; } if (twcRegex.test(u)) { // Auto-silencing at least some of token_wh*re_c*nts usernames msg['X-Spam'] = true; } return msg; }); cb.onTip(function (tip) { var amountTipped = parseInt(tip['amount']); if ((amountTipped >= cb.settings.dMinTip || (amountTipped >= (cb.settings.dMinTip - cb.settings.bMinTip) && isB(tip['from_user'])) || (amountTipped >= (cb.settings.dMinTip - cb.settings.mgMinTip) && isMG(tip['from_user']))) && !isD(tip['from_user'])) { // Make husband and announce it var announcement = cb.settings.dAnnounce.replace("MEMBERNAME", tip['from_user']); makeD(tip['from_user']); for (var i = 0; i < cb.settings.dRainCount; i++) { cb.chatNotice(cb.settings.dRainText); } cb.chatNotice(announcement); } else if ((amountTipped >= cb.settings.bMinTip || (amountTipped >= (cb.settings.bMinTip - cb.settings.mgMinTip) && isMG(tip['from_user'])) ) && !isB(tip['from_user']) && !isD(tip['from_user'])) { // Make fiance and announce it var announcement = cb.settings.bAnnounce.replace("MEMBERNAME", tip['from_user']); makeB(tip['from_user']); for (var i = 0; i < cb.settings.bRainCount; i++) { cb.chatNotice(cb.settings.bRainText); } cb.chatNotice(announcement); } else if (amountTipped >= cb.settings.mgMinTip && !isMG(tip['from_user']) && !isB(tip['from_user']) && !isD(tip['from_user'])) { // Make Boyfriend and announce it var announcement = cb.settings.mgAnnounce.replace("MEMBERNAME", tip['from_user']); makeMG(tip['from_user']); for (var i = 0; i < cb.settings.mgRainCount; i++) { cb.chatNotice(cb.settings.mgRainText); } cb.chatNotice(announcement); } else if (amountTipped >= cb.settings.mmMinTip && !isMM(tip['from_user']) && !isMG(tip['from_user']) && !isB(tip['from_user']) && !isD(tip['from_user'])) { // Make fuck-buddy and announce it var announcement = cb.settings.mmAnnounce.replace("MEMBERNAME", tip['from_user']); makeMM(tip['from_user']); for (var i = 0; i < cb.settings.mmRainCount; i++) { cb.chatNotice(cb.settings.mmRainText); } cb.chatNotice(announcement); } }); function isD(username) { return (username in dMembers); } function isB(username) { return (username in bMembers); } function isMG(username) { return (username in mgMembers); } function isMM(username) { return (username in mmMembers); } function makeD(username) { dMembers[username] = {'u': 1}; } function makeB(username) { bMembers[username] = {'u': 1}; } function makeMG(username) { mgMembers[username] = {'u': 1}; } function makeMM(username) { mmMembers[username] = {'u': 1}; } function grabSettings() { cb.log("starting grabbing settings"); // Get legend members if (cb.settings.mmMemberList) { var mmMemberSettings = cb.settings.mmMemberList.split(','); for (var ii = 0; ii < mmMemberSettings.length; ii++) { var clean = mmMemberSettings[ii].toLowerCase().replace(/ /g, ""); mmMembers[clean] = {'u': 1}; } } // Get ace if (cb.settings.mgMemberList) { var mgMemberSettings = cb.settings.mgMemberList.split(','); for (var ii = 0; ii < mgMemberSettings.length; ii++) { var clean = mgMemberSettings[ii].toLowerCase().replace(/ /g, ""); mgMembers[clean] = {'u': 1}; } } // Get boyfriend if (cb.settings.bMemberList) { var bMemberSettings = cb.settings.bMemberList.split(','); for (var ii = 0; ii < bMemberSettings.length; ii++) { var clean = bMemberSettings[ii].toLowerCase().replace(/ /g, ""); bMembers[clean] = {'u': 1}; } } // Get husband if (cb.settings.dMemberList) { var dMemberSettings = cb.settings.dMemberList.split(','); for (var ii = 0; ii < dMemberSettings.length; ii++) { var clean = dMemberSettings[ii].toLowerCase().replace(/ /g, ""); dMembers[clean] = {'u': 1}; } } cb.log("finished grabbing settings"); } grabSettings(); showMMNotice();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.