Apps Home
|
Create an App
freebird test
Author:
greenandsexy
Description
Source Code
Launch App
Current Users
Created by:
Greenandsexy
var IAMBOT = false, COMMAND_SHOW_LEADERBOARD = '!lb', CONFIG_COLOR_LEADER = 'white', NL = '\n', user_total_tips = {}, user_last_tip_time = {}, last_top3 = '', leader_username, draw_leaderboard_counter = 0; var high_tip_username = null; var high_tip_amount = 0; var last_tip_username = null; var last_tip_amount = 0; // No settings at all :) cb.settings_choices = []; //handlers cb.onTip(function (tip) { handleTip(tip.amount, tip.from_user); 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'] }; IAMBOT ? scheduleDrawLeaderboard(5000) : cb.drawPanel(); }); if (!IAMBOT) { cb.onDrawPanel(function (user) { var lb = sortLeaderboard(); return { 'template': '3_rows_of_labels', 'row1_label': 'FAVORITE MAGIC MAN:', 'row1_value': formatRanking(lb, 0), 'row2_label': 'Highest Magic Tip:', 'row2_value': format_username(high_tip_username) + ' (' + high_tip_amount + ')', 'row3_label': 'Latest Magic Tip:', 'row3_value': format_username(last_tip_username) + ' (' + last_tip_amount + ')' }; }); } function handleTip(amount, user) { user_total_tips[user] = (user_total_tips[user] || 0) + amount; user_last_tip_time[user] = new Date().valueOf(); } function sortLeaderboard(){ var lb = []; for (var user in user_total_tips) { if (user_total_tips.hasOwnProperty(user)){ lb.push([user_total_tips[user], -user_last_tip_time[user], user]); } } if (lb.length > 0){ lb.sort(function(a, b){ var r,i; for (i=0; i < a.length; i++){ if (a[i] < b[i]){ return 1; } if (a[i] > b[i]){ return -1; } } return 0; }); leader_username = lb[0][2]; } return lb; } function formatRanking(leaderboard, rank){ if (rank < leaderboard.length) { var p = leaderboard[rank]; return p[2] + ' (' + p[0] + (p[0]!=1 ? '' : '') + ')'; } else { return '--'; } } function getTop3(leaderboard){ var rank, result=''; for (rank=0; rank<3; rank++){ if (rank>0){ result += '|'; } if (rank < leaderboard.length){ var p = leaderboard[rank]; result += leaderboard[rank][2]+':'+leaderboard[rank][0] } } return result; } function drawLeaderboard(full, to_user) { var rank, lb = sortLeaderboard(), l = full ? lb.length : 3, out = 'Tippers leaderboard'; if (!full && !to_user){ var top3 = getTop3(lb); if (top3 == last_top3){ return; } last_top3 = top3; } if (l<3) { l=3; } if (l < lb.length) { out += ' top 3 (Type !lb to see the full leaderboard)'; } for (rank=0; rank<l; rank++) { out += NL + '' + (rank+1) + '. ' + formatRanking(lb, rank); } cb.chatNotice(out, to_user); } function scheduleDrawLeaderboard(timeout){ var counter = ++draw_leaderboard_counter; cb.setTimeout(function(){ if (draw_leaderboard_counter == counter){ draw_leaderboard_counter = 0; drawLeaderboard(); } }, timeout); } function format_username(val) { if (val === null) { return "--"; } else { return val.substring(0, 12); } } function init(){ if (!IAMBOT) { cb.drawPanel(); } } init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.