Apps Home
|
Create an App
sdsds
Author:
test24test
Description
Source Code
Launch App
Current Users
Created by:
Test24test
function init() { cb.settings.goalMode && cb.settings.levelMode && cb.settings.messColor && (goalMode = goalModeList[cb.settings.goalMode].m, levelMode = levelModeList[cb.settings.levelMode].level, messColor = cb.settings.messColor), cb.settings.tags && (tags = cb.settings.tags.trim() ? cb.settings.tags : ""), (!tags || tags.toLowerCase().indexOf("Lovense") < 0) && (tags += ""); var e = mySplit(tags); tags = ""; for (var t = 0; t < e.length; t++) tags += "#" == e[t].substring(0, 1) ? e[t] : "#" + e[t]; initNotice(), cb.settings.levelTitle && (levelTitle = cb.settings.levelTitle.trim() ? cb.settings.levelTitle : "Lovense Lush: Device that vibrates longer at Tips"), levelMode && initLevel(), noteNb || cbjs.arrayRemove(nextArray, "NOTE"), levelMode || cbjs.arrayRemove(nextArray, "LEVEL"), nextArray.length && (next = nextArray[nextIndex], cb.setTimeout(roomDisplay, 2e4)), runGoal(owner) } function onTip(e, t) { actionIndic += 1, tipNb += 1, tipSum += t; var n = manageTotalList(e, t); if (n > maxSum && (maxSum = n, maxSumUsr = e), t > maxTip && (maxTip = t, maxTipUsr = e), goalOn) { goalSum += t, lastTipper = e, lastTip = t; var o = manageUserList(e, t); o > mvpSum && (mvpSum = o, mvpName = e), t > higherTip && (higherTip = t, higherTipName = e), "COUNTER" != goalMode && ("SINGLE" != goalMode || goalReached ? "MULTI" == goalMode && watchMultiGoal(e, t) : watchSingleGoal(t)), changePanel() } } function initNotice() { for (var e = 1; maxNotice >= e; e++) { var t = cb.settings["notice" + e] ? cb.settings["notice" + e].trim() : ""; t && (noteList[++noteNb] = { note: t }) } } function initLevel() { for (var e = 1; maxLevel >= e; e++) { var t = cb.settings["level" + e] ? cb.settings["level" + e].trim() : ""; t && (levelNotice += "LIST" == levelMode ? sqr + t + skp : sqr + t) } } function runGoal(e) { goalOn = !0, goalReached = !1, remaining = setRemaining, goalNb = 0, goalSum = 0, goalUsrNb = 0, lastTipper = "", lastTip = 0, mvpName = "", mvpSum = 0, userList = {}, higherTipName = "", higherTip = 0, runNb++ && showGoalInfo(e), changeSubject(), changePanel() } function manageTotalList(e, t) { return e in totalList ? totalList[e].sum += t : totalList[e] = { sum: t, num: ++usrNb }, totalList[e].sum } function manageUserList(e, t) { return e in userList ? userList[e].sum += t : userList[e] = { sum: t, num: ++goalUsrNb }, userList[e].sum } function watchSingleGoal(e) { if (remaining -= e, !(remaining > 0)) { goalReached = !0, goalOn = !1, cb.changeRoomSubject(roomSubject + " Goal reached : " + goalSubject + " " + tags); var t = xLine(6); sendTitle(all, t + skp + "Goal Reached : Thanks you so much." + skp + t, cbColor), sendTitle(owner, skp + lck + owner + " : " + skp + sqr + "Use " + qt("/sum") + " for a Total Summary Board." + skp) } } function watchMultiGoal(e, t) { remaining -= t; var n = Math.floor(t / setRemaining); if (n += 0 >= remaining + n * setRemaining ? 1 : 0, goalNb += n, remaining += n * setRemaining, n) { var o = 1 == n ? " Goal " + goalNb : " Goals " + (goalNb - n + 1) + (2 == n ? " and " : " to ") + goalNb; sendTitle(all, sqr + sqr + sqr + qt(e) + " reached " + o + sqr + sqr + sqr, cbColor) } } function round(n) { return Number(Math['floor'](n)); } function changeSubject() { var e = roomSubject; "COUNTER" != goalMode && (e += ("SINGLE" == goalMode ? " - Goal is : " : " - Multi-Goal : ") + goalSubject), cb["changeRoomSubject"](e + " " + tags); } /** * @return {?} */ function changePanel() { progBar = ""; /** @type {number} */ var cDigit = 0; /** @type {number} */ var nDigit = 0; var startStar = "\u25BF"; // ▿ var halfStar = "\u2606"; // ☆ var fullStar = "\u2605"; // ★ var halfHeart = "\u2661"; var fullHeart = "\u2665"; var right; var left; var padLength; if (setRemaining - remaining > cb['settings']['setRemaining']) { /** @type {number} */ cDigit = 100; } else { cDigit = round((setRemaining - remaining) / cb['settings']['setRemaining'] * 200); } /** @type {number} */ nDigit = parseInt(cDigit, 10); tipPC = cDigit; /** @type {number} */ right = (nDigit - nDigit % 10) / 10; /** @type {number} */ left = nDigit % 10 > 0 ? 1 : 0; /** @type {number} */ padLength = 20 - (right + left); /** @type {number} */ i = 0; for (; i < right; i++) { progBar += fullHeart; } if (left === 1) { progBar += halfHeart; } else { progBar += ""; } /** @type {number} */ i = 0; for (; i < padLength; i++) { progBar += startStar; } return goalReached ? (row1 = 'Goal Reached - Thanks all.', row2 = "", row3 = halfStar + ' Cool Guy: ' + cut(mvpName) + " ( " + mvpSum + " ) " + halfStar, cb['drawPanel']()) : goalOn ? 'COUNTER' == goalMode ? (goalSum ? (row1 = x(usrNb, 'LOVER') + (tokenOn ? ' - ' + x(goalSum, 'Vibration$ Received') : ""), row2 = halfStar + ' Cool Guy: ' + cut(mvpName) + " ( " + mvpSum + " ) " + halfStar, row3 = 'Last Vibrations' + halfStar + cut(lastTipper) + halfStar + lastTip) : (row1 = 'Lovense - Vibrator that react to your Tips', row2 = 'Tip to Start', row3 = ""), cb['drawPanel']()) : 'MULTI' == goalMode ? (row1 = 'Goal #' + (goalNb + 1) + ' : ' + (setRemaining - remaining) + ' / ' + setRemaining + ' [ ' + remaining + ' Remaining ]' + (tokenOn && goalNb >= 1 ? ' (' + goalSum + ')' : ""), goalSum ? (row2 = fullHeart + progBar, row3 = halfStar + ' Cool Guy: ' + cut(mvpName) + ' (' + mvpSum + ') ' + halfStar) : (row2 = 'Lovense - Vibrator that reacts to your Tips', row3 = 'Tip to Start'), cb['drawPanel']()) : 'SINGLE' == goalMode ? (row1 = tokenOn ? 'Goal - ' + goalSum + ' / ' + setRemaining + ' [ ' + remaining + ' Remaining ]' : 'Goal Remaining [ ' + remaining + ' ] ', goalSum ? (row2 = fullHeart + progBar, row3 = halfStar + ' Cool Guy: ' + cut(mvpName) + ' (' + mvpSum + ') ' + halfStar) : (row2 = 'Lovense - Vibrator that reacts to your Tips', row3 = 'Tip to Start'), cb['drawPanel']()) : void 0 : cb['drawPanel'](); } function showGoalInfo(e, t) { var n = ""; (setRemaining != cb.settings.setRemaining || goalMode != goalModeList[cb.settings.goalMode].mode || goalSubject != cb.settings.goalSubject) && (n = sqr + qt("/goal init") + " if you want to restaure initial settings." + skp); var o = xLine(7), a = skp + o + skp + lck + "Goal Parameters :" + skp, i = sy(1, t) + "Amount : " + qt("/goal <X>") + " : " + setRemaining + skp + sy(2, t) + "Mode : " + qt("/goal [ single / multi / counter ]") + " : " + goalMode + skp + sy(3, t) + "Goal is : " + qt("/goal <description>") + " : " + goalSubject + skp + sqr + "Run goal : " + qt("/goal [ on / off ]") + " : " + (goalOn ? "ON" : "OFF") + (goalReached ? " - (Goal Reached) " : "") + skp, l = (goalOn ? lck + "Goal is ON (Running)." + skp + sqr + "Description (only) is updatable." + skp + sqr + qt("/goal off") + " to stop running the goal." + skp : lck + "Goal is OFF " + (goalReached ? "(Goal Reached). " : ".") + skp + (goalReached ? sqr + "(" + qt("/goal off") + " if you want to clear the screen.)" + skp : "") + sqr + "All parameters are updatable." + skp + n + sqr + qt("/goal on") + " to run the Goal." + skp) + o + skp; sendTitle(e, a), sendNote(e, i), sendTitle(e, l) } function sy(e, t) { return e == t ? trg : sqr } function cmdSum(e) { if (0 == tipNb) return sendTitle(e, lck + "SUMMARY : No Tipper yet."); var t = xLine(5), n = elapsTime(startTime, "[hms]"), o = skp + t + skp + lck + appName + skp + t + skp + sqr + "RunningTime : " + n + skp + sqr + " SUMMARY (since the App Started) :", a = "" + dot + x(usrNb, "Tipper$ / ") + x(Math.round(tipSum / usrNb), "token$ by Tipper.") + skp + dot + "Highest Tipper : " + qt(maxSumUsr) + " : " + x(maxSum, "Token$.") + skp + dot + "Highest Tip : " + qt(maxTipUsr) + " : " + x(maxTip, "Token$."), i = "" + t + skp + sqr + "Total received : " + x(tipSum, "Token$.") + skp + t + skp + sqr + qt("/sum") + " to display a Summary again."; sendTitle(e, o), sendNote(e, a), sendTitle(e, i) } function cmdToken(e, t) { return 1 == t.length ? sendTitle(e, skp + lck + "Token Received Setting is : " + (tokenOn ? "ON" : "OFF") + skp + dot + qt("/token on") + " : Display the Total Tokens received in Panel." + skp + dot + qt("/token off") + " : Stop display the Total Tokens received." + skp) : "on" == t[1] ? tokenOn ? sendTitle(e, lck + "Token Received Display already ON") : (tokenOn = !0, sendTitle(e, lck + "Token Received Display settled ON."), void(goalOn && changePanel())) : "off" == t[1] ? tokenOn ? (tokenOn = !1, goalOn && changePanel(), void sendTitle(e, lck + "Token Received Display settled OFF.")) : sendTitle(e, lck + "Token Received Display already OFF") : "Format : " + qt("/token <on/off>") } function roomDisplay() { var e = 1; actionIndic >= minAction && (nextDisplay(), actionIndic = 0, e = noteNb && "LEVEL" == next ? 1 : minuteNb), cb.setTimeout(roomDisplay, 6e4 * e) } function nextDisplay() { "LEVEL" == next ? levelDisplay(all) : "NOTE" == next && noteDisplay(), nextIndex = nextIndex >= nextArray.length - 1 ? 0 : nextIndex + 1, next = nextArray[nextIndex] } function noteDisplay() { cycleNum = cycleNum >= noteNb ? 1 : cycleNum + 1, sendTitle(all, noteList[cycleNum].note) } function levelDisplay(e) { if ('LINE' == levelMode) { sendTitle(e, skp + levelTitle + ' : ' + levelNotice + skp); } else { sendTitle(e, skp + levelTitle + ' : ' + skp + levelNotice); } } function cut(e) { return qt(e.substring(0, 25)) } function watchCommand(e) { for (var t in cmdList) { var n = e.toLowerCase().indexOf(t); if (n >= 0) { var o = mySplit(e.substring(n)); return e.substring(n).replace(o[0], cmdList[t].cmd) } } } function errorCmd(e, t, n) { sendTitle(e, skp + lck + " Error command : /" + n + skp + sqr + t + skp) } function onTest(e) { var t = e.indexOf("tip"); if (-1 != t) { var n = mySplit(e.substring(t)); if (3 == n.length) { var o = n[1], a = parseInt(n[2]); isNaN(a) || 0 >= a || onTip(o, a) } } } function isOwner(e) { return e == cb.room_slug } function sendTitle(e, t, n) { var o = n ? n : messColor; o = isOwner(e) ? "#000000" : o, cb.sendNotice(t, e, "", o, "bolder") } function sendNote(e, t, n) { var o = n ? n : messColor; cb.sendNotice(t, e, "", o, "normal") } function trimEmot(e) { e = e.replace(/\[/g, ""), e = e.replace(/\]/g, ""); for (var t = mySplit(e), n = 0; n < t.length; n++) ":" == t[n][0] && t[n].length > 1 && (e = e.replace(t[n], "")); return e } function mySplit(e) { return e.trim().replace(/\s+/g, " ").split(" ") } function myRandom(e, t) { return Math.floor(e + Math.random() * (t - e + 1)) } function elapsTime(e, t) { var n = (new Date).getTime(); return toHms(n, e, t) } function toHms(e, t, n) { var o = (e - t) / 1e3, a = o / 86400; a = a >= 1 ? a - a % 1 : 0; var i = (o - 3600 * a * 24) / 3600; i -= i % 1; var l = o % 3600 / 60; l -= l % 1; var s = o % 3600 - 60 * l; s -= s % 1; var r = a > 0 ? x(a, "Day$ ") : "", c = 10 > i ? "0" + i : i, m = 10 > l ? "0" + l : l, u = 10 > s ? "0" + s : s, p = r + c + ":" + m + ":" + u, g = n; return g = g.replace("day", r), g = g.replace("hour", "00" == c ? "" : x(i, "hour$ ")), g = g.replace("minute", "00" == m ? "" : x(l, "minute$ ")), g = g.replace("seconde", "00" == u ? "" : s + " sec"), g = g.replace("hms", p), g.replace(/ /g, "") ? g : "00" } function xLine(e) { var t = ""; for (e *= 5; e--;) t += lne; return t } function qt(e) { return ' "' + e + '"' } function x(e, t) { return e + " " + t.replace("$", e > 1 ? "s" : "") } function y(e, t) { return t.replace("$", e > 1 ? "s" : "") } var appName = " [ Geni Lovense ] ", owner = cb.room_slug, startTime = (new Date).getTime(), yr = 16436, mth = 5, messColor = '#6900CC', cbColor = '#DC5500', all = "", skp = "\n", dot = " \\u2981 ", hrt = " \u2665 ", hhrt = " \\u2661 ", sqr = " \\u25A0 ", trg = " \\u25B6 ", lne = "\\u2500", lck = " :w__lck ", wht = " :w__wht "; cb['settings_choices'] = [{ name: 'roomSubject', label: '1. ROOM SETTINGS ........ Room Subject', type: 'str', minLength: 1, maxLength: 150, required: true, defaultValue: ' Lovense: Interactive Toy that vibrates with your Tips' }, { name: 'tags', label: 'Tags (#) ', type: 'str', minLength: 1, maxLength: 120, required: false, defaultValue: 'Lovense Ohmibod interactivetoy' }, { name: 'tokenOn', label: 'Tokens', type: 'choice', choice1: 'Display "Total Received" in Panel', choice2: 'Not displayed', "default": 'Display "Total Received" in Panel' }, { name: 'messColor', label: '2. NOTICES SETTINGS ... - Display Color (html code default pink #FF00FF)', type: 'str', minLength: 7, maxLength: 7, required: true, defaultValue: '#FF00FF' }, { name: 'minuteNb', label: ' (minutes) - Display Time ', type: 'int', minValue: 1, maxValue: 30, defaultValue: 1 }, { name: 'levelMode', label: '- Notification of Lovense-Levels', type: 'choice', choice1: 'NO (next info will not be used)', choice2: 'YES - Mode List', choice3: 'YES - Single Line', defaultValue: 'YES - Mode List' }, { name: 'levelTitle', label: 'Level Title', type: 'str', minLength: 0, maxLength: 10240, required: true, defaultValue: 'Lovense Toy IS A INTERACTIVE VIBRATOR THAT RESPONDS TO YOUR TIPS. MY LEVELS OF INTENSITY AND DURATION' }, { name: 'level1', label: 'Level 1 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Level 1 - Tip (1-14) Low 1 second' }, { name: 'Level1T', label: 'Minimum tokens for level 1 ', type: 'int', minValue: 1, maxValue: 1E4, defaultValue: 1 }, { name: 'level2', label: 'Level 2 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Level 2 - Tip (15-99) Medium 4 seconds' }, { name: 'Level2T', label: 'Minimum tokens for level 2', type: 'int', minValue: 1, maxValue: 1E4, defaultValue: 15 }, { name: 'level3', label: 'Level 3 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Level 3 - Tip (100-499) Medium 6 seconds ' }, { name: 'Level3T', label: 'Minimum tokens for level 3 ', type: 'int', minValue: 1, maxValue: 1E4, defaultValue: 100 }, { name: 'level4', label: 'Level 4 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Level 4 - Tip (500-999) High 8 seconds' }, { name: 'Level4T', label: 'Minimum tokens for level 4 ', type: 'int', minValue: 1, maxValue: 1E4, defaultValue: 500 }, { name: 'level5', label: 'Level 5 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'Level 5 - Tip (1000+) Ultra-High 10 seconds ' }, { name: 'Level5T', label: 'Minimum tokens for level 5 ', type: 'int', minValue: 1, defaultValue: 1E3 }, { name: 'notice1', label: '- Optional Additional ...... Notice 1 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ' :lovense8 Toy that vibrates with your Tips, Give me pleasure and make me wet' }, { name: 'notice2', label: 'Notice 2 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ' :lovense10 \n Make my WET with the SOUND of your TIPS!!! \n :lovenselush' }, { name: 'notice3', label: 'Notice 3 ', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: ' :lovense4 \n Give me pleasure with the sound of your tips!!!' }, { name: 'goalMode', label: '4.*****GOAL SETTINGS - Will you use a Goal*****', type: 'choice', choice1: 'NO (next info will not be used)', choice2: 'Single Goal', choice3: 'Multi Goals (Repeated)', "default": 'NO (next info will not be used)' }, { name: 'goalSubject', label: 'Goal is ....', type: 'str', minLength: 1, maxLength: 200, required: true, defaultValue: 'A surprise' }, { name: 'setRemaining', label: 'Amount', type: 'int', minValue: 0, maxValue: 9999999, defaultValue: 2E3 } ]; var minuteNb = parseInt(cb['settings']['minuteNb']); var minAction = 5; var actionIndic = minAction; var cycleNum = 0; var nextArray = ['LEVEL', 'NOTE']; var nextIndex = 0; var next = ''; var roomSubject = cb['settings']['roomSubject']; var levelTitle = ''; var maxLevel = 5; var levelMode = ''; var levelNotice = ''; var levelModeList = {}; levelModeList['NO (next info will not be used)'] = { level: '' }, levelModeList['YES - Mode List'] = { level: 'LIST' }, levelModeList['YES - Single Line'] = { level: 'LINE' }; var maxNotice = 3; var noteList = {}; var noteNb = 0; var tipSum = 0; var tipNb = 0; var lastTipper = ''; var lastTip = 0; var mvpName = ''; var mvpSum = 0; var userList = {}; var higherTip = 0; var higherTipName = ''; var totalList = {}; var usrNb = 0; var maxSum = 0; var maxSumUsr = ''; var maxTip = 0; var maxTipUsr = ''; var Level1T = cb['settings']['Level1T']; var Level2T = cb['settings']['Level2T']; var Level3T = cb['settings']['Level3T']; var Level4T = cb['settings']['Level4T']; var Level5T = cb['settings']['Level5T']; var tokenOn = 'Not displayed' == cb['settings']['tokenOn'] ? false : true; var goalMode = ''; var goalSubject = cb['settings']['goalSubject']; var setRemaining = parseInt(cb['settings']['setRemaining']); var goalOn = true; var goalReached = false; var goalNb = 0; var remaining = setRemaining; var goalSum = 0; var goalUsrNb = 0; var runNb = 0; var tags = ''; var row1 = ''; var row2 = ''; var row3 = ''; var goalModeList = {}; goalModeList['NO (next info will not be used)'] = { m: 'COUNTER' }, goalModeList['Single Goal'] = { m: 'SINGLE' }, goalModeList['Multi Goals (Repeated)'] = { m: 'MULTI' }; var cmdList = {}; cmdList['/goa'] = { cmd: 'goal' }, cmdList['!goa'] = { cmd: 'goal' }, cmdList['/sum'] = { cmd: 'sum' }, cmdList['!sum'] = { cmd: 'sum' }, cmdList['/tok'] = { cmd: 'token' }, cmdList['!tok'] = { cmd: 'token' }, cb['onEnter'](function(events) { var ev = events['user']; if (!isOwner(ev)) { if (levelMode) { levelDisplay(ev); } } }), cb['onMessage'](function(args) { var pageX = args['user']; var pageY = args['m']; var next = args['is_mod']; !args['has_tokens']; actionIndic += 1; }), cb['onTip'](function(execResult) { /** @type {number} */ var deepDataAndEvents = parseInt(execResult['amount']); var r20 = execResult['from_user']; onTip(r20, deepDataAndEvents); }), cb['onDrawPanel'](function() { return { template: '3_rows_11_21_31', row1_value: row1, row2_value: row2, row3_value: row3 }; }), init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.