Extractor Button

Agrega un botón de extractor a https://www.xvideos.com/profileslist

  1. // ==UserScript==
  2. // @license MIT
  3. // @name Extractor Button
  4. // @namespace https://www.example.com
  5. // @version 1.0.13
  6. // @description Agrega un botón de extractor a https://www.xvideos.com/profileslist
  7. // @author Tu Nombre
  8. // @match https://www.xvideos.com/profileslist
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Función para mostrar los resultados en una ventana emergente
  16. function showPopupResults(results) {
  17. var popup = window.open('', '_blank', 'width=400,height=300,resizable=yes,scrollbars=yes');
  18. var popupDocument = popup.document;
  19.  
  20. var title = popupDocument.createElement('h3');
  21. title.textContent = 'Resultados:';
  22. popupDocument.body.appendChild(title);
  23.  
  24. var list = popupDocument.createElement('ul');
  25. results.forEach(function(result) {
  26. var listItem = popupDocument.createElement('li');
  27. listItem.textContent = result;
  28. list.appendChild(listItem);
  29. });
  30. popupDocument.body.appendChild(list);
  31. }
  32.  
  33. // Función para extraer los datos y verificar las palabras clave
  34. function extractData(event) {
  35. event.preventDefault();
  36.  
  37. var form = event.target;
  38. var usernameKeywords = form.elements.usernameKeywords.value.trim().toLowerCase();
  39. var aboutMeKeywords = form.elements.aboutMeKeywords.value.trim().toLowerCase();
  40.  
  41. var profileElements = document.querySelectorAll('.thumb-block-profile');
  42.  
  43. var matchingUsernames = [];
  44. var matchingAboutMe = [];
  45.  
  46. for (var i = 0; i < profileElements.length; i++) {
  47. var profileElement = profileElements[i];
  48. var usernameElement = profileElement.querySelector('.profile-name a');
  49. var aboutMeElement = profileElement.querySelector('.profile-aboutme-content p');
  50.  
  51. if (usernameElement && aboutMeElement) {
  52. var username = usernameElement.textContent.trim();
  53. var aboutMe = aboutMeElement.textContent.trim();
  54.  
  55. // Verificar si el nombre de usuario contiene las palabras clave
  56. if (usernameKeywords && username.toLowerCase().includes(usernameKeywords)) {
  57. matchingUsernames.push(username);
  58. }
  59.  
  60. // Verificar si el "about me" contiene las palabras clave
  61. if (aboutMeKeywords && aboutMe.toLowerCase().includes(aboutMeKeywords)) {
  62. matchingAboutMe.push(aboutMe);
  63. }
  64. }
  65. }
  66.  
  67. var results = [];
  68.  
  69. if (matchingUsernames.length > 0) {
  70. results.push('Nombres de usuario encontrados:');
  71. results.push(...matchingUsernames);
  72. }
  73.  
  74. if (matchingAboutMe.length > 0) {
  75. results.push('About Me encontrados:');
  76. results.push(...matchingAboutMe);
  77. }
  78.  
  79. if (results.length > 0) {
  80. showPopupResults(results);
  81. }
  82. }
  83.  
  84. // Crear el formulario
  85. var formContainer = document.createElement('div');
  86. formContainer.style.position = 'fixed';
  87. formContainer.style.top = '20px';
  88. formContainer.style.right = '20px';
  89. formContainer.style.zIndex = '9999';
  90. formContainer.style.display = 'flex';
  91. formContainer.style.background = '#fff';
  92. formContainer.style.padding = '10px';
  93. formContainer.style.border = '1px solid #ccc';
  94. formContainer.style.borderRadius = '4px';
  95. formContainer.style.boxShadow = '0 2px 4px rgba(0,0,0,0.1)';
  96. formContainer.style.fontFamily = 'Arial, sans-serif';
  97. formContainer.style.fontSize = '14px';
  98.  
  99. var form = document.createElement('form');
  100. form.addEventListener('submit', extractData);
  101.  
  102. var usernameInput = document.createElement('input');
  103. usernameInput.name = 'usernameKeywords';
  104. usernameInput.placeholder = 'Palabras clave para nombres de usuario';
  105. usernameInput.style.marginRight = '10px';
  106. form.appendChild(usernameInput);
  107.  
  108. var aboutMeInput = document.createElement('input');
  109. aboutMeInput.name = 'aboutMeKeywords';
  110. aboutMeInput.placeholder = 'Palabras clave para "about me"';
  111. form.appendChild(aboutMeInput);
  112.  
  113. var extractButton = document.createElement('button');
  114. extractButton.type = 'submit';
  115. extractButton.innerText = 'Extractor';
  116. extractButton.style.background = '#4285f4';
  117. extractButton.style.color = 'white';
  118. extractButton.style.border = 'none';
  119. extractButton.style.borderRadius = '4px';
  120. extractButton.style.padding = '10px 20px';
  121. extractButton.style.cursor = 'pointer';
  122. form.appendChild(extractButton);
  123.  
  124. formContainer.appendChild(form);
  125.  
  126. // Agregar el formulario al documento
  127. document.body.appendChild(formContainer);
  128.  
  129. })();