movie-easy-download

在豆瓣电影页面添加电影和字幕的下载链接

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @namespace         https://www.github.com/fytriht/

// @name              movie-easy-download

// @description       在豆瓣电影页面添加电影和字幕的下载链接

// @homepageURL       https://github.com/fytriht/movie-easy-download
// @supportURL        https://github.com/fytriht/movie-easy-download/issues/

// @author            fytriht
// @version           0.0.1
// @license           MIT


// @match             https://movie.douban.com/subject/*
// @grant             none
// ==/UserScript==

(function () {

  var sites = [
    {
      text: 'rargb',
      api: 'https://rarbg.to/torrents.php?search='
    },
    {
      text: 'torrentz',
      api: 'https://torrentz2.eu/search?f=',
    },
    {
      text: 'addic7ed',
      api: 'http://www.addic7ed.com/search.php?Submit=Search&search='
    },
    {
      text: 'openst',
      api: 'https://www.opensubtitles.org/en/search2/sublanguageid-eng/moviename-'
    }
  ];

  function createEl (querystring) {
    return function (text, api) {
      var el  = document.createElement('span');
      el.innerText = text;
      el.style.margin = '0 5px';
      el.style.color = '#f0f3f5';
      el.addEventListener('click', () => window.open(api + querystring));
      return el;
    };
  }

  function appendTo (cont) {
    return function (el) {
      cont.appendChild(el);
    };
  }

  try {
    var title = document.querySelector('[property="v:itemreviewed"]').innerText;
    var qs = title.match(/[a-z0-9]+/gi).join('%20');

    if (qs === null) return;

    var cont = document.querySelector('#content > h1');

    var appendToCont = appendTo(cont);
    var fn = createEl(qs);

    sites
      .map(site => fn(site.text, site.api))
      .forEach(el => appendToCont(el));
  }
  catch (_) {/* fail silently */}

})();