Bypass It

Automatically Bypass Restrictions and Get Straight to Your Destination!

当前为 2025-03-08 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Bypass It
  3. // @namespace http://tampermonkey.net/
  4. // @version 2025-03-08 (2)
  5. // @description Automatically Bypass Restrictions and Get Straight to Your Destination!
  6. // @supportURL https://gf.qytechs.cn/scripts/527564/feedback
  7. // @author You
  8. // @match *://vn88.id/*
  9. // @match *://vn88.fan/*
  10. // @match *://vn88.ing/*
  11. // @match *://vn88.wtf/*
  12. // @match *://aylink.co/*
  13. // @match *://vn8eu.com/*
  14. // @match *://vn88n.com/*
  15. // @match *://v2links.me/*
  16. // @match *://upfion.com/*
  17. // @match *://fb88dv.com/*
  18. // @match *://m88usb.com/*
  19. // @match *://vn88.group/*
  20. // @match *://vn88wo.com/*
  21. // @match *://vn88zx.com/*
  22. // @match *://vn88ko.com/*
  23. // @match *://vn88es.com/*
  24. // @match *://vn88tu.com/*
  25. // @match *://www.m88.com/*
  26. // @match *://bet88li.com/*
  27. // @match *://cutyion.com/*
  28. // @match *://vn88tk1.com/*
  29. // @match *://vn88vc.wiki/*
  30. // @match *://fb88vao.com/*
  31. // @match *://vn88.hiphop/*
  32. // @match *://www.fb88.com/*
  33. // @match *://*.devnote.in/*
  34. // @match *://naamlist.com/*
  35. // @match *://modsfire.com/*
  36. // @match *://yeumoney.com/*
  37. // @match *://*.gmsrweb.org/*
  38. // @match *://modijiurl.com/*
  39. // @match *://www.m88sut.com/*
  40. // @match *://*.techyuth.xyz/*
  41. // @match *://vn88.solutions/*
  42. // @match *://financewada.com/*
  43. // @match *://188.166.185.213/*
  44. // @match *://gemini.google.com/*
  45. // @match *://cryptowidgets.net/*
  46. // @match *://*.wikijankari.com/*
  47. // @match *://*.idblogmarket.com/*
  48. // @match *://*.phonesparrow.com/*
  49. // @match *://financenova.online/*
  50. // @match *://rajasthantopnews.com/*
  51. // @match *://www.google.com/url?q=*
  52. // @match *://utkarshonlinetest.com/*
  53. // @match *://www.youtube.com/redirect*
  54. // @match *://www.facebook.com/flx/warn/*
  55. // @match *://www.instagram.com/linkshim/*
  56. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABcCAYAAAD9JuLrAAAAAXNSR0IArs4c6QAAIABJREFUeF7tfXecFdXZ//ecabfuLr2JiKIiqFhIwBIVY3vtxhaJiibxjbElamJiSSQRNURNYkv0jbGkC1jQaKKx06wRAQ0WRKTD1lunnTm/z3POzO7dZYGLmL9+mY94d+/O3jnznec85fuUZfjv8bkgwD6XT/nvh+C/QH5OQvC5APnUspV7icgYEgmzQcCAYJaImMkkB/0nLelLG56UENIAoM4BfUWHfodeIzoZoHOklJD0U9uwpTSEjGBIKUMpYUouw4hJI2KGFDluhlVPhmCmNyBvbxw/gK39nLDZpo/ZLiC/fOffPg6YMVJIgEUSAjIUzJSCmVYEC5IZ4IhgygB25INBgCFCxADBDETgANeAqq8RAT1eBX14/L5kXT9nTP1eJAnyiPFGJ8uMKPTyGfbKkRP3ufni0fkXtwmJ7Tz5MwN5wC9nvcoahk6oRg4EMyGlQAT6xyHpU5kNLY8SXEawpAaRwIhYBEkQM0DCVLdA34OAkt1fGUks/U4vQNN1mOmAiQii7MIxGAw7Ai83t04cMeAf5x66z6UHNrLW7cSorl//zECe/8fn//D+xuDsID0EAXcQsRBgtEXplkPQvlYARSQ5tFk1wAq8+DwNnKneUz9kEpKEjl6V+paIIgmmVqm/r30l8CuugOM4SNkGDMYRBgGkV0ba9IpD7Oo7V3zl4PO+3JRaVhca23HSZwaSrvnNPy6Y+2ErO6hkZBAZDBGnGw3BEMKUAupbadHmRshIckl/EhYCHEHNVtbLIOmtPWo3evI+06jGBwc3LHieB3CmgIxCwDA4mBnCdDdUR5nlpd864dDJRw9tWLodOG31V7cLyEXtss/ts9/85/JStH9bIMGyOUQmhwhdMLeIjG0pESR96bMsfG6ROlNgc3ikBJR1Yd3x61x0LKRaVfR6CID56idMkiqxlIqgh0VqxoQH02/3d0uzhZcfedDkg3b8z0nmdgFJN/BqRe7w28df/fvS9dU9Rb4vCgLwhY+BjWlU2lvhGKa6pYBl4HMbgjFIJmFAGx+uRHTrh9r+mxwhOPPUg+CRo4AMOOlejjBWH+Qf5N2iv4f0/nXpCUdOnrATW771q237GfXdxVY+d74rR93zyNxXlqwvDQnyAwAni3KpHRmHwxAByMKGzELICVRD6UROLo8UMGj/1nH0LpWRMmCkj3lEEmkg5IDgQBCLuQlT7Y7+pvCGcvfti0447OQjBrH1dVxym07pFcgJU3//y9emnnv5tnzS3KIce/fsuc980B4OE5kmeCJS1pYAI71Gt6y3nbbS9DNymTa3rWuvvfmtnagFrq09eaSc6a2d/FJkwDY5GALYbmtpTDp6+/xTDjv5mM/Zmm8C5KQ7nn9tZcn/Ysrmrx+6x/Df3n3cmPvqBfRVV+766xmvPvdha2VH3tgfRT/SN8UiGJ2IJda8+6V737rdDdAmgEoCSNtyYfhal9J70gR5sPS1ZVkol8swTRsGC5ES7aWRuei1K4+ZdMrBA1ix3nvb2nnd7mb6nDWX/eHlf90eZPsqPddgeOLQUX2n3XHCF6Zu7YOSn79WkLvd8+jcx5e2eHu4qTx8K63A5ASmDGHEhoXcIklWNv7FzUldYsl7BVr9ErlVEYRBXkCovucEZGSCE6imAT8MwLgJyzLgeW3oy7zSro54/ZLjJ50ysR8r1HtvWzqvG5Bn/PqZxSsL/p4FYQK5rPbjyu04fO9RD959/Njz673gGxvl7rc/MffJTwJz1zZO1tpU7g4pfpv8E4WK2Wlha0HsCVhPl6i7gddA6oNUiQCT2nVnsNT/w4gjjAJkcin4Xhk8ChC6LrKpdGlkKnr92iMPOGH8UFap9942d14nkM+0y5E33TXr48jOI7BT6BARItMCmAGz0oojdhv8l9u/Mn5yvRd8sVXuefusl2asFOk9KmZaSQttb5JIJkhfEpAsdtB1ENhTKumsJDJKrqvdJ72dtXOuv9eaQ+tkpX9VDG9ASAbTtuAGJUjhI5dKq7Paqz76ISiPszreOO+IY/5n0kjm1ntvvZ3XCeQDi0qT73vypT8FThYuJ/eBI+Qchm0h8sqwC+tw7MRxj04/asyp9V7whYLc/Y5Zc2av9dnuPt2w5SDwyVexIeNYnMlAgZn8o+1OhxFpi8wjUgddpp2AVEaL2A1l/Ws2VacejpSnoKDtFGFFCHQuXTAOM4qQDSrejlk2d9yUA4+aympOqPcm4/M6V3H3W8Wp9z/98vXINsKjCIR0NcXDBlMhX84IUFm/Asd9cfxjtxw79iv1XufpFjnmd7NfmLWmKveoMAcws4CZghdIWKYDGbpaxzEZX1MvyYhI1xGQJD+a6CCJ0zE6LY4paVWRTi+mXwWT5LP2iJZ6Sr0IffSzpde/un7e05ec+OV676vneZ1A3jp//V1/fOG1i5FrUj6f4rGImeEWfK8Cx/CRM0L4LWtxxL5jZ//8xP1PY4wC7K0f/2z29rjnqTdnLy9GuworA26l4boeTMZhKCEIERgRBJeQjIFFHEZkg0kDMiIHHgiNEFEMGIWeZo0yTd6vXclmgqXOU1TUhBAWDyD9KvKm4/UT3vNPXXj4cVu/o03P6ATyxrmf/mbmnEUXkkSG5JNFDIzbqHohcvkMfLcDGVvCkT6C1nU4ZOyop87/yoSvjmWsVM+FSTLv+/vrf15bkuPKEQPnppIY8iUjHiLkApKHmjAjqyt0pCKlgYBxBCYBTWQIiJmELZj6mqKk3ix6vUCazIVpmggDC+nAdUfI4tOPXHxM3eorufdOIH86b+Xtjy5YdJkkl0WQRHBwboNxC1XPQyptwfOLsAzAhg/ba8PEUcOfvfjkCafvyupzIZ5rlzvf88RrT6wo+GOJbJCGCS8yIXgEyT2ABTFQBDBFKk4cp7NYYimK0UCaEW1/rSc354N2GaXNPGpyySyg6pbh8DSypg2/o1DYo681a8aUCd+oR0B6AfKT2x5/fekVoZ1BKIxYR5kIKTJwHJTcApjFAZOBSw8ZMwDa1uGQXXd+9lunTpi8B2Mt9VyYvIP7H58/a22xvF+HMCAyfZVhY4zMUaC2G1l28gMjRULYCDlToV9ItppRNBQpIGmLJ1Z8c9femmRyi1wkChiYUiOOnQHrWF/Ytyn4y4PnTLqwnnuiczolcuqcZdNnv/HBVZ6VVqSsRQ5zSPygCRimosgiC8qS+6ICW/posICgpUUeuscuz5598t5fm1AnmC+2VXe6/8nXn1xe5nu2mDl4hqUss0GxN2UNKCKPWSHNS5ogK0thH0mvkjSmOU8OA3JLMeRWkIiEhGE7qEQBDKICQw/Mr6Avl4U9B6Z//9BpEy6tB8xOIK9/8eNpj7/176sDJ8uZacMUHNInbs9GGFFqAAi4RGgwSEOCiyocSDicQbZvxMSR/Z695MwvnbsXq48QeMOVO0//8yszPg6s/ctGVhEOejHk9mhAVZyuUYsdeFNJpVIFsZ3jsBSgPa1zPTfPyfKT22nZ8FgEPwqQStHDCcF8AavQ0nLokIaZd5114Le39nldxmbe6utnzl90XZjJmqGk7QtY0gaLNFuj4lkO+JxCO52HoQtypuQFoliM9h3e95/fOf6As8c3sOatXZh+/raUO930pzmPLy/KccJsQDWyIU16cCG4dOGYlNzxKBMEzlLgpoOItnkUIuJV7foIDWRybAugBKQSGMbhGxFCrj0HZc2jCKkwglP1mvcb3PTYvWeN+98t3VMnkDfPXfWjhxcsuS7M5Gyf4o6IADIBlSrQQkFSGapkFeXyNBMecsoNRnC4gxw8jEq5z1553lFn78fYxnrAfK0qR97yl2dnrCqa40VuEErSQXu1igF986iW25E2SWoiiJCDCCV6mOQ3c5N0Kj1huyZM3JRl39IaEiDpHJJyupdQ59SUaiEtkreyCNavbD9kh+zf7jj7gHM293mdQE6fs+bahxcs+pHI5h1P6SfitSmplZxCTjFFPBQ3R7AoZkYEl2grTo6zVM6zJSVG90/985rJE79WL5j/qsoR9z4+d8abKwtfFH12RGDnUCoVkXYsQPgwDEqAUVZSZxo5xdRRFZEgooLyRV0SqR56Dyec3lNpj14OFu8+UicU+ZDhI31MaREiPQza7pGPnPSaRzWypx44++Dzev2c5M3pc9dd/fD8hdeLbIND5D0TEhY3ECndriMLLZXErACOCNUW90xKGkRIk8KuuEhlG8ErLdinMXz2O6ceMeWLObauHslcIuWOP3vw5T/8uy04RDYOhhcyxdwIQQk1HdPQoUkJCZNcJUa3T4qlOyW3LUCqqFxly0mdaFeKhEUl9FS0HoJHPiweIeu2tY7ry5+/5+wjzuh5T11be87qH8xcsHhqlGlIEZAEFifaPtJ8YrK1iWwgsScgKRb2OYe0LBSrPpr69EF7y3qkTaCfY0Ujc+zF75104Fn75evb5q9X5PB7H5t/3/sbq5P8TKMVWRkEkUBE7gmth7ZdJBCG9BDpe0tbc4q/e4aC8febk0T1cJTuZ4pytgVtZ+0RULIu4MS2m2CWCSEqgFtEv5QJFNta9xqYe+y+r33pm7VgdgJ504LVV82as/gnBGSgRFoDGahcNEli8moq/emE+sLEhJuZDEgdFCsl9G/KwnVdpRIctwMTh+Wfu+isgybXu83fkXLg7x57664Fy9eeEmX7mBHX4WoqItnTbBCtz6P3LUe5RAqQzwhkRNEVhZxx2oPuSaswApLDlxy2Y1L6DrJahCMk+sHduP8AZ/bNZxz0LRYTHZ1ATnt19fdmzVnyU57KpwNFjJJYaiBVZQQPY92hf5YSpCd1Qt8XEbhjQHK6KUrmS4S+h6aUA6Na9HbKGa9cdcZhk+u15h9K2XDNQy+8tNoV+1aFlGnLCfMiZHA9U0QMoZ1Gu51BOSIG3NmsxdYU3OZ0o1ZV5OxrlaEjJi2VWjJJjVUpveukQORGKgrRwDxkwyrc5nVth40Z/s8bzzj4LAKzy/15ddWVM+e8e4MGkuh6DmZwhOoJ6e2t0wbkbtDWFkoyRQiVoEcUIEAITwpIk8MkUEOKUgxkg5I3tq/14oXHHnrexDoTT7NXl/f96zPP3T5w6PCVOw0d9vKwPn0WpgVCN2LZgh8M+bC1MHHZuuYvr17fujeRLLQVFXVMVR+xzlSxOBmnGhpOw6qp34QDTewpi4FU9F2sLyPDUZysHwJpBGgIO+BUO1aN7N/05jlHH3z5pCHsE/Ugkuc1bcGaKx6bu3hamMqlSaSJz1OKPub1VLmJSl4Z+ulROCeV/dbARjq8CyiUI5VAupPiDtriIkCjKJZGNWHeBacdce5BebahHgNUzzmPfuqd9NhLr936cUd1lJdqRJVnIbiNwA1g2yakcGGQlaeiBBUGGhDEmktTCYqMPJgGg++HsG0bFt2Z54KTT6lKcCTsVAZBIGH6VTT6Hev336HPK6ec/sXJk2rYry4dOW/NFY/MX3xDkM5myFckOouANGKg9PMj4LRfyVigtjVJgzY+VFkRIlSOLTnuOpVgMxsOpUeLLUj5reXRA505V5153JRxnyOY01/88NZ/vLHoyqrThIrVgDJM5T14fpVqPBQ3IJW7JmFwG9xIKyDJaEVRBZmUDdIcpGbpnkkyU2kbURRCiAC+W0H/xjzC1vXemL6ZJy+dcuiU8ax7eqKGRltz+aMLFk/bJiCJSYy3umJjVLzlq+iAthoBTywSedKkr7IOB/NKHUOM6tyfX3LclHqJji1J5t8+qhx4zc9+9ZePPlkzeLd9JtjpYSPgZfOomiYqgYeMYWu9J4UCiZsGDE4VIBxB4MMwNTkcqQiHIaB7IO+UmKmqi2zagSlcRG0rg4m7DHn266cfeEZPELtt7RvnfhYgSW+aSjJpC2tRDTorzuhbUxrwXIHGfgPQ3NqChkwK2WpraTez8MIPzj3l/LHbkV9+/LXlR//4tv+bubHk51N2FhUygAMGYcjYMahkUmBpvSWJ2KBIXulMVXjZVZhg2gaqvt5dlNuhWJ7cLYq4eRgizSMYhQ3RvjukZ3/3rMOmjGa9p3C7JHL+mu88Om/xjUE6m613a5NOVHVSivq31bZXlBjFqqgq/4zICAEbZR/IZFJApQVNtNeLpdZ9hzUuuPiEA87Zu4m11aMPa8+Z+dK7p9/+2z89sL5DZInTlCKElUnBMzisfn0xcPRoiGwOLrMRRGQ8DRVgkHRSEox0JkVMpLzIVyVTwInPFmQfTFXbmaKSmpZV0RdGND51+ZkHnL0l3rVWR172yPzFN20rkFRtS0BK6UBAl6WQ+2DJqlq0KhQ1HJD1Iz1F6QrpVWHAgd2xpjShsbrg9u9MPmpbgHzo72+d/Ytf3/fbQpWlJM8jk2uE61fgBS7srAOXrHJDI4bvtTd4nwEoCSI6DJXaUGVWEQmAp9y1UNGEurArFD5snlExfKVSQU64+MKw/NMXnbn/2XuzLT/sGtJi9SWzFiz52WcHkqIMXcKnXDdVEBCp4k/ywajigZR7qVhB/6ZGwPeRL61/89tH7nn9mV/Y5el6gfzzs++cNf1Xv/6TtBtYxQNMnkO56iLfP4eqX0YUBuC2jaIrkBs8FH132wMilwdSOW0uKUpScTUBR65aOk75BohCAcdKAV4VGeFhzKD8Mxccu19dbFbN1l578aPzFk3fdiB1UahglGLVrpGqvo3BZIGPlGMhcKtqwQ25RohKAazcvOrbpxx5/tfH5J6rF8QH/v726Xfd+8BDHZUgDSurXC9DWDAsE770VSkf45SK5eDMBuWGrIGD0LjjSKQHD1SFhEHgwbQ4LINSuhHx8RR1wmZEG0rwMIBRacc+Q/s9e+4R48+t1+/tksh5ay+aMXfh9CjXkKNkk+iMVU0FTm/uDxEIZGO6iqMYzIhI2Zr8MREMpq1COYvOLbWjMSp+dP5R4688b79hT9QL4l9fWHrSTb+865EONzLS+b6olKtw0hmIkOSfdCDlfWL2PHa6KQ6n/JPTrx/67roznEEDUSbrzYCUaSm1Q1/T+kQlQEaGSLvtGN0n9czFZxwyZa9cfSR1N6t907y13545d+HPtwXIpEieFpxIIYWNRLFRNEEgU7RBSS4RRMhEHvqIwqrJk8Zf/I0vDK4bxCfnv3/y939y2x+NbL+sH5mouj5sy1BuizZ3UAQtHerBdooHGQ6myOgol0HfUTujaeQIVCOgWnXhpLPwSa8aJnKmg3DDWuwzMPPsNecedNZwtm215zXG5rMAqau/ajN5FIdTBQPV+FBoGVgple4UxXYMMqprvnn4uMvOHDf0kXol8ak57x5z5Y9ufFSk+qdlqhHFKkUsFvIpC4VCG3iKiF3aCVzlwynm0p6EDqDpEYdMohKEMPs1YtDuo5EaOAguMyEMA7mUg3LrRuQRYq8BTc9fdMz40z+LF9Fza5NEZuvd2koCVFeCDvQ7iz5VrK5vxo8EUixAY1ho/fpRB5913l5Nz9YL4qPPvX7M9F/e+wfXyPQviBQiMwPDSqFaLiJjEf0lEDChQ9GI9DOpIRJJXaGmi/p1UotyIsVAIMxkMXj3PdBn5Eh4yvgIZEQVw6xozoXnH3bcwZvxE7e25p4SectnBZLBV9aQcjwCKbg8p4B0ZAEDjWLL1w8dd8GUMf0f29qCkp/PfvGtY66eevPvfTM3wGkcgnZXwkplVa1jQyYDBBWQ+0oGRpWxqM4JYqbI8dYtJqp7wqCIJoRtkkcBFL0Idr/+6Lvbrmgc2B8Wk+iD6gdXnnPE4Qdm2Op619fzvO0HUlLFGpECns5JC+pgSKPCG5SU2mELjtxrh1vuPnzEVfUu8t1337XP/e40r2pkwTP9UPI5QsNC4IfIZzMIqhVYlKRKiFjFauuQlCvJpM1O5S9EORCTTo62ADdMcMNBKRQQ2TwGDhuAMbuNeGfySYf/7ylD2Ov1rq+383pubZLIzLZubaLYKMbmVNRE9TowlWuiuGZexRAn8K449bBjj21iL9S72K9efvOTby1ddXwlSgN2RjEz5COS5edMolouIZtOKd9PE89EoXUZPc0vRmBC+7BeSCRfBMvJIggjeG6ItC0xdvSQpT+99bKJ4xnrqHdt9QB5a5RrSPcEkn5Rc3p6C5ERIRot0ZHK6VB5ZuLxSOHrfwQwZXSMahtGOD5+dP6pR0/Msbp15DnX/99TL73+3rFmqlH1z6h10Beq1ISr7CJXLXa64kK35ulXXa1B5AOH61bAiTOl6t1AwOAcDixEbhGQBRx84D6PPTD123VX2G0RyGlzV1/y6PzFt1IWUTVuJCVzoBJiDWTCR5IEGFIDqSVPs8udzDIRPko6KIDUFRnhxtXYZ0g/XHjCpCMO6c+er/fpf+26O+cvePODAxjLw7Cz8H0fhs0QGkR3CfBQdzUkro9+uLXFpzrKSt5LqGy6p4TEiIISJh2018MPXv/Nr9a7rs3qyBjI20Q2b/cGpHLIiX+MmzCpS0DT+MT+UEFBVyGncntUvwshzhBUSxiQsWGXWzHClrjsq8eedVBf9td6Fz35e7e9O/+t5WOsdF+4vkA6n0bFL4MxCZtrnZgcSe4mAa5nNUu3gisipulfUAH8NnHi0RMf/80Pv3FaveuqPa+20uLSR+Yt/oXI5s16gaSSPF0yEueN44JXXUhAbDpJdoSUbUO6HbCDChpEBcNyFi6cfPyUwxvZ7+tZtJTSOOPyX658beHyIdk+g1AoFNGUzqgdoDRf92xsrHK0VCZp3OQ6Pc8lBojC17TDUWpZjS8fvP+jf7j5u5+9rO/GeasJyF+JbJ5vDUhVKRtLJHF9dB9dSSbiKHUZCAEJ00KlUkIuZcNhAQwqDQxKGNKUxtdPPeaHJzax6fWAuXy5TF1z5+0r5i/8aGA21x8IpGJrpKWziEpNx32KqlI33t70IGuP7kBGCEMfmUwGoe8jCgIYoYsJ++/xxF9+dslJ9awrOaenRN5BbsGWgCRDpBYdA5nUanfF41pH6dYPA6GQcDJplMtUOUHlzC5Cv4iUJTE0zXDJsYdfe/xg56Z6Fv3uhg25H11//8olH69rEjylsnu62qJmayd3FOvNLUtkhEiSw05tIwwp24FlMJTa1uLwg/d+5I83XFT3Nt8uIPXytVHRpEZyEGAEpKbwTdtR0UV7sR3ZnI1QVGDZHKJ9A0ZnLXz/a8fffWgju6QeMJdulPnLr5u26t2PNzZYmQa1GxKjUbuVqdZRL6/7vu8pkQRkOpNFqeirIi3abRYXKDZ/Gp509MFP3v/jC+qy5l1ZRG2179ySRNLiao0NrVNvY30LnWJOdYsqTFQJcc1FBhEM24AvqjAcC8VKOwY2NQDtBQy1QnzrtEl3nzTIqAvMdztk34uuuKnlk9UdKj1AxyYtyrGV6d6W3PWokuJ++nmxXEJTY19U3EDlyaUIlJvFgo7gwH13f/LP0y/bqs7sksg5qy9+ZMHiuzYHpCok7GG1O4EkqVQUVgImRRikNzlMSWkA3a6h8iUmxd8BDMeE73pIcROOX8DwXIApRx/02Jk75euSgHc3yMEXXTlt7aqWAiLFyuujE7g4jby5Mr8uvUqZ7yQBRr+vc1CUUjSlh6DSXDnwi2OefXj65adsacd0i2xmznvnbj+V0VKn6n4IACtuYN8USJVEJ0a8czKAps7UDSmHmJJi9LXuVFCSQ/niuESQCukprMxRAqq9BSMbDVx80iH3njgoVVfJ8TurKjtccf2dK5csX6PqjqrVqmKa9LqNuHap9/ZbitBj5HWDU9wxpp606mNUhUYq9BVBR3nCfrs8PeOm721SPNX5AJMviI+cNe+dX28rkJwST8pK0i7WRCmBpYyPCtM0oImvl/CFumqDUgWRijxI0Wfhok/UjB+ef/pfjsyxurrM5n4qx191w51vfLpypar4oHolmihAZC2lNlRJYC9HTyBVOKnWrJtBie3XmkkgCMqweLU4fs9Rzz/ysytPTep9aj+2Jmez5sKZ8xf9ZluAJJDsUOsoJWUxkJpj1ZKgIoge9YlJBTC9b5Izb0QIhKcK8lNSYoecgSvPOvzeSSm2RcmUUrI/v7pxyq2/fvCB5uZmpYtpK1P+2nHSKgoiYHs79HCWroUlXRLJA6d7IF+YSOmqV0FTYxbllnWVSeP3/ue0Gy/86kjWveVuu4Cki1tCc4AaSN33oqQyMUCxk96zOYtcJHr6JjNQrpTQ0JiCR9lF7oCHFYzqk8Lkoyb+a7/B7GeNwEIDqFaAljBuQ2xdWTj0jnsfnPn6e6vybcUQuVxOVcERuUHg6TE3mz8SIIkhqlVDuhpNqx8CkmolSc2VixUMoH6j9rXBl/bb/cU/3nbF8UyVm8QaonNrz1/zrVlzF92zrRJJtBkB2aUn4yYixVLr5vdkyEesJGMdqh12V3DkcnlUWtvQkEmjWvFUGR2Vv+RtgX52Bf3TVJdLzjKQcvJYtXwNFr/1JkJfoFR2VW0OSSOlUBsaGpSOrBQrurhrM0cnkHEBFBEcWp/rNWvVw+FKhkw6D5OZ8EsFNKQiVFo/DY45bP+n7pz6Hep+U6UZtXntC2bNW/R/2wKkjmYStmfT9lZqbUvm/CT3o92ihGRgCCyt3NPCQlihPEoGfhiCkYtUbkbOCpAxBQy/BDuIYHrAxk/XonnlKpXo79fUCN+rqo8nndi5lQUltah0u3fJ7OwDjyMgpSPjyrWkOpnoQDuVR3tbAbZpwqYK7KBEo3BQaP0UF04546ZrLjrn2m5A3jx3zTdnzl/0220BkkAi8SeyTBsUKiPuChc1kFpfdrEu2vBQiYtSA9xFEASweA4WLFVeEggf1chFQ79GFCplZB0bUbGARnCUV67EqvfeQ4PtwOZUMllWYV4qlVJgakNDTe5aGkk6E11dK5wayK6iMKL7FEEdkzPUvUstfGEA5DJZRMJD4HYg7Qj1OnrXkS9d+/0Lvjpx50FqPkaXRM5f/Y0Z8xbdJ+yscn9UbSStgcr46JKxzkmDYEU5AAANDklEQVQccLogVfFSF4DOmXQB1I2Nib9R3GQswZrk0DmXiFe0FMVTUoQnYNgczGYouCWY+Rz8chUD7CzExg1Y+847MKplZImsLZeQyqYRhJR9oZ4gtVJdW07Jf8pTx8amZ8FpdyBpO+s5RCpOU9PZyIia4NR8wCRCt4SsEyF027Dn6B3/dvU1155Z2zDfCeRP53/y9RkLFv7OTPVDQF1f9MSoIit+jJbOJelmoaTVt7MBveuJJAvubUvVRhnK1aBuMulqJ5pqhwTRcaY2FjxUlWGedDGoIQ9v3Qase/c9mIUispToj6jPJ+kwTnzChFiuibISIiMZAdGDKZKc8u4mvIoXg85hWw7cIFTrIuPlVWiyFRAWm7HfmBEv/PiHF52294imbvVKnR/7k1eXnT9z3jv3m6kBECKJQkxU6QwVoegSlKRxifoEEw2Z9PNvunW6a/pNwzXiOHV3Ajn+ksb1Uc5FzQZSBdQwDdKPVZRWfIrCpyuRooJQ6OwknUc9hFroNVJdzo4Gs5MR6hXICFVqMc7n4bqhKvez7TQKhYLyP8lYlYvtaMimqBwRo3ca+MzNN1x92tiBm3YEd0nkguXnzZj/9gNGegBCof0xKi4iiSQJrAVS+4E6K1c7GOGzAUn1YBpIpe5pdg89NEbF9xFyXKJ15Qq0rfgEKJeQVu0cWveR5FJRaG9HAmjXw+sKX7vOjxRgVd9TVFqhWFQRUSqVhmXYqBYKaMqnUGxbg713H/HS1ddefeyBw5m2bD2Omq294twZC95+yEgNQEAJLOIcedfW1k2XXaQUFUx1HZvezOasZU+pVLlwNS9BU2/UdEKT/8iWpykrWShh/bIPUd6wDinahlRNTK0cjCYb0Lm9h4CbuuG9AUnkEJX1hSoHREaPRk8IX6gJgHnHQqV9A/YcNfT5n1/xo2PHjo3nh20JyJ+8uuKcmfPe/j1LD4AvLX1z1NUQY0QgUt5G7fQ4V9NF428HkHHxJ7mcqujfpAIocvQDpD0P7R9+jMq6tarLP2WbCFT1rSqf0k3zPT39XuVzc29SFBF3bwgP2YYshB8ojpP6boJyG/baZegr59z348PPiP3FLXyS/tFP538yecaChQ8hPdD0KXAni0cdUPHWoeRWzDCq8yVN4euMYOoHslZv6SvrTUFSpg6LMnwRWKUMtLdj45KlMKpV2BRgWAaqRORSjTeRJVRGRt0TWwBvczRacm3DsFRElMo4CMNAjbTJp0yIcgFjdxn2whX3XHt0bdH9VoG8ccGKMx6e9/aDIjsw7ZHlJAtK1jMGknTR5w8k5XT0dSgjGEVC+Yam8OCv34jy6tUINzbDoQo3mgLII9V+QlvaISAJfEXcdmnrBFQiUjZ9aF0wdJIo5PsahrLcbqWIrEXJujbsPLThlWvOu/nLkybVN7eji9id/8kpj8xb+Hs/NyDnkmMs4nmMypOOl0ctFsn2jq22lsrNS6TStd1mPnZZUmVcKDSj6CaiwbIe0lRe4HkoLF+OjR9/hH7E6EQUZgpd300FApSXpvZn5Wwn1F2S7NJg1Qsk5XTIsASVChpzDtzCBuyyQ/9Xpk674JgDhw/v1bD0JpVd7s8LHx79zJJlD7fxTCM55UHFV9RWFAOpjEcNkHpWYzKhdMsEwea2gxo8Ry1wahCd1os5GaGyeg3WvvceGsmZlrogIJmOmLBJtVP+tK7uAlK7T7HKoNSBpbcvSR3tLPo+8Dx1jkGMURAgTb02pVbsMrRpzi3fu+R/xo0bXN4WddsJ5C8XrDjo4XkLn253mhp8I6VADKtU3agXqJgdNdtMG5zPA0j1ucrv5wi8MrIk3c0t2PjBRzCKJaSIiTF0EEDPk67bRS503WYtkJ0AxkCSJSZmiAgNsvTkYJeLHeqVwsr29nYVr1fa1mKXof1e+sWtlx4/bvC2gdil6QH89q01ezz04htvbLTzWddwkEvl4JVc2DGNT01IZOKoDE5Z7q1s7XqfJuk5xzIgwgpYpYKOj5ahvHI1+hqmKoQKDKKztOSrqQZkX+J249prJB4EdSPUbm1SA8RLZtNpVEol1blApdgkneUi+YkNKLZuwK4j+s255bsXbbMkJmvolMg/v1/of/9TL69ZbWUs384g8mkqQIqq4pRDTh1dETnJcf+0mp27BatdD5DKh6S2DtpuTGDDx8tQXvEpchGDTew2GFyji98kVawbo2KKLr5IUoup51R2MUvJGqQQqkhBBL6qH6eGU2KKso6FaqENI4f2ffk3t990wujtGIPYCeT8lTI99eHZG9Y4uRwN0qwWK2hI5yFdPbraM0mpU0IodqBlPOtC7/N6cNvkHFITaRlCulW47a1Y++FH4JUy+jgORJUYcxqA3KXv6AN0jZFuMk2KtrQx24yxic8XgYdcNq1AJMOmWqgr7dhtSJ851131g5O+tHf32Hlbb6hbCH/y7X9f+BHMcX4mB+lHsKUNLjRNVgukTnrF8fh2AEld+01EhTVvwMr330dElbhUWOC7sIhLpIlVSVq1cwAIFd2TlCYTU2lkQndjU7u1LcNQvYTplK0lkcLBFE07qGDsqKEv3XDVt04ev0vf7Srp66Yj6Ztr/7HsJ08s/ejKspXOpqjJyJOwyTozjqoZqdk/VB+usUsm2tNdfDaJpKJ9p1pCxwqKpVcgZxqqPZmSYXY6pdIFVkBSmJDBXZNQ9PwfymH2DmSXox/CNDkc21Q1lWnHVq9DBw+cM/37F2+3JG6iI+mNGWvkjrfNeOa1gpkZbBKQIYNB06Kou5V0FfXlqWybTleqLFs8/zqhz7pzkcmz6g604iOpcVKEqKxchg0ffICsZMoF8UIPlkMRFRCFEg6NF4uze8kkg9Agf1JP8aNex9pDEypxcUJcB0IPxysXkM84KBXbsNOwwa9Mu3HqyV8ase2te5vb8j3YOeC8Gf+a9dbHa0/JNA3mZTcCt3Temqq+aDIoldKpAXERjfuikaz6I0hAVOo1jp2VjY9vim5aVc0Sew2GNA0sKpThBFWsefs1pISnmfWap5BAz2NqPTEoiX7UZTLk2uqUa+LTUqQTkE8lAMsi1aR6h5G3aSxFC0YM6/vq1ddedcKk3Rvqmk1Ur67cBMinWuVet/7ub8+XrNwA3yS23IRHE1Wo8oAmA1CemMYG0KB2TtPEyQixbkAmN62mV1EhfCoF16uq6lk1TyiU4IHAqvcWg7etVU3zZKETF6f2VRMTyRy07q90k+Tv0gMiXkqNgogJaTUhJhTwyhUM7JOjVCp2Gtr3jVt+cvVx++2ar2smUb0gbqIjk1+84eUPr3/yjSU/dnP9eJmlVbOmARsWxaWBBwRV3ZVvmXBpwTQHksLemivTltedGlRXrv1PQwhkaQ6aL7B++SdoWbEcDUzAInKXNJ4qF+z+FxlU138sfZu+cpSrnspC0uH5cUEARUJBCJsD+YyFwsY12GXHAUuuve7y/5m0a79V2wJQveduIpFKV0ppvDR7/qxXl609LswNsqo8AxGYSmfZ1NnFtd9HoV1A+RFqLVYD37qqf3R6lohThtB31Rw1MwjRaHCUNjRj+ZL3kKO/r9Bj9GtPHnNL7I3qqjZNBL5QoxRoi6ep1I9cqqAKx5SodKzHiKF9Ft9507QT9x2ZVvMn/hNHr0DShd6VMvfg3+bcP2/pmhNLVqPj202Qdla5JILSniRhaiZEXCWfuCeq5Fn/VR8qXaGUaYrOq1bQZJrwm1uw6t//hul6sJW5IHqx+zJqwdwyDUZ/zkDPorBpGJ4fQAQBHJtYdB9euQU779C45KfXfP+0g0cPeP8/AWCvVru3C930j9eueWdt21VLm92GipVhLN0AQVFNJGFR3woNgKN0azy5JOEHdc2ULpIidUBOtiwVsHLxEvgtLehj2wirnqokU65ij79jU+/3xACRnqyWymoycUM+A6/YBkRV7DZy4CtTr7v8vAk7Nf1H/j5DLV6blcjak2YvXbn3U2+8d8d7LcVDK3YOgd1IA/tVzlcNxIwb6DR0uj1DSxL12UhE1TIaLQvrPnofGz5ejj6WCdsPlMXtzicmvGL9rxQU0p9fIWY7bRNrHqBcaPEOnjDuiau+fcGle+2c+9z/LkNvAlcXkMkv3vvO8gmvLFr282XNHYeU4YAbKVhx2V6nVNWYHHKVIhqklMtg9UcfYO2yZbBD+tMovmLB7bh0kH5XeT48mZvb+/fJeZ3nxwsLfBcZx6YRiW4uY7532ikn/On7U477xX9yK/f87G0CMvnl59bLQe+vWrvvqubmfQqtG3YIozATBYIIbi8SrGJyo4MbRpFLo90yZLvrlle6G1vXtxfWFRwmeZrnTJuFpiPc/p40d4eBw5iIhoeQjSxCSiAyWSTJhaRSBTXGWE2EVTNAOeXmfJNxLzIM1zazBcu22gcN6rNqt1HDF+69104vjh4w4HP7Gwz1PozPBGS9H/7/03n/BfJzetr/BfJzAvL/AR+hp7arx3WVAAAAAElFTkSuQmCC
  57. // @grant GM_getValue
  58. // @grant GM_setValue
  59. // @grant unsafeWindow
  60. // @grant GM_openInTab
  61. // @grant GM_deleteValue
  62. // @grant GM_xmlhttpRequest
  63. // @grant GM_registerMenuCommand
  64. // @grant GM_addValueChangeListener
  65. // @license MIT
  66. // @noframes
  67. // ==/UserScript==
  68.  
  69. const noop = () => {};
  70. const rawWindow = unsafeWindow;
  71. const currentUrl = location.href;
  72. const queryParams = new URLSearchParams(location.search);
  73. const autoRedirectToSocial = GM_getValue("autoRedirectToSocial", false);
  74.  
  75.  
  76. /**
  77. * Waits for an element matching the selector to appear in the DOM.
  78. * @param {string} selector - The CSS selector of the element.
  79. * @returns {Promise<Element>} - A promise that resolves with the found element.
  80. */
  81. function waitForElement(selector, callback = noop) {
  82. const findElement = () => {
  83. if (selector.startsWith("//")) {
  84. return document.evaluate(selector, document, null, 9).singleNodeValue;
  85. }
  86. return document.querySelector(selector);
  87.  
  88. };
  89.  
  90. return new Promise((resolve) => {
  91. const element = findElement();
  92. if (document.contains(element)) {
  93. callback(element);
  94. return resolve(element);
  95. }
  96. const observer = new MutationObserver((mutations, observerInstance) => {
  97. const node = findElement();
  98. if (document.contains(node)) {
  99. observerInstance.disconnect();
  100. callback(node);
  101. resolve(node);
  102. }
  103. });
  104. observer.observe(document.documentElement, {
  105. attributes: true,
  106. childList: true,
  107. subtree: true,
  108. });
  109. });
  110. }
  111.  
  112. /**
  113. * Navigates the browser to the specified URL.
  114. * @param {string} url - The destination URL.
  115. */
  116. function navigateTo(url) {
  117. location = url;
  118. }
  119.  
  120. /**
  121. * Returns a promise that resolves after a specified number of seconds.
  122. * @param {number} seconds - The delay in seconds.
  123. * @returns {Promise<void>}
  124. */
  125. function waitSeconds(seconds) {
  126. return new Promise((resolve) => setTimeout(resolve, seconds * 1000));
  127. }
  128.  
  129. /**
  130. * Waits for an element matching the selector and then redirects to its href.
  131. * @param {string} selector - The CSS selector of the link element.
  132. */
  133. function autoRedirectToLink(selector) {
  134. waitForElement(selector).then((element) => navigateTo(element.href));
  135. }
  136.  
  137. /**
  138. * Creates a menu command in the Tampermonkey UI that toggles a boolean state.
  139. * @param {string} key - The key used to store and retrieve the boolean state in GM storage.
  140. * @param {string} title - The title displayed in the menu, which is prefixed with a checkmark or cross.
  141. */
  142. function createMenu(key, title) {
  143. const isActive = GM_getValue(key, false);
  144. const prefix = isActive ? "✔️ " : "❌ ";
  145.  
  146. GM_registerMenuCommand(prefix + title, function() {
  147. GM_setValue(key, !isActive);
  148. createMenu(key, title);
  149. alert(`${title} has been ${!isActive ? "enabled" : "disabled"}.`);
  150. }, {
  151. id: key
  152. });
  153. }
  154.  
  155. /**
  156. * Converts an image URL to a Base64 string.
  157. * This function fetches the image using an HTTP GET request and converts it into a Base64-encoded string.
  158. *
  159. * @param {string} imageUrl - The URL of the image to convert.
  160. * @returns {Promise<string|null>} A Promise that resolves with the Base64-encoded image string, or null if an error occurs.
  161. */
  162. function imageUrlToBase64(imageUrl) {
  163. if (!imageUrl) {
  164. console.error("No imageUrl provided");
  165. return null;
  166. }
  167. try {
  168. return new Promise((resolve, reject) => {
  169. GM_xmlhttpRequest({
  170. method: "GET",
  171. url: imageUrl,
  172. responseType: "blob",
  173. onload: function(response) {
  174. if (!response.response) {
  175. reject("No response received");
  176. return;
  177. }
  178.  
  179. const blob = response.response;
  180. const reader = new FileReader();
  181. reader.onload = () => resolve(reader.result);
  182. reader.onerror = (error) => {
  183. console.error("FileReader error:", error);
  184. reject(error);
  185. };
  186. reader.readAsDataURL(blob);
  187. },
  188. onerror: function(error) {
  189. console.error("Error fetching image:", error);
  190. reject(error);
  191. }
  192. });
  193. });
  194. } catch (error) {
  195. console.error("Error converting image to Base64:", error);
  196. return null;
  197. }
  198. }
  199.  
  200. /**
  201. * Sends a Base64-encoded image to a language model and receives a descriptive response based on specific icon classes.
  202. * This function sends the image as Base64 and asks the model to describe it with one of the provided icon classes.
  203. *
  204. * @param {string} base64Image - The Base64-encoded image string.
  205. * @param {Array<string>} iconClasses - An array of strings representing the icon classes to use for the description.
  206. * @returns {Promise<string|null>} A Promise that resolves with the description of the image in English, or null if an error occurs.
  207. */
  208. async function getGeminiResponse(base64Image, iconClasses) {
  209. if (!window.ai) {
  210. console.error("window.ai is not available. Ensure the Prompt API is enabled.");
  211. return;
  212. }
  213.  
  214. try {
  215. // Validate Gemini Nano availability
  216. const capabilities = await window.ai.languageModel.capabilities();
  217. if (!capabilities || !capabilities.available) {
  218. console.error("Gemini Nano is not available. Ensure the model is downloaded.");
  219. return;
  220. }
  221.  
  222. // Create session with system prompt to enforce English responses
  223. const session = await window.ai.languageModel.create({
  224. systemPrompt: "Analyze the given image and describe it using one of the provided categories. Be direct and concise.",
  225. expectedInputLanguages: ["en"]
  226. });
  227.  
  228. // Construct the prompt using the base64Image and iconClasses
  229. let result = await session.prompt(
  230. `Analyze the image: ${base64Image} and describe this image using one of: ${iconClasses.join(", ")}. Be direct.`
  231. );
  232.  
  233. console.log("Gemini Nano Response:", result);
  234. return result; // Ensure you're getting the correct response
  235. } catch (error) {
  236. console.error("Error with Gemini Nano:", error);
  237. throw error; // Better error propagation
  238. }
  239. }
  240.  
  241. /**
  242. * Executes a callback when the current host matches a pattern.
  243. * @param {string|RegExp} hostPattern - The host pattern or RegExp to match against location.host.
  244. * @param {Function} callback - The function to execute when matched.
  245. * @param {...any} args - Arguments to pass to the callback.
  246. */
  247. function runWhenHostMatches(hostPattern, callback, ...args) {
  248. const isMatch = new RegExp(hostPattern).test(location.host);
  249.  
  250. if (isMatch) callback(...args);
  251. }
  252.  
  253. /**
  254. * Simulates a click on an element (or multiple elements) specified by a selector.
  255. * Dispatches "mouseover", "mousedown", "mouseup", and "click" events.
  256. * @param {string} selector - The CSS selector of the element(s) to click.
  257. * @param {number} [delay=0] - Optional delay in seconds before clicking.
  258. */
  259. function simulateClick(selector, delay = 0) {
  260. const events = ["mouseover", "mousedown", "mouseup", "click"];
  261. const selectors = selector.split(", ");
  262. // If multiple selectors are provided, iterate over each.
  263. if (selectors.length > 1) {
  264. selectors.forEach((sel) => simulateClick(sel, delay));
  265. return;
  266. }
  267.  
  268. waitForElement(selector, async function(element) {
  269. if (delay > 0) {
  270. await waitSeconds(delay);
  271. }
  272.  
  273. events.forEach((eventName) => {
  274. const event = new MouseEvent(eventName, {
  275. bubbles: true,
  276. });
  277. element.dispatchEvent(event);
  278. });
  279. });
  280. }
  281.  
  282. /**
  283. * Calls the callback function once a captcha challenge is solved.
  284. * Checks for available captcha libraries (turnstile, hcaptcha, or grecaptcha).
  285. * @param {Function} callback - The function to execute when the captcha is solved.
  286. * @param {Function} [onWait=noop] - Optional function to call if waiting.
  287. */
  288. function whenCaptchaSolved(callback, onWait = noop) {
  289. let intervalId;
  290. const stopChecking = () => clearInterval(intervalId);
  291.  
  292. const checkCaptcha = () => {
  293. try {
  294. const captcha = rawWindow.turnstile || rawWindow.hcaptcha || rawWindow.grecaptcha;
  295. const response = captcha.getResponse();
  296.  
  297. if (response) {
  298. stopChecking();
  299. callback();
  300. }
  301. } catch (error) {
  302. onWait(stopChecking);
  303. }
  304. };
  305.  
  306. checkCaptcha();
  307. intervalId = setInterval(checkCaptcha, 1000);
  308. }
  309.  
  310. /**
  311. * Listens for messages with a specific label and triggers a callback when received.
  312. * @param {string} label - The identifier for the message.
  313. * @param {Function} [callback=noop] - The function to call when a message is received.
  314. */
  315. function GM_onMessage(label, callback = noop) {
  316. GM_addValueChangeListener("postMessage-" + label, function(name, oldValue, newValue, remote) {
  317. if (remote) {
  318. callback(newValue);
  319. GM_deleteValue(label);
  320. }
  321. });
  322. }
  323.  
  324. /**
  325. * Sends a message with a specific label by storing it in Greasemonkey storage.
  326. * @param {string} label - The identifier for the message.
  327. * @param {*} value - The data to be sent (must be serializable).
  328. */
  329. function GM_sendMessage(label, value) {
  330. GM_setValue("postMessage-" + label, value);
  331. }
  332.  
  333. // Main execution
  334. (function () {
  335. "use strict";
  336. runWhenHostMatches("modsfire.com", simulateClick, ".download-button, .download-button[href]");
  337. runWhenHostMatches("(financewada|utkarshonlinetest).com|financenova.online|v2links.me", simulateClick, ".get_btn a[href], //div[contains(text(),'Continue')], .get-link:not(.disabled)");
  338.  
  339. runWhenHostMatches("devnote.in|techyuth.xyz", simulateClick, "#scroll:not(.no), #getlinks[style*='display: block;'], .get-link:not(.disabled)");
  340. autoRedirectToSocial && runWhenHostMatches("(instagram|youtube|facebook).com", simulateClick, ".-cx-PRIVATE-Linkshim__followLink__, #invalid-token-redirect-goto-site-button, .selected");
  341. createMenu("autoRedirectToSocial", "Auto-Redirect to Social Media");
  342.  
  343. runWhenHostMatches("(wikijankari|idblogmarket|modijiurl|phonesparrow|naamlist|rajasthantopnews).com|gmsrweb.org", simulateClick, "center a[style*='display: block;'], .get-link:not(.disabled)");
  344.  
  345. runWhenHostMatches("aylink.co", simulateClick, ".btn-go, .complete[style*='display: block;'] a, a.btn:not(.btn-go)")
  346.  
  347. /*
  348. Sometimes, the AI model may provide inaccurate responses. Unfortunately, I can't control this. Sorry!
  349. https://danduh.github.io/window-ai/
  350. */
  351. runWhenHostMatches("cryptowidgets.net", function () {
  352. waitForElement('.captcha-icon img').then(async function (element) {
  353. const base64 = await imageUrlToBase64(element.src);
  354. if (!base64) return console.log("Failed to convert image.");
  355.  
  356. const icons = document.querySelectorAll('#icon-options i');
  357. const iconClasses = Array.from(icons).map(icon => icon.classList[1]);
  358.  
  359. console.log("Base64 Image:", base64);
  360.  
  361. const description = await getGeminiResponse(base64, iconClasses);
  362. console.log("Final Description:", description);
  363. simulateClick(`.${description}`);
  364. });
  365. });
  366. runWhenHostMatches("upfion.com", function() {
  367. simulateClick("#link-button:not([disabled])");
  368. waitForElement("a#link-button:not([disabled])").then((element) => navigateTo(element.href));
  369. });
  370. runWhenHostMatches("cutyion.com", simulateClick, "#submit-button:not([disabled])");
  371.  
  372. runWhenHostMatches("(www.)?(m88|m88sut|m88usb|bet88li|fb88|fb88dv|yeumoney|google|vn88wo|vn88tk1|vn8eu|fb88vao|vn88zx|vn88ko|vn88es|vn88tu|vn88n|vn88es).com|188.166.185.213|vn88.(hiphop|wtf|id|now|fan|group|solutions|ing)|vn88vc.wiki", function() {
  373. simulateClick(".getcodebtn");
  374.  
  375. waitForElement("//*[contains(@class, 'cursor-pointer') and contains(text(), 'footer')]", function() {
  376. simulateClick("a[href*='"+location.host+"']");
  377. })
  378. waitForElement("//*[contains(@class, 'cursor-pointer') and string-length(translate(normalize-space(text()), '0123456789', '')) = 0]", function(element) {
  379. GM_sendMessage("vietnam_code", element.innerText)
  380. })
  381.  
  382. // Google search results don’t always display the exact content that a website wants for every page
  383. // const searchLinks = [...document.querySelectorAll('div#search a[href]:not([class])')].map(a => a.href)
  384. const urls = [
  385. "m88.com/",
  386. "m88sut.com/",
  387. "m88usb.com/",
  388. "bet88li.com/m88",
  389. "www.fb88.com/",
  390. "fb88dv.com/",
  391. "188.166.185.213/w88",
  392. "vn88.fan",
  393. "vn88.group",
  394. "vn88.solutions",
  395. "vn88.ing",
  396. "vn88wo.com",
  397. "vn88tk1.com",
  398. "vn88.now",
  399. "vn8eu.com",
  400. "vn88vc.wiki",
  401. "fb88vao.com",
  402. "vn88zx.com",
  403. "vn88.wtf",
  404. "vn88ko.com",
  405. "vn88.id",
  406. "vn88.hiphop",
  407. "vn88es.com",
  408. "vn88n.com",
  409. "vn88tu.com",
  410. ];
  411. urls.includes(queryParams.get("q").replace("https://", "")) && simulateClick(".mymGo ~ div a");
  412.  
  413.  
  414. GM_onMessage("vietnam_code", function(newValue) {
  415. document.querySelector('[name="code"]').value = newValue;
  416. simulateClick(".box-form-button button");
  417. });
  418.  
  419. waitForElement("[data-clipboard-text]:not([data-clipboard-text=''])", function(element) {
  420. const links = urls.filter(url => url.includes(element.dataset.clipboardText));
  421. const tabs = [];
  422. links.forEach(async (url, index) => {
  423. await waitSeconds(index);
  424. let tab = GM_openInTab("https://www.google.com/url?q=https://" + url) //TODO: replace with window.open and then use postMessage
  425. tabs.push(tab);
  426. })
  427. window.addEventListener("beforeunload", function() {
  428. tabs.forEach(tab => tab.close());
  429. })
  430. })
  431. })
  432. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址