Fantastic JAV Assistant

Fantastic JAV assistant.

// ==UserScript==
// @name                    Fantastic JAV Assistant
// @homepage                https://github.com/HUMORCE/userscripts
// @namespace               https://github.com/HUMORCE/userscripts
// @version                 1.2
// @description             Fantastic JAV assistant.
// @author                  humorce
// @include                 *://www.javlibrary.com/*/?v=*
// @include                 *://www.javbus.com/*
// @require                 https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js
// @grant                   none
// @license                 MIT
// ==/UserScript==
(function () {
  "use strict";

  try {
    var javl_bango = document.querySelector("#video_id table tbody tr td.text");
  } catch {}

  if (javl_bango != null) {
    // JAVLIBRARY

    // misc
    // remove title link
    document
      .querySelector("#video_title h3.post-title.text a")
      .removeAttribute("href");

    // bango
    javl_bango = javl_bango.innerText;
    // title
    var javl_title = document.querySelector("#video_title h3.post-title.text");

    // btn: copy title
    var javl_copy_button = document.createElement("button");
    javl_copy_button.setAttribute("class", "copy smallbutton");
    javl_copy_button.setAttribute(
      "data-clipboard-target",
      "#video_title > h3 > a"
    );
    javl_copy_button.innerText = "COPY TITLE";
    javl_title.append(javl_copy_button);

    // btn: copy bango
    var javl_copy_bango = document.querySelector("#video_id table");
    javl_copy_bango.setAttribute("class", "copy");
    javl_copy_bango.setAttribute(
      "data-clipboard-target",
      "#video_id > table > tbody > tr > td.text"
    );

    // btn: javbus
    var javbus = document.createElement("a");
    javbus.setAttribute("class", "smallbutton");
    javbus.setAttribute("href", "https://www.javbus.com/" + javl_bango);
    javbus.innerText = "JavBus";
    javl_title.append(javbus);

    // btn: sukebei
    var sukebei = document.createElement("a");
    sukebei.setAttribute("class", "smallbutton");
    sukebei.setAttribute("href", "https://sukebei.nyaa.si/?q=" + javl_bango);
    sukebei.innerText = "Sekubei";
    javl_title.append(sukebei);
  } else {
    // JAVBUS

    // bango
    var javb_bango = document.querySelectorAll("div.col-md-3.info p span");
    javb_bango = javb_bango[1].innerText;
    // title
    var javb_x = document.querySelector("div.container");
    var javb_y = document.querySelector("div.container div.row.movie");

    // btn: copy title
    var javb_copy_btn = document.createElement("button");
    javb_copy_btn.setAttribute("class", "copy btn btn-default");
    javb_copy_btn.setAttribute(
      "data-clipboard-target",
      ".container > h3:nth-child(1)"
    );
    javb_copy_btn.innerText = "COPY TITLE";
    javb_x.insertBefore(javb_copy_btn, javb_y);
    // document.body.insertBefore(javb_copy_btn, javb_option);

    // btn: copy bango
    var javb_copy_bango = document.querySelector("div.col-md-3.info p");
    javb_copy_bango.setAttribute("class", "copy");
    javb_copy_bango.setAttribute(
      "data-clipboard-target",
      "p.copy > span:nth-child(2)"
    );

    // btn: javbus
    var javlibrary = document.createElement("a");
    javlibrary.setAttribute("class", "btn btn-default");
    javlibrary.setAttribute(
      "href",
      "http://www.javlibrary.com/cn/vl_searchbyid.php?keyword=" + javb_bango
    );
    javlibrary.innerText = "JavLibrary";
    javb_x.insertBefore(javlibrary, javb_y);

    // btn: sukebei
    var sukebei = document.createElement("a");
    sukebei.setAttribute("class", "btn btn-default");
    sukebei.setAttribute("href", "https://sukebei.nyaa.si/?q=" + javb_bango);
    sukebei.innerText = "Sekubei";
    javb_x.insertBefore(sukebei, javb_y);
  }

  var clipboard = new ClipboardJS(".copy");

  clipboard.on("success", function (e) {
    console.info("Action:", e.action);
    console.info("Text:", e.text);
    console.info("Trigger:", e.trigger);

    e.clearSelection();
  });

  clipboard.on("error", function (e) {
    console.error("Action:", e.action);
    console.error("Trigger:", e.trigger);
  });
})();