TrendLinkler Bypass Enhanced

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

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

  1. // ==UserScript==
  2. // @name TrendLinkler Bypass Enhanced
  3. // @name:tr TrendLinkler Bypass Enhanced
  4. // @name:en TrendLinkler Bypass Enhanced
  5. // @namespace https://memoryhackers.org/members/durmuk.1871708/
  6. // @version 1.6
  7. // @description TrendLinkler sitesinde bekleme süresini atlayarak direkt link erişimi sağlar
  8. // @description:tr TrendLinkler sitesinde bekleme süresini atlayarak direkt link erişimi sağlar
  9. // @description:en Bypasses the countdown timer on TrendLinkler to provide direct link access
  10. // @author Durmuş Karaca
  11. // @license MIT
  12. // @match *://*.trendlinkler.com/*
  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. // Sayfadaki linki bul
  45. const linkElement = document.querySelector('a.btn-primary[href^="https://"]');
  46. if (linkElement) {
  47. // Önce bypass butonunu oluştur
  48. const bypassButton = document.createElement('div');
  49. bypassButton.className = 'text-center p-2';
  50. bypassButton.innerHTML = `
  51. <button class="btn btn-warning btn-lg fs-6 text-decoration-none col-12">
  52. <strong>Bypassed Link</strong>
  53. <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
  54. </button>
  55. `;
  56. // Bypass butonunu countdown'dan önce ekle
  57. countdownElement.parentNode.insertBefore(bypassButton, countdownElement);
  58. // 1 saniye sonra countdown'u kaldır ve gerçek linki göster
  59. setTimeout(() => {
  60. // Countdown'u kaldır
  61. countdownElement.style.display = 'none';
  62. // Bypass butonunu güncelle
  63. bypassButton.innerHTML = `
  64. <a href="${linkElement.href}"
  65. class="btn btn-success btn-lg fs-6 text-decoration-none col-12"
  66. target="_blank"
  67. rel="nofollow">
  68. <strong>Linke Git</strong>
  69. <i class="fa fa-external-link" aria-hidden="true"></i>
  70. </a>
  71. `;
  72. // Complete class'ına sahip elementi göster
  73. const completeElement = document.querySelector('.complete');
  74. if (completeElement) {
  75. completeElement.style.display = 'block';
  76. }
  77. }, 1000);
  78. }
  79. }
  80. } catch (error) {
  81. console.log('Element bulunamadı veya bir hata oluştu:', error);
  82. }
  83. }
  84.  
  85. // Sayfa yüklendiğinde çalıştır
  86. if (document.readyState === 'loading') {
  87. document.addEventListener('DOMContentLoaded', skipCountdown);
  88. } else {
  89. skipCountdown();
  90. }
  91. })();