Aylink Bypass

Aylink sitesinde bekleme süresini atlayarak direkt link erişimi sağlar

  1. // ==UserScript==
  2. // @name Aylink Bypass
  3. // @name:tr Aylink Bypass
  4. // @name:en Aylink Bypass
  5. // @namespace https://memoryhackers.org/members/durmuk.1871708/
  6. // @version 1.0
  7. // @description Aylink sitesinde bekleme süresini atlayarak direkt link erişimi sağlar
  8. // @description:tr Aylink sitesinde bekleme süresini atlayarak direkt link erişimi sağlar
  9. // @description:en Bypasses the countdown timer on Aylink to provide direct link access
  10. // @author Durmuş Karaca
  11. // @license MIT
  12. // @match *://*.aylink.co/*
  13. // @grant none
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18.  
  19. function waitForElement(selector) {
  20. return new Promise(resolve => {
  21. if (document.querySelector(selector)) {
  22. return resolve(document.querySelector(selector));
  23. }
  24.  
  25. const observer = new MutationObserver(mutations => {
  26. if (document.querySelector(selector)) {
  27. observer.disconnect();
  28. resolve(document.querySelector(selector));
  29. }
  30. });
  31.  
  32. observer.observe(document.body, {
  33. childList: true,
  34. subtree: true
  35. });
  36. });
  37. }
  38.  
  39. async function skipCountdown() {
  40. try {
  41. // Countdown elementini bekle
  42. const countdownElement = await waitForElement('.countdown');
  43. if (countdownElement) {
  44. // Bypass butonunu oluştur
  45. const bypassButton = document.createElement('div');
  46. bypassButton.className = 'text-center p-2';
  47. bypassButton.innerHTML = `
  48. <button class="btn btn-warning btn-lg fs-6 text-decoration-none col-12">
  49. <strong>Bypassed Link</strong>
  50. <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
  51. </button>
  52. `;
  53. // Bypass butonunu countdown'dan önce ekle
  54. countdownElement.parentNode.insertBefore(bypassButton, countdownElement);
  55. // Gerekli class'ları ekle ve AJAX isteğini tetikle
  56. setTimeout(() => {
  57. // Countdown'u gizle
  58. const timeElement = countdownElement.querySelector('.time');
  59. if (timeElement) {
  60. timeElement.style.display = 'none';
  61. }
  62.  
  63. // Complete elementini göster
  64. const completeElement = countdownElement.querySelector('.complete');
  65. if (completeElement) {
  66. completeElement.style.display = 'block';
  67. }
  68.  
  69. // Gerekli class'ları ekle
  70. const goButton = completeElement.querySelector('.btn');
  71. if (goButton) {
  72. goButton.classList.add('btn-go');
  73. }
  74.  
  75. const goLink = document.querySelector('#go-link');
  76. if (goLink) {
  77. goLink.classList.add('go-link');
  78. }
  79.  
  80. // Otomatik olarak butona tıkla
  81. setTimeout(() => {
  82. const btnGo = document.querySelector('.btn-go');
  83. if (btnGo) {
  84. btnGo.click();
  85. }
  86. }, 100);
  87.  
  88. // Bypass butonunu güncelle
  89. bypassButton.innerHTML = `
  90. <button class="btn btn-success btn-lg fs-6 text-decoration-none col-12">
  91. <strong>Link Hazırlanıyor</strong>
  92. <i class="fa fa-check" aria-hidden="true"></i>
  93. </button>
  94. `;
  95. }, 500);
  96. }
  97. } catch (error) {
  98. console.log('Element bulunamadı veya bir hata oluştu:', error);
  99. }
  100. }
  101.  
  102. // Sayfa yüklendiğinde çalıştır
  103. if (document.readyState === 'loading') {
  104. document.addEventListener('DOMContentLoaded', skipCountdown);
  105. } else {
  106. skipCountdown();
  107. }
  108. })();