При использовании Tamper Monkey для создания сценариев для загрузки субтитров из ТВ-субтитров с использованием jquery загружается только один субтитр. - PullRequest
0 голосов
/ 24 апреля 2020

Я создал три файла сценария для трех страниц для загрузки субтитров из ТВ-субтитров. net

Первый выполняется на странице сезона телешоу, где все перечислены эпизоды определенного сезона, а именно:

// ==UserScript==
// @name         TV Show Page
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://www.tvsubtitles.net/tvshow-*
// @grant        none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==

(function() {
  'use strict';
  $(document).ready(function() {
    var epStart = 1,
      epEnd = 5,
      season = 1;
    var epCount = (epEnd - epStart) + 1;
    if (localStorage.getItem("epRemaining") === null) {
      localStorage.setItem('epRemaining', epCount);
      localStorage.setItem('currentEp', epStart);
      if (parseInt(localStorage.epRemaining) < 10)
        $('.left_articles #table5').find("td:contains('" + season + "x0" + parseInt(localStorage.currentEp) + "')").next().find('a')[0].click();
      else
        $('.left_articles #table5').find("td:contains('" + season + "x" + parseInt(localStorage.currentEp) + "')").next().find('a')[0].click();
    } else {
      if (parseInt(localStorage.epRemaining) != 0) {
        if (parseInt(localStorage.epRemaining) < 10)
          $('.left_articles #table5').find("td:contains('" + season + "x0" + parseInt(localStorage.currentEp) + "')").next().find('a')[0].click();
        else
          $('.left_articles #table5').find("td:contains('" + season + "x" + parseInt(localStorage.currentEp) + "')").next().find('a')[0].click();
      } else {
        console.log("Current EP " + localStorage.currentEp + "Episodes Remaining " + localStorage.epRemaining);
        localStorage.clear();
      }
    }
  });

})();

Во-вторых, я создал файл сценария, чтобы вызвать щелчок по первому элементу, указанному на странице, который появляется при нажатии на любой из эпизодов из первая страница. Это выглядит следующим образом:

// ==UserScript==
// @name         Episode Middle Page
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://www.tvsubtitles.net/episode-*
// @grant        none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==

(function() {
  'use strict';
  $(document).ready(function() {
    $('.left_articles a[href^="/subtitle"]:first')[0].click();
  });

})();

Наконец, я вызвал щелчок тега привязки и перенаправил на первую страницу после тайм-аута и обновил переменные трекера:

// ==UserScript==
// @name         Subtitle Download
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://www.tvsubtitles.net/subtitle-*
// @grant        none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==

(function() {
  'use strict';
  $(document).ready(function() {
    console.log(localStorage.currentEp);
    localStorage.currentEp = parseInt(localStorage.currentEp) + 1;
    localStorage.epRemaining = parseInt(localStorage.epRemaining) - 1;
    $('.left_articles a[href^="download"]').find('h3')[0].click();
    setTimeout(function() {
      $('.left_articles a[href^="tvshow-"]')[0].click();
    }, 7000);

  });

})();

Однако, хотя перенаправление страниц работает отлично и переменные счетчика также обновляются должным образом, загрузка происходит только для начального эпизода. Последующие эпизоды не загружаются. Может ли кто-нибудь помочь мне в этом? (образец ссылки на первую страницу: http://www.tvsubtitles.net/tvshow-1341-1.html)

...