Tetris Friends Tweaks

Some tweaks on TetrisFriends.com.

当前为 2014-08-04 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Tetris Friends Tweaks
  3. // @description Some tweaks on TetrisFriends.com.
  4. // @include http://www.tetrisfriends.com/*
  5. // @version 0.0.1.20140804044456
  6. // @namespace https://greasyfork.org/users/2233
  7. // ==/UserScript==
  8.  
  9. var wnd = window
  10. var doc = wnd.document
  11. var loc = location
  12. var href = loc.href
  13.  
  14. if(/^http:\/\/www\.tetrisfriends\.com\//.test(href))
  15. {
  16. var wnd = unsafeWindow
  17. if(/\/leaderboard\/index\.php$/.test(href))
  18. {
  19. addEventListener("load", function() { loc.href = 'javascript:window.leaderboardChange("3", "84", 2, "0", 0, "Sprint")' }, false)
  20. throw 'exit'
  21. }
  22. if(!/\/game\.php\b/.test(href)) { throw 'exit' }
  23. wnd.stop()
  24. if(/Live\/game\.php$/.test(href)) { wnd.stop(); loc.href = href+'?das=117&ar=17&ihs=true&irs=true'; throw 'exit' }
  25. addEventListener("DOMContentLoaded", function() {
  26. loc.href = 'javascript:gamePrerollComplete()'
  27. var game_swf = ''
  28. if(/Sprint\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Sprint/OWGameSprint.swf?version=3" }
  29. else if(/Live\b/.test(href)) { game_swf = "http://www.tetrisfriends.com/data/games/Live/OWGameTetrisLive.swf?livebust=0165?version=0" }
  30. else if(/Ultra\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Ultra/OWGameUltra.swf?version=3" }
  31. else if(/Marathon\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Marathon/OWGameMarathon.swf?version=3" }
  32. else if(/Mono\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Mono/OWGameColorBlind.swf?version=3" }
  33. else if(/Survival\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Survival/OWGameSurvival.swf?version=3" }
  34. else if(/NBlox\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/NBlox/nbloxWebsite.swf?version=3" } // doesn't work
  35. else if(/Battle2P\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Battle2P/OWGameBattle2pMaps.swf?version=0" }
  36. else if(/Battle6P\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Battle6P/OWGameBattle6P.swf?version=0" }
  37. else if(/Rally8P\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Rally8P/OWRally8P.swf?version=0" }
  38. else if(/Sprint5P\b/.test(href)) { game_swf = "http://tetrisow-a.akamaihd.net/data4_0_0_1/games/Sprint5P/OWGameSprint5p.swf?version=0" }
  39. else { game_swf = doc.getElementsByTagName('OBJECT')[0].data }
  40. if(game_swf == '') { return }
  41.  
  42. var w = '643', h = '381'
  43. //if(/Live\b/.test(href)) { w = '800', h = '600' }
  44. var margin_top = (wnd.innerHeight-h)/2 + 'px'
  45. doc.head.innerHTML = '' // remove unwanted style sheets. another way: for(var i=doc.styleSheets.length-1; i>=0; i--) { doc.styleSheets[i].disabled=true; }
  46. doc.body.innerHTML = '<object type="application/x-shockwave-flash" allowscriptaccess="always" data="' + game_swf + '" width="' + w + '" height="' + h + '" id="contentFlash" style="visibility: visible; display: block; margin-left: auto; margin-right: auto; margin-top:' + margin_top + '">' + '<param name="wmode" value="window">' + doc.getElementsByName("flashvars")[0].outerHTML + '<param name="quality" value="low">' + '</object>'
  47.  
  48. // only needed when the <OBJECT> id is 'contentFlash'?
  49. for(var i=0; i<10; i++) { setTimeout('contentFlash.style.visibility = "visible"; contentFlash.as3_prerollDone()', i*1000) }
  50.  
  51. // buggy
  52. doc.getElementsByTagName('OBJECT')[0].addEventListener('keydown', function(evt) { if(evt.keyCode==73) { doc.getElementsByTagName("OBJECT")[0].as3_tetrisGameRestart(); } }, false)
  53.  
  54. //if(/Live\b/.test(href)) { // if one can't connect to arena after a predefined time, reload the page.
  55. //}
  56. }, false)
  57. }