(MSIN+) db.msin.jp improved

Check the Porn code to MISSAV and Sukebei if it exist.

Versione datata 02/02/2023. Vedi la nuova versione l'ultima versione.

// ==UserScript==
// @name         (MSIN+) db.msin.jp improved
// @namespace    https://github.com/KememChan
// @version      1.2.2
// @author       KememChan
// @description  Check the Porn code to MISSAV and Sukebei if it exist.
// @icon         https://db.msin.jp/favicon.ico
// @match        https://db.msin.jp/*page/*
// @match        https://db.msin.jp/*search/*
// @match        https://db.msin.jp/*ranking/*
// @require      https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js
// @grant        GM.xmlHttpRequest
// @grant        GM_addElement
// @grant        GM_addStyle
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(t=>{const e=document.createElement("style");e.dataset.source="vite-plugin-monkey",e.innerText=t,document.head.appendChild(e)})(":root{--font-size:1em}video.svelte-1btv80w.svelte-1btv80w{width:100%}.hidden.svelte-1btv80w.svelte-1btv80w{display:none}.link.svelte-1btv80w.svelte-1btv80w{height:1.2rem;margin-top:.2rem;padding:5px;background-color:#6c738033;display:flex;gap:5px;justify-content:center}.movie_desc.svelte-1btv80w.svelte-1btv80w{font-size:var(--font-size);font-family:Century Gothic,CenturyGothic,Geneva,AppleGothic,sans-serif;font-weight:700;text-align:center}.rounded.svelte-1btv80w.svelte-1btv80w{border-radius:5px}img.svelte-1btv80w.svelte-1btv80w{height:100%}.movie_thumbnail.svelte-1btv80w.svelte-1btv80w{aspect-ratio:16 / 9;background:#0b0e14;overflow:hidden;text-align:center;display:flex;justify-content:center}a.svelte-1btv80w.svelte-1btv80w{color:#bfbdb6;text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.movie_desc.svelte-1btv80w>.svelte-1btv80w:hover{color:#ff8c00}.movie.svelte-1btv80w.svelte-1btv80w{background:#0d1017;display:flex;flex-direction:column}.movie_desc.svelte-1btv80w.svelte-1btv80w{display:grid;padding:.5rem}.movie_code.svelte-1btv80w.svelte-1btv80w{color:#bfbdb6;font-size:calc(var(--font-size) + .2em)}.movie_actress.svelte-1btv80w.svelte-1btv80w{color:#39bae6}@media screen and (min-width: 1400px){:root{--font-size:.8rem}}@media screen and (min-width: 1700px){:root{--font-size:.9rem}}.movie_grid.svelte-16tg0z5{--grid-count:auto-fit;margin:1rem 0;display:grid;grid-template-columns:repeat(var(--grid-count),minmax(min(200px,100%),1fr));gap:1rem}@media screen and (max-width: 500px){.movie_grid.svelte-16tg0z5{--grid-count:2}:root{--font-size:.8em}}@media screen and (min-width: 1600px){.movie_grid.svelte-16tg0z5{--grid-count:6}}");

var __plugin_monkey_exposed = function($2) {
  "use strict";
  function noop() {
  }
  function assign(tar, src) {
    for (const k in src)
      tar[k] = src[k];
    return tar;
  }
  function run(fn) {
    return fn();
  }
  function blank_object() {
    return /* @__PURE__ */ Object.create(null);
  }
  function run_all(fns) {
    fns.forEach(run);
  }
  function is_function(thing) {
    return typeof thing === "function";
  }
  function safe_not_equal(a, b) {
    return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");
  }
  let src_url_equal_anchor;
  function src_url_equal(element_src, url) {
    if (!src_url_equal_anchor) {
      src_url_equal_anchor = document.createElement("a");
    }
    src_url_equal_anchor.href = url;
    return element_src === src_url_equal_anchor.href;
  }
  function is_empty(obj) {
    return Object.keys(obj).length === 0;
  }
  function append(target, node) {
    target.appendChild(node);
  }
  function insert(target, node, anchor) {
    target.insertBefore(node, anchor || null);
  }
  function detach(node) {
    if (node.parentNode) {
      node.parentNode.removeChild(node);
    }
  }
  function destroy_each(iterations, detaching) {
    for (let i = 0; i < iterations.length; i += 1) {
      if (iterations[i])
        iterations[i].d(detaching);
    }
  }
  function element(name) {
    return document.createElement(name);
  }
  function text(data) {
    return document.createTextNode(data);
  }
  function space() {
    return text(" ");
  }
  function listen(node, event, handler, options) {
    node.addEventListener(event, handler, options);
    return () => node.removeEventListener(event, handler, options);
  }
  function attr(node, attribute, value) {
    if (value == null)
      node.removeAttribute(attribute);
    else if (node.getAttribute(attribute) !== value)
      node.setAttribute(attribute, value);
  }
  function children(element2) {
    return Array.from(element2.childNodes);
  }
  function set_data(text2, data) {
    data = "" + data;
    if (text2.wholeText !== data)
      text2.data = data;
  }
  function toggle_class(element2, name, toggle) {
    element2.classList[toggle ? "add" : "remove"](name);
  }
  let current_component;
  function set_current_component(component) {
    current_component = component;
  }
  function get_current_component() {
    if (!current_component)
      throw new Error("Function called outside component initialization");
    return current_component;
  }
  function onMount(fn) {
    get_current_component().$$.on_mount.push(fn);
  }
  const dirty_components = [];
  const binding_callbacks = [];
  const render_callbacks = [];
  const flush_callbacks = [];
  const resolved_promise = Promise.resolve();
  let update_scheduled = false;
  function schedule_update() {
    if (!update_scheduled) {
      update_scheduled = true;
      resolved_promise.then(flush);
    }
  }
  function add_render_callback(fn) {
    render_callbacks.push(fn);
  }
  const seen_callbacks = /* @__PURE__ */ new Set();
  let flushidx = 0;
  function flush() {
    if (flushidx !== 0) {
      return;
    }
    const saved_component = current_component;
    do {
      try {
        while (flushidx < dirty_components.length) {
          const component = dirty_components[flushidx];
          flushidx++;
          set_current_component(component);
          update(component.$$);
        }
      } catch (e) {
        dirty_components.length = 0;
        flushidx = 0;
        throw e;
      }
      set_current_component(null);
      dirty_components.length = 0;
      flushidx = 0;
      while (binding_callbacks.length)
        binding_callbacks.pop()();
      for (let i = 0; i < render_callbacks.length; i += 1) {
        const callback = render_callbacks[i];
        if (!seen_callbacks.has(callback)) {
          seen_callbacks.add(callback);
          callback();
        }
      }
      render_callbacks.length = 0;
    } while (dirty_components.length);
    while (flush_callbacks.length) {
      flush_callbacks.pop()();
    }
    update_scheduled = false;
    seen_callbacks.clear();
    set_current_component(saved_component);
  }
  function update($$) {
    if ($$.fragment !== null) {
      $$.update();
      run_all($$.before_update);
      const dirty = $$.dirty;
      $$.dirty = [-1];
      $$.fragment && $$.fragment.p($$.ctx, dirty);
      $$.after_update.forEach(add_render_callback);
    }
  }
  const outroing = /* @__PURE__ */ new Set();
  let outros;
  function group_outros() {
    outros = {
      r: 0,
      c: [],
      p: outros
      // parent group
    };
  }
  function check_outros() {
    if (!outros.r) {
      run_all(outros.c);
    }
    outros = outros.p;
  }
  function transition_in(block, local) {
    if (block && block.i) {
      outroing.delete(block);
      block.i(local);
    }
  }
  function transition_out(block, local, detach2, callback) {
    if (block && block.o) {
      if (outroing.has(block))
        return;
      outroing.add(block);
      outros.c.push(() => {
        outroing.delete(block);
        if (callback) {
          if (detach2)
            block.d(1);
          callback();
        }
      });
      block.o(local);
    } else if (callback) {
      callback();
    }
  }
  function get_spread_update(levels, updates) {
    const update2 = {};
    const to_null_out = {};
    const accounted_for = { $$scope: 1 };
    let i = levels.length;
    while (i--) {
      const o = levels[i];
      const n = updates[i];
      if (n) {
        for (const key in o) {
          if (!(key in n))
            to_null_out[key] = 1;
        }
        for (const key in n) {
          if (!accounted_for[key]) {
            update2[key] = n[key];
            accounted_for[key] = 1;
          }
        }
        levels[i] = n;
      } else {
        for (const key in o) {
          accounted_for[key] = 1;
        }
      }
    }
    for (const key in to_null_out) {
      if (!(key in update2))
        update2[key] = void 0;
    }
    return update2;
  }
  function get_spread_object(spread_props) {
    return typeof spread_props === "object" && spread_props !== null ? spread_props : {};
  }
  function create_component(block) {
    block && block.c();
  }
  function mount_component(component, target, anchor, customElement) {
    const { fragment, after_update } = component.$$;
    fragment && fragment.m(target, anchor);
    if (!customElement) {
      add_render_callback(() => {
        const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);
        if (component.$$.on_destroy) {
          component.$$.on_destroy.push(...new_on_destroy);
        } else {
          run_all(new_on_destroy);
        }
        component.$$.on_mount = [];
      });
    }
    after_update.forEach(add_render_callback);
  }
  function destroy_component(component, detaching) {
    const $$ = component.$$;
    if ($$.fragment !== null) {
      run_all($$.on_destroy);
      $$.fragment && $$.fragment.d(detaching);
      $$.on_destroy = $$.fragment = null;
      $$.ctx = [];
    }
  }
  function make_dirty(component, i) {
    if (component.$$.dirty[0] === -1) {
      dirty_components.push(component);
      schedule_update();
      component.$$.dirty.fill(0);
    }
    component.$$.dirty[i / 31 | 0] |= 1 << i % 31;
  }
  function init(component, options, instance2, create_fragment2, not_equal, props, append_styles, dirty = [-1]) {
    const parent_component = current_component;
    set_current_component(component);
    const $$ = component.$$ = {
      fragment: null,
      ctx: [],
      // state
      props,
      update: noop,
      not_equal,
      bound: blank_object(),
      // lifecycle
      on_mount: [],
      on_destroy: [],
      on_disconnect: [],
      before_update: [],
      after_update: [],
      context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),
      // everything else
      callbacks: blank_object(),
      dirty,
      skip_bound: false,
      root: options.target || parent_component.$$.root
    };
    append_styles && append_styles($$.root);
    let ready = false;
    $$.ctx = instance2 ? instance2(component, options.props || {}, (i, ret, ...rest) => {
      const value = rest.length ? rest[0] : ret;
      if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
        if (!$$.skip_bound && $$.bound[i])
          $$.bound[i](value);
        if (ready)
          make_dirty(component, i);
      }
      return ret;
    }) : [];
    $$.update();
    ready = true;
    run_all($$.before_update);
    $$.fragment = create_fragment2 ? create_fragment2($$.ctx) : false;
    if (options.target) {
      if (options.hydrate) {
        const nodes = children(options.target);
        $$.fragment && $$.fragment.l(nodes);
        nodes.forEach(detach);
      } else {
        $$.fragment && $$.fragment.c();
      }
      if (options.intro)
        transition_in(component.$$.fragment);
      mount_component(component, options.target, options.anchor, options.customElement);
      flush();
    }
    set_current_component(parent_component);
  }
  class SvelteComponent {
    $destroy() {
      destroy_component(this, 1);
      this.$destroy = noop;
    }
    $on(type, callback) {
      if (!is_function(callback)) {
        return noop;
      }
      const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);
      callbacks.push(callback);
      return () => {
        const index = callbacks.indexOf(callback);
        if (index !== -1)
          callbacks.splice(index, 1);
      };
    }
    $set($$props) {
      if (this.$$set && !is_empty($$props)) {
        this.$$.skip_bound = true;
        this.$$set($$props);
        this.$$.skip_bound = false;
      }
    }
  }
  var monkeyWindow = window;
  var GM_addElement = /* @__PURE__ */ (() => monkeyWindow.GM_addElement)();
  var GM_addStyle = /* @__PURE__ */ (() => monkeyWindow.GM_addStyle)();
  var GM_xmlhttpRequest = /* @__PURE__ */ (() => monkeyWindow.GM_xmlhttpRequest)();
  const xmlhttpRequest = /* @__PURE__ */ (() => {
    return monkeyWindow.GM_xmlhttpRequest ?? monkeyWindow.GM.xmlHttpRequest;
  })();
  const fixUrl = (url = "") => {
    try {
      return url === "" && location.href ? location.href : url;
    } catch {
      return url;
    }
  };
  const delay = async (n = 0) => new Promise((res) => {
    setTimeout(res, n);
  });
  const parseHeaders = (rawHeaders = "") => {
    const headers = new Headers();
    const preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, " ");
    preProcessedHeaders.split("\r").map(function(header) {
      return header.startsWith(`
`) ? header.substring(1) : header;
    }).forEach(function(line) {
      var _a;
      let parts = line.split(":");
      let key = (_a = parts.shift()) == null ? void 0 : _a.trim();
      if (key) {
        let value = parts.join(":").trim();
        headers.append(key, value);
      }
    });
    return headers;
  };
  const GM_fetch = async (input, init2 = {}) => {
    const request = new Request(input, init2);
    if (request.signal && request.signal.aborted) {
      throw new DOMException("Aborted", "AbortError");
    }
    let data = await request.text();
    let binary = true;
    const headers = {};
    request.headers.forEach((value, key) => {
      headers[key] = value;
    });
    new Headers(init2.headers).forEach((value, key) => {
      headers[key] = value;
    });
    return new Promise((resolve, reject) => {
      var _a;
      const handle = xmlhttpRequest({
        method: request.method.toUpperCase(),
        url: fixUrl(request.url),
        headers,
        data,
        binary,
        responseType: "blob",
        async onload(e) {
          await delay();
          const resp = new Response(e.response ?? e.responseText, {
            status: e.status,
            statusText: e.statusText,
            headers: parseHeaders(e.responseHeaders)
          });
          Object.defineProperty(resp, "url", { value: e.finalUrl });
          resolve(resp);
        },
        async onerror() {
          await delay();
          reject(new TypeError("Network request failed"));
        },
        async ontimeout() {
          await delay();
          reject(new TypeError("Network request failed"));
        },
        async onabort() {
          await delay();
          reject(new DOMException("Aborted", "AbortError"));
        },
        async onreadystatechange(response) {
          var _a2;
          if (response.readyState === 4) {
            (_a2 = request.signal) == null ? void 0 : _a2.removeEventListener("abort", abortXhr);
          }
        }
      });
      function abortXhr() {
        handle.abort();
      }
      (_a = request.signal) == null ? void 0 : _a.addEventListener("abort", abortXhr);
    });
  };
  const _Content_svelte_svelte_type_style_lang = "";
  function create_fragment$2(ctx) {
    let div3;
    let div0;
    let video;
    let t0;
    let img;
    let img_src_value;
    let t1;
    let div2;
    let a0;
    let t2;
    let t3;
    let a1;
    let t4;
    let t5;
    let a2;
    let t6;
    let t7;
    let a3;
    let t8;
    let t9;
    let a4;
    let t10;
    let t11;
    let a5;
    let t12;
    let t13;
    let div1;
    let mounted;
    let dispose;
    return {
      c() {
        div3 = element("div");
        div0 = element("div");
        video = element("video");
        t0 = space();
        img = element("img");
        t1 = space();
        div2 = element("div");
        a0 = element("a");
        t2 = text(
          /*movieCode*/
          ctx[1]
        );
        t3 = space();
        a1 = element("a");
        t4 = text(
          /*movieDate*/
          ctx[2]
        );
        t5 = space();
        a2 = element("a");
        t6 = text(
          /*movieTitle*/
          ctx[5]
        );
        t7 = space();
        a3 = element("a");
        t8 = text(
          /*mfr*/
          ctx[3]
        );
        t9 = space();
        a4 = element("a");
        t10 = text(
          /*movieMaker*/
          ctx[4]
        );
        t11 = space();
        a5 = element("a");
        t12 = text(
          /*name*/
          ctx[6]
        );
        t13 = space();
        div1 = element("div");
        video.autoplay = true;
        video.loop = true;
        video.muted = true;
        video.playsInline = true;
        attr(video, "class", "svelte-1btv80w");
        toggle_class(
          video,
          "hidden",
          /*hidden*/
          ctx[15] === true
        );
        if (!src_url_equal(img.src, img_src_value = /*thumbnail*/
        ctx[0]))
          attr(img, "src", img_src_value);
        attr(img, "loading", "lazy");
        attr(img, "alt", "thumbnail image");
        attr(img, "class", "svelte-1btv80w");
        toggle_class(
          img,
          "hidden",
          /*hidden*/
          ctx[15] === false
        );
        attr(div0, "class", "movie_thumbnail rounded text-center width-ratio svelte-1btv80w");
        attr(
          a0,
          "href",
          /*movieCodeUrl*/
          ctx[7]
        );
        attr(a0, "class", "movie_code svelte-1btv80w");
        attr(
          a1,
          "href",
          /*movieDateUrl*/
          ctx[8]
        );
        attr(a1, "class", "movie_date svelte-1btv80w");
        attr(
          a2,
          "href",
          /*movieTitleUrl*/
          ctx[11]
        );
        attr(a2, "class", "movie_title svelte-1btv80w");
        attr(
          a3,
          "href",
          /*mfrUrl*/
          ctx[9]
        );
        attr(a3, "class", "mfr svelte-1btv80w");
        attr(
          a4,
          "href",
          /*movieMakerUrl*/
          ctx[10]
        );
        attr(a4, "class", "movie_maker svelte-1btv80w");
        attr(
          a5,
          "href",
          /*nameUrl*/
          ctx[12]
        );
        attr(a5, "class", "movie_actress svelte-1btv80w");
        attr(div1, "class", "link rounded svelte-1btv80w");
        attr(div2, "class", "movie_desc svelte-1btv80w");
        attr(div3, "class", "movie rounded svelte-1btv80w");
      },
      m(target, anchor) {
        insert(target, div3, anchor);
        append(div3, div0);
        append(div0, video);
        append(div0, t0);
        append(div0, img);
        ctx[20](div0);
        append(div3, t1);
        append(div3, div2);
        append(div2, a0);
        append(a0, t2);
        ctx[21](a0);
        append(div2, t3);
        append(div2, a1);
        append(a1, t4);
        append(div2, t5);
        append(div2, a2);
        append(a2, t6);
        append(div2, t7);
        append(div2, a3);
        append(a3, t8);
        append(div2, t9);
        append(div2, a4);
        append(a4, t10);
        append(div2, t11);
        append(div2, a5);
        append(a5, t12);
        append(div2, t13);
        append(div2, div1);
        if (!mounted) {
          dispose = [
            listen(
              div0,
              "mouseenter",
              /*setPreview*/
              ctx[16]
            ),
            listen(
              div0,
              "mouseleave",
              /*unSetPreview*/
              ctx[17]
            ),
            listen(
              div0,
              "keydown",
              /*setPreview*/
              ctx[16]
            )
          ];
          mounted = true;
        }
      },
      p(ctx2, [dirty]) {
        if (dirty & /*hidden*/
        32768) {
          toggle_class(
            video,
            "hidden",
            /*hidden*/
            ctx2[15] === true
          );
        }
        if (dirty & /*thumbnail*/
        1 && !src_url_equal(img.src, img_src_value = /*thumbnail*/
        ctx2[0])) {
          attr(img, "src", img_src_value);
        }
        if (dirty & /*hidden*/
        32768) {
          toggle_class(
            img,
            "hidden",
            /*hidden*/
            ctx2[15] === false
          );
        }
        if (dirty & /*movieCode*/
        2)
          set_data(
            t2,
            /*movieCode*/
            ctx2[1]
          );
        if (dirty & /*movieCodeUrl*/
        128) {
          attr(
            a0,
            "href",
            /*movieCodeUrl*/
            ctx2[7]
          );
        }
        if (dirty & /*movieDate*/
        4)
          set_data(
            t4,
            /*movieDate*/
            ctx2[2]
          );
        if (dirty & /*movieDateUrl*/
        256) {
          attr(
            a1,
            "href",
            /*movieDateUrl*/
            ctx2[8]
          );
        }
        if (dirty & /*movieTitle*/
        32)
          set_data(
            t6,
            /*movieTitle*/
            ctx2[5]
          );
        if (dirty & /*movieTitleUrl*/
        2048) {
          attr(
            a2,
            "href",
            /*movieTitleUrl*/
            ctx2[11]
          );
        }
        if (dirty & /*mfr*/
        8)
          set_data(
            t8,
            /*mfr*/
            ctx2[3]
          );
        if (dirty & /*mfrUrl*/
        512) {
          attr(
            a3,
            "href",
            /*mfrUrl*/
            ctx2[9]
          );
        }
        if (dirty & /*movieMaker*/
        16)
          set_data(
            t10,
            /*movieMaker*/
            ctx2[4]
          );
        if (dirty & /*movieMakerUrl*/
        1024) {
          attr(
            a4,
            "href",
            /*movieMakerUrl*/
            ctx2[10]
          );
        }
        if (dirty & /*name*/
        64)
          set_data(
            t12,
            /*name*/
            ctx2[6]
          );
        if (dirty & /*nameUrl*/
        4096) {
          attr(
            a5,
            "href",
            /*nameUrl*/
            ctx2[12]
          );
        }
      },
      i: noop,
      o: noop,
      d(detaching) {
        if (detaching)
          detach(div3);
        ctx[20](null);
        ctx[21](null);
        mounted = false;
        run_all(dispose);
      }
    };
  }
  function instance$1($$self, $$props, $$invalidate) {
    let { thumbnail } = $$props;
    let { movieCode } = $$props;
    let { missAVCode } = $$props;
    let { sukebeiCode } = $$props;
    let { movieDate } = $$props;
    let { mfr } = $$props;
    let { movieMaker } = $$props;
    let { movieTitle } = $$props;
    let { name } = $$props;
    let { movieCodeUrl } = $$props;
    let { movieDateUrl } = $$props;
    let { mfrUrl } = $$props;
    let { movieMakerUrl } = $$props;
    let { movieTitleUrl } = $$props;
    let { nameUrl } = $$props;
    let preview, code;
    onMount(() => {
      code.setAttribute("missavcode", missAVCode);
      code.setAttribute("sukebeicode", sukebeiCode);
    });
    let hidden = true;
    async function setPreview() {
      if (!code.getAttribute("preview")) {
        return;
      }
      if (!preview.querySelector("video").getAttribute("src")) {
        const url = code.getAttribute("preview");
        const resp = await GM_fetch(url, {
          headers: { referer: "https://missav.com/en" }
        });
        const blob = await resp.blob();
        const previewUrl = URL.createObjectURL(blob);
        preview.querySelector("video").setAttribute("src", previewUrl);
      }
      $$invalidate(15, hidden = false);
    }
    function unSetPreview() {
      $$invalidate(15, hidden = true);
    }
    function div0_binding($$value) {
      binding_callbacks[$$value ? "unshift" : "push"](() => {
        preview = $$value;
        $$invalidate(13, preview);
      });
    }
    function a0_binding($$value) {
      binding_callbacks[$$value ? "unshift" : "push"](() => {
        code = $$value;
        $$invalidate(14, code);
      });
    }
    $$self.$$set = ($$props2) => {
      if ("thumbnail" in $$props2)
        $$invalidate(0, thumbnail = $$props2.thumbnail);
      if ("movieCode" in $$props2)
        $$invalidate(1, movieCode = $$props2.movieCode);
      if ("missAVCode" in $$props2)
        $$invalidate(18, missAVCode = $$props2.missAVCode);
      if ("sukebeiCode" in $$props2)
        $$invalidate(19, sukebeiCode = $$props2.sukebeiCode);
      if ("movieDate" in $$props2)
        $$invalidate(2, movieDate = $$props2.movieDate);
      if ("mfr" in $$props2)
        $$invalidate(3, mfr = $$props2.mfr);
      if ("movieMaker" in $$props2)
        $$invalidate(4, movieMaker = $$props2.movieMaker);
      if ("movieTitle" in $$props2)
        $$invalidate(5, movieTitle = $$props2.movieTitle);
      if ("name" in $$props2)
        $$invalidate(6, name = $$props2.name);
      if ("movieCodeUrl" in $$props2)
        $$invalidate(7, movieCodeUrl = $$props2.movieCodeUrl);
      if ("movieDateUrl" in $$props2)
        $$invalidate(8, movieDateUrl = $$props2.movieDateUrl);
      if ("mfrUrl" in $$props2)
        $$invalidate(9, mfrUrl = $$props2.mfrUrl);
      if ("movieMakerUrl" in $$props2)
        $$invalidate(10, movieMakerUrl = $$props2.movieMakerUrl);
      if ("movieTitleUrl" in $$props2)
        $$invalidate(11, movieTitleUrl = $$props2.movieTitleUrl);
      if ("nameUrl" in $$props2)
        $$invalidate(12, nameUrl = $$props2.nameUrl);
    };
    return [
      thumbnail,
      movieCode,
      movieDate,
      mfr,
      movieMaker,
      movieTitle,
      name,
      movieCodeUrl,
      movieDateUrl,
      mfrUrl,
      movieMakerUrl,
      movieTitleUrl,
      nameUrl,
      preview,
      code,
      hidden,
      setPreview,
      unSetPreview,
      missAVCode,
      sukebeiCode,
      div0_binding,
      a0_binding
    ];
  }
  class Content extends SvelteComponent {
    constructor(options) {
      super();
      init(this, options, instance$1, create_fragment$2, safe_not_equal, {
        thumbnail: 0,
        movieCode: 1,
        missAVCode: 18,
        sukebeiCode: 19,
        movieDate: 2,
        mfr: 3,
        movieMaker: 4,
        movieTitle: 5,
        name: 6,
        movieCodeUrl: 7,
        movieDateUrl: 8,
        mfrUrl: 9,
        movieMakerUrl: 10,
        movieTitleUrl: 11,
        nameUrl: 12
      });
    }
  }
  function MovieElement() {
    let movies2 = [];
    const regex = /^(carib|caribpr|1pon|10mu|paco)+-(\d.+)/i;
    const pacomama = /^(paco)+-(\d.+)/i;
    const movie_infos = $2(".movie_info");
    for (const movie_info of movie_infos) {
      let sukebeiCode = $2(movie_info).find(".movie_pn").text().toUpperCase();
      let missAVCode = sukebeiCode;
      if (regex.test(sukebeiCode)) {
        if (pacomama.test(missAVCode)) {
          missAVCode = pacomama.exec(missAVCode)[2].replace("_", "-");
        }
        sukebeiCode = regex.exec(sukebeiCode)[2];
      }
      let name = $2(movie_info).find(".movie_artist").children().children();
      if (name.length === 0) {
        name = "No Name";
      } else {
        name = name.text();
      }
      const movie = {
        thumbnail: $2(movie_info).find("img").attr("src"),
        movieCode: $2(movie_info).find(".movie_pn").text().toUpperCase(),
        missAVCode,
        sukebeiCode,
        movieCodeUrl: $2(movie_info).find(".movie_title").children().attr("href"),
        movieDate: $2(movie_info).find(".movie_create").children().text(),
        movieDateUrl: $2(movie_info).find(".movie_create").children().attr("href"),
        mfr: $2(movie_info).find(".movie_mfr").children().text(),
        mfrUrl: $2(movie_info).find(".movie_mfr").children().attr("href"),
        movieMaker: $2(movie_info).find(".movie_writer").children().text(),
        movieMakerUrl: $2(movie_info).find(".movie_writer").children().attr("href"),
        name,
        nameUrl: $2(movie_info).find(".movie_artist").children().children().attr("href"),
        movieTitle: $2(movie_info).find(".movie_title").children().text(),
        movieTitleUrl: $2(movie_info).find(".movie_title").children().attr("href")
      };
      movies2.push(movie);
    }
    return movies2;
  }
  const _Movies_svelte_svelte_type_style_lang = "";
  function get_each_context(ctx, list, i) {
    const child_ctx = ctx.slice();
    child_ctx[1] = list[i];
    return child_ctx;
  }
  function create_else_block(ctx) {
    let p;
    return {
      c() {
        p = element("p");
        p.textContent = "loading...";
      },
      m(target, anchor) {
        insert(target, p, anchor);
      },
      p: noop,
      d(detaching) {
        if (detaching)
          detach(p);
      }
    };
  }
  function create_each_block(ctx) {
    let content;
    let current;
    const content_spread_levels = [
      /*movie*/
      ctx[1]
    ];
    let content_props = {};
    for (let i = 0; i < content_spread_levels.length; i += 1) {
      content_props = assign(content_props, content_spread_levels[i]);
    }
    content = new Content({ props: content_props });
    return {
      c() {
        create_component(content.$$.fragment);
      },
      m(target, anchor) {
        mount_component(content, target, anchor);
        current = true;
      },
      p(ctx2, dirty) {
        const content_changes = dirty & /*movies*/
        1 ? get_spread_update(content_spread_levels, [get_spread_object(
          /*movie*/
          ctx2[1]
        )]) : {};
        content.$set(content_changes);
      },
      i(local) {
        if (current)
          return;
        transition_in(content.$$.fragment, local);
        current = true;
      },
      o(local) {
        transition_out(content.$$.fragment, local);
        current = false;
      },
      d(detaching) {
        destroy_component(content, detaching);
      }
    };
  }
  function create_fragment$1(ctx) {
    let div;
    let current;
    let each_value = (
      /*movies*/
      ctx[0]
    );
    let each_blocks = [];
    for (let i = 0; i < each_value.length; i += 1) {
      each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i));
    }
    const out = (i) => transition_out(each_blocks[i], 1, 1, () => {
      each_blocks[i] = null;
    });
    let each_1_else = null;
    if (!each_value.length) {
      each_1_else = create_else_block();
    }
    return {
      c() {
        div = element("div");
        for (let i = 0; i < each_blocks.length; i += 1) {
          each_blocks[i].c();
        }
        if (each_1_else) {
          each_1_else.c();
        }
        attr(div, "class", "movie_grid svelte-16tg0z5");
      },
      m(target, anchor) {
        insert(target, div, anchor);
        for (let i = 0; i < each_blocks.length; i += 1) {
          each_blocks[i].m(div, null);
        }
        if (each_1_else) {
          each_1_else.m(div, null);
        }
        current = true;
      },
      p(ctx2, [dirty]) {
        if (dirty & /*movies*/
        1) {
          each_value = /*movies*/
          ctx2[0];
          let i;
          for (i = 0; i < each_value.length; i += 1) {
            const child_ctx = get_each_context(ctx2, each_value, i);
            if (each_blocks[i]) {
              each_blocks[i].p(child_ctx, dirty);
              transition_in(each_blocks[i], 1);
            } else {
              each_blocks[i] = create_each_block(child_ctx);
              each_blocks[i].c();
              transition_in(each_blocks[i], 1);
              each_blocks[i].m(div, null);
            }
          }
          group_outros();
          for (i = each_value.length; i < each_blocks.length; i += 1) {
            out(i);
          }
          check_outros();
          if (!each_value.length && each_1_else) {
            each_1_else.p(ctx2, dirty);
          } else if (!each_value.length) {
            each_1_else = create_else_block();
            each_1_else.c();
            each_1_else.m(div, null);
          } else if (each_1_else) {
            each_1_else.d(1);
            each_1_else = null;
          }
        }
      },
      i(local) {
        if (current)
          return;
        for (let i = 0; i < each_value.length; i += 1) {
          transition_in(each_blocks[i]);
        }
        current = true;
      },
      o(local) {
        each_blocks = each_blocks.filter(Boolean);
        for (let i = 0; i < each_blocks.length; i += 1) {
          transition_out(each_blocks[i]);
        }
        current = false;
      },
      d(detaching) {
        if (detaching)
          detach(div);
        destroy_each(each_blocks, detaching);
        if (each_1_else)
          each_1_else.d();
      }
    };
  }
  function instance($$self, $$props, $$invalidate) {
    let movies2 = [];
    onMount(() => {
      $$invalidate(0, movies2 = MovieElement());
    });
    return [movies2];
  }
  class Movies extends SvelteComponent {
    constructor(options) {
      super();
      init(this, options, instance, create_fragment$1, safe_not_equal, {});
    }
  }
  function create_fragment(ctx) {
    let main;
    let movies2;
    let current;
    movies2 = new Movies({});
    return {
      c() {
        main = element("main");
        create_component(movies2.$$.fragment);
      },
      m(target, anchor) {
        insert(target, main, anchor);
        mount_component(movies2, main, null);
        current = true;
      },
      p: noop,
      i(local) {
        if (current)
          return;
        transition_in(movies2.$$.fragment, local);
        current = true;
      },
      o(local) {
        transition_out(movies2.$$.fragment, local);
        current = false;
      },
      d(detaching) {
        if (detaching)
          detach(main);
        destroy_component(movies2);
      }
    };
  }
  class App extends SvelteComponent {
    constructor(options) {
      super();
      init(this, options, null, create_fragment, safe_not_equal, {});
    }
  }
  function MissAV(movies2) {
    for (const movie of movies2) {
      const code = $2(movie).find(".movie_code");
      const missavUrl = `https://missav.com/en/search/${code.attr("missavcode")}`;
      GM_xmlhttpRequest({
        url: missavUrl,
        onload(response) {
          const grid = $2(response.responseText).find("div.grid div.relative");
          const previewUrl = $2(response.responseText).find("video").first().attr("data-src");
          if (grid.length) {
            code.attr("href", missavUrl);
            code.attr("target", "_blank");
            code.attr("preview", previewUrl);
            code.css("color", "#e15062");
          } else {
            $2(movie).css("filter", "brightness(0.5)");
          }
        }
      });
    }
  }
  function Sukebei(movies2) {
    let codes = "";
    for (const movie of movies2) {
      const code = $2(movie).find(".movie_code").attr("sukebeicode");
      codes += `${code}|`;
    }
    const sukebeis = `https://sukebei.nyaa.si/?q=${codes}&s=seeders&o=desc`;
    console.log("Requesting: " + sukebeis);
    GM_xmlhttpRequest({
      url: sukebeis,
      onload(response) {
        for (const movie of movies2) {
          const code = $2(movie).find(".movie_code");
          const containCode = $2(response.responseText).find(`tr:contains("${$2(code).attr("sukebeicode")}")`).first();
          if (containCode.length) {
            const torrent = "https://sukebei.nyaa.si/" + containCode.find("i.fa-download").parent().attr("href");
            const magnet = containCode.find("i.fa-magnet").parent().attr("href");
            const seedsNumber = containCode.children().eq(-3).text();
            $2(movie).find(".link").append(`<a href='https://sukebei.nyaa.si/?q=${code.attr("sukebeicode")}&s=seeders&o=desc' target='_blank' class='sukebei'> <img style='height: 1.2em;' src='https://sukebei.nyaa.si/static/favicon.png'></img></a>`);
            $2(movie).find(".link").append(`<a style='font-size: 1.2em;' class="fa fa-fw fa-download" href='${torrent}'></a>`);
            $2(movie).find(".link").append(`<a style='font-size: 1.2em; bottom: 0; position: relative; bottom: -1px;' class="fa fa-fw fa-magnet" href='${magnet}'></a>`);
            $2(movie).find(".link").append(`<p style='font-size: 1.2em; color: lawngreen; font-weight: 600; position: relative; bottom: 5px;'>${seedsNumber}</p>`);
            $2(movie).css("filter", "brightness(1)");
          }
        }
      }
    });
  }
  function JavStore(movies2) {
    for (const movie of movies2) {
      let code = $2(movie).find(".movie_code").attr("missavcode");
      const regex = /^(fc2-ppv)+-(\d.+)/i;
      if (regex.test(code)) {
        code = regex.exec(code)[2];
      }
      $2(movie).find(".link").append(
        `<a href='https://img.javstore.net/search/images/?q="${code}"' target="_blank"><img style='height: 1.2em;' src="https://img.javstore.net/content/images/system/default/favicon.png"></img></a>`
      );
    }
  }
  function tweak() {
    document.cookie = "config_view=filename%2Cunsubscribe%2Cacttag%2Cacttagd%2Cactrank%2C_blank%2Cactview%2Csampleview";
    const css = `
@media screen and (min-width: 610px) {
  #content, #headbarspan, #catchmassage, .content {
    max-width: 2922px;
    width: auto;
  }
  .jp_movie_view .movie_info {
    max-width: 100%;
  }
  .jp_movie_view .movie_image {
    width: auto;
    max-width: 100%;
  }
  .movie_info {
    padding: 0;
  }
}

@media screen and (min-width: 850px) {
  #content, #headbarspan, #catchmassage, .content {
    width: auto;
  }
}

.actress_info_ditail {
    background: #3b3a3a;
    border-radius: 1rem;
    margin: 1rem 0 1rem;
}

.movie_info {
  max-width: 100%;
}

@media screen and (min-width: 2900px) {
  .jp_movie_view_wrap { width: auto; margin-left: 0; }
  .movie_view_wrap { width: auto; margin-left: 0; }
}
@media screen and (min-width: 1780px) {
  .jp_movie_view_wrap { width: auto; margin-left: 0; }
  .movie_view_wrap { width: auto; margin-left: 0; }
}
@media screen and (min-width: 1500px) {
  .jp_movie_view_wrap { width: auto; margin-left: 0; }
  .movie_view_wrap { width: auto; margin-left: 0; }
}

@media screen and (max-width: 609px) {
  .act_left {
    width: auto;
    max-width: 100%;
  }
  .act_image {
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: 100%;
  }
  .actress_info_ditail {
    flex-direction: column;
    justify-content: center;
  }
  .act_image img {
    height: auto;
    object-fit: contain;
  }
  .movie_info {
      display: flex;
      flex-direction: column;
  }
  .movie_image {
      aspect-ratio: 16 / 9;
      max-width: 100%;
  }
  .movie_ditail {
      max-width: 100%;
  }
}
.movie_image {
      aspect-ratio: 16 / 9;
}
.hidden {
  display: none;
}
`;
    GM_addStyle(css);
    GM_addElement(document.head, "link", {
      rel: "stylesheet",
      href: "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css"
    });
    const actTag = $2(".act_tag");
    const actDitail = $2(".act_ditail");
    const edit = $2(".edit");
    edit.remove();
    actDitail.append(actTag);
    actTag.append(`<li>${edit.html()}</li>`);
    const commentJump = $2(".commentjump:contains('サンプル画像モード')");
    const olbreadcumb = $2("ol.breadcrumb");
    commentJump.remove();
    olbreadcumb.after(commentJump);
  }
  tweak();
  const app = new App({
    target: (() => {
      const app2 = document.createElement("div");
      let movie_view = document.querySelector(".movie_view");
      if (!movie_view) {
        movie_view = document.querySelector(".jp_movie_view");
      }
      movie_view.after(app2);
      return app2;
    })()
  });
  if (!document.querySelector(".movie_view")) {
    $2(".movie_thumbnail").css("aspect-ratio", "3 / 4");
  }
  $2(".movie_info").parent().remove();
  const movies = $2(".movie");
  JavStore(movies);
  MissAV(movies);
  Sukebei(movies);
  return app;
}($);