fakelush

fake love lush driver

// ==UserScript==
// @name        fakelush
// @description fake love lush driver
// @namespace   lovelush goes droopy
// @include     https://*.chaturbate.com/b/*
// @include     https://chaturbate.com/b/*
// @include     https://*.camgasm.com/b/*
// @include     https://camgasm.com/b/*
// @version     1.1
// @grant       none
// ==/UserScript==

// fake lovelush driver


        var busy=false;
        var tipque = [];

        t1=3;
        t2=10;
        t3=30;
        t4=60;
        t5=130;

        l1=15;
        l2=99;
        l3=499;
        l4=999;
        l5=10000;

        a1="Low vibrations";
        a2="Low vibrations";
        a3="Medium vibrations";
        a4="Medium vibrations";
        a5="High vibrations";

        p1="--------Lovense Toys respond to tips. Models can create their own levels. Here are my levels:";
        p2="--------[1 to "+l1+" tokens] = "+t1+" SECONDS ("+a1+").";
        p3="--------["+(l1+1)+" to "+l2+" tokens] = "+t2+" SECONDS ("+a2+").";
        p4="--------["+(l2+1)+" to "+l3+" tokens] = "+t3+" SECONDS ("+a3+").";
        p5="--------["+(l3+1)+" to "+l4+" tokens] = "+t4+" SECONDS ("+a4+").";
        p6="--------["+(l4+1)+" to "+l5+" tokens] = "+t5+" SECONDS ("+a5+").";

        title="Lovense Lush : Device that vibrates longer at your tips and gives me pleasures.";

        place=document.getElementById("defchat").getElementsByClassName('section')[0].nextSibling;
        info=document.createElement('div');
        info.style.textAlign="right";
        info.style.margin="10px";
        info.innerHTML='<b>lush on/off</b><input type="checkbox" id="onoff">';
        document.getElementById("defchat").insertBefore(info,place);
        document.getElementById("onoff").addEventListener('change',function(){onoff();}, false);

        function onoff(){
            if (document.getElementById("onoff").checked){turnon()}
            else{turnoff()}
        }

        function turnon(){
            getchat();
            t=setInterval(function(){ tipout() }, 500);
            u=setInterval(function(){ promo() }, 300000);
            promo();
            if (document.getElementById("roomtitle").innerHTML.indexOf("Lovense Lush :")==-1){
                setTimeout(function(){settit(title)},1000);
            }
        }

        function turnoff(){
            ws_handler.consolelog=oldFunction;
            oldFunction="";
            clearInterval(t);
            clearInterval(u);
            tipque = [];
            busy=false;
        }


        function getchat(){
            oldFunction=ws_handler.consolelog;
            ws_handler.consolelog = function(msg2){
                if (msg2['method']){
                    if (msg2['method']=='onNotify'){
                        argm=JSON.parse(msg2.args[0]);
                        if (argm.type=="tip_alert"){
                            amount=argm.amount;
                            user=argm.from_username;
                            tipque.push(amount+";"+user);
                        }
                    }
                }
            return oldFunction(msg2);
            }
        }

        function tipout(){
            if (busy==true){return}
            if (tipque.length==0){return}
            busy=true;
            tipque.reverse();
            tipinfo=tipque.pop();
            tipque.reverse();
            tipinfop=tipinfo.split(";");
            process(tipinfop[1],Number(tipinfop[0]));
        }

        function process(tipper,tokens){
            ttime=t5;
            if (tokens<l4+1){ttime=t4}
            if (tokens<l3+1){ttime=t3}
            if (tokens<l2+1){ttime=t2}
            if (tokens<l1+1){ttime=t1}
            message="********My LOVENSE toy is now reacting to "+tipper+"'s tip. It will stop after "+ttime+" seconds!!";
            msend(message);
            document.getElementById("roomtitle").style.backgroundColor = "red";
            setTimeout(function(){ document.getElementById("roomtitle").style.backgroundColor = "white";busy=false }, ttime*1000);
        }

        function promo(){
            msend (p1);
            msend (p2);
            msend (p3);
            msend (p4);
            msend (p5);
            msend (p6);
        }

        function msend(message){
            window.defchat_settings.handler.message_outbound.send_room_message(message, '', '');
        }

        function settit(titlemsg){
            window.defchat_settings.handler.message_outbound.send_change_title(titlemsg);
        }