Bots Home
|
Create an App
Pimp My Top Tippa
Author:
rubzombie
Description
Source Code
Launch Bot
Current Users
Created by:
Rubzombie
// startof CBSv2 module - not for re-compilation (function(a,k){function g(a){this.message=a}g.prototype=Error();g.prototype.name="InvalidCharacterError";a.btoa||(a.btoa=function(a){a=String(a);for(var f,b,n=0,c=k,q="";a.charAt(n|0)||(c="=",n%1);q+=c.charAt(63&f>>8-n%1*8)){b=a.charCodeAt(n+=.75);if(255<b)throw new g('"btoa" failed: The string to be encoded contains characters outside of the Latin1 range.');f=f<<8|b}return q});a.atob||(a.atob=function(a){a=String(a).replace(/=+$/,"");if(1==a.length%4)throw new g('"atob" failed: The string to be decoded is not correctly encoded.'); for(var f=0,b,n,c=0,q="";n=a.charAt(c++);~n&&(b=f%4?64*b+n:n,f++%4)?q+=String.fromCharCode(255&b>>(-2*f&6)):0)n=k.indexOf(n);return q})})("undefined"===typeof exports?this:exports,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="); (function(a){var k=cb.onMessage,g=null,u=null,f,b="#"+(cb.settings.hasOwnProperty("slot")?cb.settings.slot:"")+"CBSv2",n=/^\/#[0-3]CBSv2\//;cb.log("CBS::v2::CB app/bot data Save/restore::20170923.009::Release");cb.onMessage=function(c){if("function"!==typeof c)throw new TypeError(c+" is not a function");k(function(k){var d=k.m.replace(/\s*/g,"").split("/");if(3<d.length&&""===d[0]&&d[1]===b){if(g&&u&&k.user===cb.room_slug){var p=d[2];if(4===d.length)d[3]="?",k.m=d.join("/");else if(6===d.length){if(!(f|| {}).hasOwnProperty(p)){var q=g();f={};f[p]=a.btoa(a.unescape(a.encodeURIComponent(q)));q||cb.log("onSave returned no data.")}f.hasOwnProperty(p)&&(q=parseInt(d[3],10),p=f[p].slice(q,q+512),d[4]=p,d[5]=p.length,k.m=d.join("/"))}else 7===d.length&&("0"===d[3]&&(f={},f[p]=""),f.hasOwnProperty(p)&&(d[3]=f[p].length,d[6]=d[4].length,k.m=d.join("/"),d[4]?f[p]+=d[4]:(q=a.decodeURIComponent(a.escape(a.atob(f[p]))),u(q),cb.chatNotice("Previously Saved Data Restored.",cb.room_slug))))}k["X-Spam"]=!0}else n.test(k.m)&& (k["X-Spam"]=!0);return c(k)});return c};cb.onRestore=function(a){if("function"!==typeof a)throw new TypeError(a+" is not a function");return u=a};cb.onSave=function(a){if("function"!==typeof a)throw new TypeError(a+" is not a function");return g=a};cb.onMessage(function(a){return a})})("undefined"===typeof exports?this:exports); // endof CBSv2 module - not for re-compilation var u=function(){function v(a){a=/^\d+$/.exec(a.replace(/^\s+|\s+$/g,""));null!==a&&(a=Number(a[0]));return a}function N(a,b,e){return e.indexOf(a)===b}function f(a){if(a&&"string"===typeof a){f.hasOwnProperty("log")||(f.log=[]);var b=/(..)(:..)(:..)/.exec(new Date),e=b[1]%12||12;f.log.push((10>e?"0"+e:e)+b[2]+b[3]+" "+(12>b[1]?"A":"P")+"M : "+a);25<f.log.length&&f.log.shift();a=x+": "+a;a=a.replace(/\+/g,"\uff0b").replace(/&/g,encodeURIComponent("&"))}f.hasOwnProperty("log")||cb.log(a.replace(/(\r\n|\n|\r|\\n)/gm, " ").trim())}function y(a){var b=Array.prototype.slice.call(arguments),e,d=0,c;a&&"string"===typeof a&&("Enable"===cb.settings.multi_line_safe&&(e=a.split(/ *\n */),d=e.length,a=e[0]),b[0]=(s+a.replace(/\+/g,"\uff0b")).replace(/&/g,encodeURIComponent("&")));cb.chatNotice.apply(cb,b);for(c=1;c<d;c++)b[0]=e[c].replace(/\+/g,"\uff0b").replace(/&/g,encodeURIComponent("&")),cb.chatNotice.apply(cb,b)}function l(a,b){var e=Array.prototype.slice.call(arguments);b&&"string"===typeof b&&b.length&&(e[0]=""+ a,y.apply(O,e))}function z(a){var b=/\\u([0-9a-f]{4})/gi,e,d=[];for(a=a||"";null!==(e=b.exec(a));)d.push(e[1]);if(d.length)for(d=d.filter(N),b=0,e=d.length;b<e;b++)a=a.replace(new RegExp("\\\\u"+d[b],"gi"),String.fromCharCode(parseInt(d[b],16)));return a=a.replace(/(^|\s|\\n);-*\)/gm,"$1:wink ").replace(/(^|\s|\\n):-*\)/gm,"$1:smile ").replace(/(^|\s|\\n):D/gm,"$1:woot ")}function J(){var a=[];"rubzombie"===cb.room_slug&&a.push("version: 1.25.16","*NOW FULLY CUSTOMIZABLE* Keep track of your high tip king by adding a crown to the start of their messages ;)"); a.push("Settings:\n\u00a0\u00a0king: "+(n.length?n:"(un-set)")+"\n\u00a0\u00a0king tip: "+w+"\n\u00a0\u00a0crown: "+g.b);return a}function d(a){function b(a){a=a||"";var d=(new Date).valueOf()-(c.hasOwnProperty("last")?c.last:0);f("onPromote: elapsed: "+d);a.length||1E3>6E4-d?c.rate&&(y("/tip "+(w+1)+", or more to "+(n.length?"replace '"+n+"' as":"become")+" the new "+g.title+", and wear the "+g.name,a,"#d5ebf8"),a.length||(c.count=1,c.promoting=!1,c.last=(new Date).valueOf())):(a=6E4-d,cb.setTimeout(b, 1E3>a?1E3:a))}function e(){c.promoting||(c.promoting=!0,b())}function l(){c.last=0;e()}var c=d;a=a||"";c.hasOwnProperty("mode")||(c.mode="chat");c.hasOwnProperty("rate")||(c.rate=p.r);c.hasOwnProperty("last")||(c.last=0);c.hasOwnProperty("promoting")||(c.promoting=!1);c.hasOwnProperty("reset")||(c.reset=l);!c.hasOwnProperty("count")||a.length?b(a):(c.count++,c.count>c.rate&&e())}function K(){"time"===d.mode&&d();var a=6E4-((new Date).valueOf()-(d.hasOwnProperty("last")?d.last:0))%6E4,a=1E3>a?6E4: a;cb.setTimeout(K,1E3>a?1E3:a)}function A(a,d,e){function f(a){for(var c=/(?:^|\s):([\w\-][\w\-]+)(?=\s|$)/g,d,b=[];null!==(d=c.exec(a));)b.push(d[1]);return b.join(" ")}function c(a){return a.replace(/(:ktb_crown|:ttlb_(?:bronze|gold|silver))/g,"(\\\\:ktb_crown|\\\\:ttlb_(?:bronze|gold|silver))").replace(/\?\?/g,"([0-9a-z_]{3,})").replace(/\$\$/g,"([0-9OlI,\\\\.]+)").replace(/\:\:/g,"\\\\:\\\\:+").replace(/\s/g,"\\\\s*")}this.b=z(a||"HTKing");c(this.b);this.tag=this.b+" :: $$ :: ";this.o=new RegExp(c(this.tag), "g");this.t=f(this.b);this.h=z(d||"Hail high tip :: $$ :: king ?? "+this.b);this.n=new RegExp(c(this.h),"g");this.u=f(this.h);this.title=z(e||"King of High Tips");this.name=/^\s*[^a-zA-Z0-9]/.test(this.b)?"high tip "+this.b:this.b+" crown!"}function E(){s=(cb.settings.notice_label||"").replace(/\s*:\s*$/,"");s.length&&(s+=": ");f("version: 1.25.16");cb.settings.hasOwnProperty("slot")&&(F="#"+cb.settings.slot);G="#0"===F;var a=(new Date).valueOf();B[p.a.f]=new A;B[p.a.q]=new A("\u265a");B[p.a.p]=new A(":ktb_crown"); B[p.a.l]=new A(cb.settings.usr_crown,cb.settings.usr_hail,cb.settings.usr_title);n=(cb.settings.king||"").toLowerCase().trim();w=cb.settings.king_tip||0;g=B[cb.settings.crown||p.a.f];cb.settings.crown===p.a.l&&(x=cb.room_slug+"'s KTBot");l(J().join("\n"+s+""),cb.room_slug,"#f2f9fd");d();K();E.chat_count=0;E.start_time=(new Date).valueOf();f("init: "+((new Date).valueOf()-a)+"ms")}function L(a){function b(){if(C||x){var a=J();a.push("In-chat commands:\n\u00a0\u00a0/crown\n\u00a0\u00a0/hail - hail the current high tip king\n\u00a0\u00a0/?\n\u00a0\u00a0/help - show this message\nTo adjust settings, deactivate & re-launch "+ (G?"app":"bot")+".");l(a.join("\n"+s+""),h,"#f2f9fd")}else d(h)}function e(c){c.length&&(a.hasOwnProperty("ngg_whitelisted")?"string"===typeof a.ngg_whitelisted?a.ngg_whitelisted+=" "+c:(f("onMessage:replacing un-recognised ngg_whitelisted property: "+a.ngg_whitelisted),a.ngg_whitelisted=c):a.ngg_whitelisted=c)}function A(){var a=k.replace(/[\W_]/g,"").toLowerCase(),d=a.replace(/[aeiou]/g,""),b,e,g=!1;b=k;e=h;g=!1;e=e.replace(/_[0-9a-f]+/ig,"");c.hasOwnProperty("echo_user")&&c.hasOwnProperty("echo_text")&& (g=c.echo_text===b&&c.echo_user===e);c.echo_user=e;c.echo_text=b;!0===g&&f("SpamBlockerAd: echo match");b=0;for(e=m.e.length;!g&&b<e&&!(d.length<m.e[b].length);b++)!0===(g=-1!==d.indexOf(m.e[b]))&&f("SpamBlockerAd: simple match ("+b+"): "+m.e[b]);b=0;for(e=m.text.length;!g&&b<e;b++)!0===(g=m.text[b].test(k))&&f("SpamBlockerAd: text match ("+b+"): "+m.text[b].source);b=0;for(e=m.i.length;!g&&b<e;b++)!0===(g=m.i[b].test(a))&&f("SpamBlockerAd: plain match ("+b+"): "+m.i[b].source);b=0;for(e=m.g.length;!g&& b<e;b++)!0===(g=(new RegExp("(?:^|\\s):"+m.g[b]+"(?=\\s|$)","")).test(k))&&f("SpamBlockerAd: blacklist emoticons match ("+b+"): "+m.g[b]);g&&(l(["Message from the author:\n\u00a0\u00a0Thanks for using my "+(G?"app":"bot")+" :)\n\u00a0\u00a0By the way, visitor "+h+" has just spammed your chat!\n\u00a0\u00a0To stop them doing it again, launch my spam blocker, No\u00a0Grey\u00a0Spammers.\n\u00a0\u00a0See this "+(G?"app":"bot")+"'s Description for a link ;)","End of Message"].join("\n"+s+""),cb.room_slug, "#f37e7e"),D=!1)}if(a.hasOwnProperty("ktb_slot"))return f("onMessage:duplicate ktb in slot: "+a.ktb_slot),null===M&&(l("Please note, a copy of this "+(G?"app":"bot")+" is already running in slot: "+a.ktb_slot,cb.room_slug,"#f37e7e","#f5f5f5"),M=a.ktb_slot),a;var c=L,k=a.m,t,h=a.user,x="rubzombie"===h,C=h===cb.room_slug,q=a.is_mod,H=a.hasOwnProperty("is_pm")&&a.is_pm;t=/\/(kingtipperbot|ktb|#[0-3])?(bip|chat|crown|hail|help|log|time|tips|\?)\s*(\d+)?/ig;var y=!1,r,z,I=!1;if(D)if(C||q){if(/\/(sh|sphammer|#[0-3])?(english|enonly|sphammered)/i.test(k)|| /\/(sh|sphammer)(help|spam)/i.test(k))D=!1,f("SpamBlockerAd: SpHammer detected");/\/(ngs|nogreyspammers)(help|spam|\?)/i.test(k)&&(D=!1,f("SpamBlockerAd: No Grey Spammers detected"))}else/<<<( has been SPAM HAMMERED| spHammer hit#)/.test(k)&&"#595959"===a.background&&"#999999"===a.c&&(D=!1,f("SpamBlockerAd: SpHammer detected"));if(!a["X-Spam"]&&"/"===k.trim()[0])for(;null!==(q=t.exec(k));)if(y=!0,r=(q[1]||"ktb").toLowerCase(),"ktb"===r||"kingtipperbot"===r||r===F)switch(a["X-Spam"]=!0,z=q[3]||"", r=q[2].toLowerCase(),r){case "log":(C||x)&&f.hasOwnProperty("log")&&l("Log:\n\u00a0\u00a0"+f.log.join("\n\u00a0\u00a0"),h,"#f37ef3");break;case "bip":l("Sorry, /"+(q[1]||"")+q[2]+" is a broadcaster-only, author-only, pre-release-only command.",h,"#f37e7e","#f5f5f5");break;case "chat":case "time":case "tips":C&&(d.mode!==r&&(d.mode=r,l(r+" based promo repeats set.",h,"#f2f9fd")),null!==(q=v(z))&&(d.rate=q>p.k?p.k:q,d.reset()),0===d.rate?l("promos temporarily suspended.",h,"#f2f9fd"):l("promo repeat rate set to one promo every "+ d.rate+("chat"===d.mode?" message":"time"===d.mode?" minute":" tip")+(1===d.rate?"":"s")+".",h,"#f2f9fd"));break;case "crown":case "hail":C&&(I=!0);break;case "?":case "help":b()}I&&null!==n&&n.length&&(a.m=g.h.replace("$$",w).replace("??",n),e(g.u),a.ktb_slot=F,a["X-Spam"]=!1,H||d.reset());a["X-Spam"]||y||H||E.hasOwnProperty("chat_count")&&E.chat_count++;C||a["X-Spam"]||!H&&D&&A();a["X-Spam"]||I||(null!==(t=k.match(g.o))?(l('Sorry, "'+t.join('", and "')+'" '+(1===t.length?"has":"have")+' been removed from your message "'+ k+'".',h,"#d5ebf8"),l((n!==h.toLowerCase()?"Non-":"")+'High Tip King "'+h+'" looks like they might have tried to spoof the "'+B[p.a.f]+'" label in a message. Type /help or /? if you have any doubt about who the real high tip king is or what the real high tip value is ;)',cb.room_slug,"#f37e7e")):null!==(t=k.match(g.n))&&(l('Sorry, "'+t.join('", and "')+'" '+(1===t.length?"has":"have")+' been removed from your message "'+k+'".',h,"#d5ebf8"),l('"'+h+'" looks like they might have tried to spoof the /hail message. Type /help or /? if you have any doubt about who the real high tip king is or what the real high tip value is ;)', cb.room_slug,"#f37e7e")),a.m=k.replace(g.n,"").replace(g.o,""),h.toLowerCase()!==n||/^(\/|!)/.test(k.trim())||(a.m=g.tag.replace("$$",w)+a.m,e(g.t),a.ktb_slot=F,H||d.reset()),"chat"===d.mode&&d());return a}var x="Pimp My Top Tippa",p={s:x,C:32,D:100,G:2,F:5E3,a:{f:"Text",q:"Glyph",p:"Graphic",l:"Custom"},r:25,k:60,B:0,j:function(a,b,d,g){var c,f=arguments.length-4;if(1<f&&-1<Array.prototype.slice.call(arguments).indexOf(g,4))for(c=0;c<f;c++)this["choice"+(c+1)]=arguments[c+4];else for(f++,c=0;c<f;c++)this["choice"+ (c+1)]=arguments[c+3];this.defaultValue=g;this.label=a;this.name=b;null===d||d||(this.required=!!d);this.type="choice"}},m={text:[/[^\u0000-\u0080\u00ad\u2605\u2606\u2654\u2655\u265a\u265b]/],i:[],e:"dlnws chnskv cht4fr wgwgwg bst4cms httpggl lv4prty lvtrffn nd4strp prfllsn bnjknntt nsxyjngs pssy4shw vcmsssns wlchstdt 100kstnls chnnmnwhr cmsssnscm grls4prty rgclsngsn sndtdrtch tmrqrllh1 tpgmscrck glsmtrprtl mnhndynmmr schnmnprfl schtglbntr snddrtchlv knntjmlgckn lslsnndmldn stdchlngwlg strmngnkdcm wtchmcmgrls chbnnjngsgls dtschmtrprtl fndfrtknshck hrgldtschkrl pyplrwstrnnn schfdsmwgdch wsnddglnpmml wstrnnnrpypl jckjxshrngnds kstnlsndhnrsk llrdngsnchthr mncmstjtztchn wndmrmnfrrlds dknnmnglbwchsn mprdndstrngtrk n1gnhmpgstfrtg stdnglchnnmnwhr wnnjrktwthmfrfr dsthtdstwchmmrsnd hbknfnnzllnntrssn nrnchbzckmtdntpps schfcktrffnndcmsx fdrstdnglchnnmnwhr llnfssthnmprflvnmr nynwnnjrktwthmfrfr vrllmsndfstnrdtsch glbdgbtsgrnchtmhrdr snddwskstnlsndglrst wsnddnnnndglndtschn chtrbtknnmndchvrgssn ftzstmgglndbrchtshrt mchvrdrcmllswshrwllt nynhrdrmstfckldrmlfs mchnchtlngwrtnndkmmzmr wrbckhtknnmchdjmlbschn kstnlsdtngprtlndtschlnd ntrssntbrmchfndstdnmnmprfl wnnjschtnmnprflndkntktrtmchdrt hbthrgntlchdhlfschlgschffthrvlldtn thsmnstrlysnfbtchsllngthmtfhsgrlfrnd dspmmrsndnfchzdmmvnjdmmdwrdnsgbnntndnsnstnflltdchknrfsnbldsnngwrbngrn".split(" "), g:"anarchy dance69 exbf extremevomit fuckass1 gay gay6 gaybj gayfuck2 gayfuck5 gross kena kisshug55 kisshug56 kisshug57 shithead takeit vbutt wag".split(" ")},O=this,F=null,s=null,M=null,G,B={},n=null,w=0,g=null,D=!0;return{v:E,w:L,A:function(a){var b=a.from_user.toLowerCase();a=a.amount;w<a&&(w=a,n!==b&&(n=b,y(b+" has been crowned the new "+g.title+".\u00a0\u00a0Long Live the King!","","#f2f9fd")));"tips"===d.mode&&d()},d:p}}(); cb.settings_choices=[{label:"Reigning High Tip King (user name)",maxLength:30,minLength:3,name:"king",required:!1,type:"str"},{label:"Reigning High Tip (tokens)",minValue:1,name:"king_tip",required:!1,type:"int"},{label:"Custom Crown (e.g. ':custom_crown', see Description for details)",minLength:1,name:"usr_crown",required:!1,type:"str"},{label:"Custom Title (e.g. 'King of High Tips', see Description for details)",minLength:1,name:"usr_title",required:!1,type:"str"},{label:"Custom Hail (e.g. 'Hail high tip :: $$ :: king ?? :custom_crown', see Description for details)", minLength:1,name:"usr_hail",required:!1,type:"str"}];cb.settings_choices.unshift(new (Function.prototype.bind.apply(u.d.j,[null,'What type of "Crown" do you want for King High Tipper?',"crown",null].concat(Object.keys(u.d.a).map(function(v){return u.d.a[v]})))));cb.settings_choices.push(new u.d.j("Multi-line Safe Mode (see bot Description for details)","multi_line_safe",!1,"Disabled","Enabled")); cb.settings_choices.push({"default":u.d.s,label:"Custom Notice Label (leave blank for vanilla notices)",minLength:1,name:"notice_label",required:!1,type:"str"});cb.onMessage(function(v){return u.w(v)});cb.onTip(function(v){u.A(v)});u.v();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.