Apps Home
|
Create an App
estestvoGoal
Author:
estestvo86
Description
Source Code
Launch App
Current Users
Created by:
Estestvo86
// vars var total_tipped = 0; var high_tip_username = null; var high_tip_amount = 0; var last_tip_username = null; var last_tip_amount = 0; var subject_is_set_with_0 = false; var subject_tags = ""; var ItemCount = 0; cb.settings_choices = [ {name: 'tokens', type: 'int', minValue: 1, default: 100}, {name: 'goal_description', type: 'str', minLength: 1, maxLength: 255}, {name: 'tags', type: 'str', minLength: 0, maxLength: 255} ]; // handlers cb.onTip(function(tip) { total_tipped += tip['amount'] if (total_tipped > cb.settings.tokens) { total_tipped = cb.settings.tokens; } update_subject(); last_tip_amount = tip['amount'] last_tip_username = tip['from_user'] if (tip['amount'] > high_tip_amount) { high_tip_amount = tip['amount'] high_tip_username = tip['from_user'] } cb.drawPanel(); }); cb.onMessage(function (message) { var cmd=message['m']; if (message['user']==cb.room_slug) { if (cmd.substr(0,1)==':') { cmd=cmd.substr(cmd.indexOf(' ')+1,cmd.length); }; if (cmd.substr(0,2)=='+t') { var tmp = cmd.substr(3,256); tmps=tmp.split(" "); for (var i = 0; i < tmps.length; i++) { subject_tags.push(tmps[i]); }; }; if (cmd.substr(0,4)=='-all') { subject_tags.splice(0,ItemsCount); subject_tags.push(""); ItemsCount=1; }; if (cmd.substr(0,2)=='-t') { message['m']=''; var tmp = cmd.substr(3,256); if (subject_tags) { tmps=tmp.split(" "); for (var j = 0; j < tmps.length; j++) { for (var i = ItemsCount; i > 0; i--) { if (subject_tags[i]==tmps[j]) { subject_tags.splice(i,1); }; }; }; }; }; message['m']="Some changes in tags!"; if (cmd.substr(0,4)=='=gt ') { var tmp = cmd.substr(4,256); cb.settings.goal_description=tmp; message['m']="Change the goal!"; }; if (cmd.substr(0,3)=='=g ') { var tmp = cmd.substr(3,256); cb.settings.tokens=tmp; message['m']="Change the goal!"; }; ItemsCount=subject_tags.length; update_subject(); }; }); cb.onDrawPanel(function(user) { return { 'template': '3_rows_of_labels', 'row1_label': 'Tip Received / Goal :', 'row1_value': '' + total_tipped + ' / ' + cb.settings.tokens, 'row2_label': 'Highest Tip:', 'row2_value': format_username(high_tip_username) + ' (' + high_tip_amount + ')', 'row3_label': 'Latest Tip Received:', 'row3_value': format_username(last_tip_username) + ' (' + last_tip_amount + ')' }; }); // helper functions function update_subject() { if (tips_remaining() == 0) { if (subject_is_set_with_0) { return; } subject_is_set_with_0 = true; } else { subject_is_set_with_0 = false; } tmpz=""; if (subject_tags) { tmpz=subject_tags.join(" #"); }; var new_subject = cb.settings.goal_description + " [" + tips_remaining() + " tokens remaining] "+tmpz; cb.log("Changing subject to: " + new_subject); cb.changeRoomSubject(new_subject); } function tips_remaining() { var r = cb.settings.tokens - total_tipped; if (r < 0) { return 0; } else { return r; } } function format_username(val) { if (val === null) { return "--"; } else { return val.substring(0, 12); } } function init() { var tmp=cb.settings['tags']; if (tmp) { subject_tags=tmp.split("#"); ItemsCount=subject_tags.length; for (var i = 0; i < ItemsCount; i++) { subject_tags[i]=subject_tags[i].trim(); }; }; update_subject(); } init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.