Javi

Cursos: play all media

Nov 6th, 2025 (edited)
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. async function processAllElementsVerbose() {
  2. let processedElements = new Set();
  3. let iteration = 0;
  4.  
  5. while (true) {
  6. iteration++;
  7. const allElements = [
  8. ...document.querySelectorAll('button:not(.courseExit__button), audio, video')
  9. ];
  10.  
  11. console.log(`\n--- Iteración ${iteration}: ${allElements.length} elementos totales, ${processedElements.size} procesados ---`);
  12.  
  13. let foundNew = false;
  14.  
  15. for (let i = 0; i < allElements.length; i++) {
  16. const element = allElements[i];
  17.  
  18. if (processedElements.has(element)) {
  19. continue;
  20. }
  21.  
  22. foundNew = true;
  23. processedElements.add(element);
  24.  
  25. console.log(`\n[${i + 1}/${allElements.length}] Procesando ${element.tagName}`);
  26.  
  27. if (element.tagName === 'BUTTON') {
  28. const text = element.textContent?.trim().substring(0, 40) || 'Sin texto';
  29. console.log(` → Click en: "${text}"`);
  30. element.click();
  31. await new Promise(resolve => setTimeout(resolve, 1000));
  32.  
  33. } else {
  34. console.log(` → Reproduciendo a 5x...`);
  35. element.playbackRate = 5.0;
  36.  
  37. try {
  38. await element.play();
  39. await new Promise(resolve => {
  40. element.addEventListener('ended', resolve, { once: true });
  41. });
  42. console.log(` ✓ Terminado`);
  43. } catch (error) {
  44. console.log(` ✗ Error:`, error.message);
  45. }
  46. }
  47.  
  48. break;
  49. }
  50.  
  51. if (!foundNew) {
  52. break;
  53. }
  54. }
  55.  
  56. console.log('\n✅ ¡Proceso completado!');
  57. }
  58.  
  59. processAllElementsVerbose();
Advertisement
Add Comment
Please, Sign In to add comment