漫画検索

Execute UserScript

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        漫画検索
// @namespace   http://tampermonkey.net/
// @version     1.0
// @description Execute UserScript
// @author      Your Name
// @match        https://*
// @grant       none
// @license     MIT
// ==/UserScript==

(function() {
    'use strict';
    
    document.addEventListener('keydown', (e) => {
        if (e.key === 'l') {
            javascript:(function(){ const config = { "genres": [ { "name": "ヒトミラ作者", "tags": [ { "name": "作者有効化", "url": "artist/", "imageUrl": "undefined", "priority": 1, "autoSelect": true } ], "subGenres": [ { "name": "ふたなり", "tags": [ { "name": "ひょうが。", "url": "hyouga.", "imageUrl": "https://img.momoniji.com/wp-content/uploads/b/55/5526/552669/c001.webp", "priority": 4, "autoSelect": false } ], "subGenres": [] }, { "name": "TS", "tags": [ { "name": "柚木", "url": "yuzuki", "imageUrl": "https://img.honto.jp/series/1/0/240/C-MBJ-28246-3-484613X_1.jpg", "priority": 4, "autoSelect": false }, { "name": "安治ぽん太郎", "url": "aji%20pontarou", "imageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQgZ21t8nk5iiZhdqvxkNQmA0Yy7AbsieWDYwdNGAF7sNDeYgxyvOwqrIn1xbN6UGrw9TU&usqp=CAU", "priority": 4, "autoSelect": false }, { "name": "べってぃ", "url": "betty", "imageUrl": "https://img.dlsite.jp/modpub/images2/work/doujin/RJ01369000/RJ01368004_img_main.jpg", "priority": 4, "autoSelect": false }, { "name": "あむぁい(タグx)", "url": "group/amuai%20okashi%20seisakusho", "imageUrl": "https://doujin-assets.dmm.co.jp/digital/comic/d_539881/d_539881pl.jpg", "priority": 4, "autoSelect": false }, { "name": "いわした ", "url": "iwashita", "imageUrl": "https://comic.iowl.jp/_next/image?url=https%3A%2F%2Fcomic-image.iowl.jp%2Fimages%2Fthumbnail%2F2258%2F225830%2F225830_large.jpg&w=384&q=75", "priority": 4, "autoSelect": false }, { "name": "れいとうみかん ", "url": "reitou%20mikan", "imageUrl": "https://img.papy.co.jp/lc/sc/item/cover/9-2711160-c400.jpg", "priority": 4, "autoSelect": false }, { "name": "ウェルト", "url": "welt", "imageUrl": "https://pbs.twimg.com/media/GE28a6faYAAbPRX?format=jpg&name=4096x4096", "priority": 4, "autoSelect": false }, { "name": "やすみみらきち", "url": "yasumi%20mirakichi", "imageUrl": "https://t3.nhentai.website/galleries/2674229/cover.jpg", "priority": 4, "autoSelect": false } ], "subGenres": [] }, { "name": "男の娘", "tags": [ { "name": "佐々木武蔵", "url": "sasaki%20musashi", "imageUrl": "https://cdn.imagedeliveries.com/3037979/thumbnails/cover.jpg", "priority": 4, "autoSelect": false } ], "subGenres": [] }, { "name": "魔法少女", "tags": [ { "name": "山梨ユウヤ", "url": "yamanashi%20yuuya", "imageUrl": "https://melonbooks.akamaized.net/user_data/packages/resize_image.php?image=232000033025.jpg&c=1&aa=0", "priority": 4, "autoSelect": false } ], "subGenres": [] }, { "name": "ロリ", "tags": [ { "name": "古山 造", "url": "furuyama%20tsukuru", "imageUrl": "https://aicomic.org/attachment/comic/2970336-98bab124b3/2970336-98bab124b3.jpg", "priority": 4, "autoSelect": false } ], "subGenres": [] }, { "name": "潮吹き", "tags": [ { "name": "ぽちたろ", "url": "pochitaro", "imageUrl": "https://img.dlsite.jp/modpub/images2/work/doujin/RJ01074000/RJ01073400_img_main.jpg", "priority": 4, "autoSelect": false } ], "subGenres": [] }, { "name": "性教育", "tags": [ { "name": "グリエルモ", "url": "guglielmo", "imageUrl": "https://image.yodobashi.com/product/100/000/086/600/704/437/100000086600704437_10203.jpg", "priority": 4, "autoSelect": false } ], "subGenres": [] } ] }, { "name": "ヒトミラタグ", "tags": [ { "name": "タグ有効化", "url": "tag/", "imageUrl": "undefined", "priority": 1, "autoSelect": true }, { "name": "ふたなり", "url": "female:futanari", "imageUrl": "undefined", "priority": 3, "autoSelect": false }, { "name": "TS", "url": "male:gender%20change", "imageUrl": "undefined", "priority": 3, "autoSelect": false }, { "name": "男の娘", "url": "female%3Ashemale", "imageUrl": "undefined", "priority": 3, "autoSelect": false }, { "name": "魔法少女", "url": "female%3Amagical%20girl", "imageUrl": "undefined", "priority": 3, "autoSelect": false }, { "name": "ロリ", "url": "female%3Aloli", "imageUrl": "undefined", "priority": 3, "autoSelect": false }, { "name": "潮吹き", "url": "female%3Asquirting", "imageUrl": "undefined", "priority": 3, "autoSelect": false }, { "name": "週間人気", "url": "popular/week/", "imageUrl": "undefined", "priority": 2, "autoSelect": false }, { "name": "月間人気", "url": "popular/month/", "imageUrl": "undefined", "priority": 2, "autoSelect": false }, { "name": "年間人気", "url": "popular/year/", "imageUrl": "undefined", "priority": 2, "autoSelect": false } ], "subGenres": [] }, { "name": "モモンガ作者", "tags": [], "subGenres": [ { "name": "ふたなり", "tags": [ { "name": "ひょうが。", "url": "cartoonist/ひょうが。/", "imageUrl": "https://img.momoniji.com/wp-content/uploads/b/55/5526/552669/c001.webp", "priority": 1, "autoSelect": false } ], "subGenres": [] }, { "name": "TS", "tags": [ { "name": "柚木", "url": "cartoonist/柚木/", "imageUrl": "https://img.honto.jp/series/1/0/240/C-MBJ-28246-3-484613X_1.jpg", "priority": 1, "autoSelect": false }, { "name": "安治ぽん太郎", "url": "cartoonist/安治ぽん太郎/", "imageUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQgZ21t8nk5iiZhdqvxkNQmA0Yy7AbsieWDYwdNGAF7sNDeYgxyvOwqrIn1xbN6UGrw9TU&usqp=CAU", "priority": 1, "autoSelect": false }, { "name": "べってぃ", "url": "group/あむぁいおかし製作所/", "imageUrl": "https://img.dlsite.jp/modpub/images2/work/doujin/RJ01369000/RJ01368004_img_main.jpg", "priority": 1, "autoSelect": false }, { "name": "あむぁい", "url": "group/あむぁいおかし製作所/", "imageUrl": "https://doujin-assets.dmm.co.jp/digital/comic/d_539881/d_539881pl.jpg", "priority": 1, "autoSelect": false }, { "name": "いわした", "url": "cartoonist/いわした/", "imageUrl": "https://comic.iowl.jp/_next/image?url=https%3A%2F%2Fcomic-image.iowl.jp%2Fimages%2Fthumbnail%2F2258%2F225830%2F225830_large.jpg&w=384&q=75", "priority": 1, "autoSelect": false }, { "name": "れいとうみかん", "url": "cartoonist/れいとうみかん/", "imageUrl": "https://img.papy.co.jp/lc/sc/item/cover/9-2711160-c400.jpg", "priority": 1, "autoSelect": false }, { "name": "ウェルト", "url": "cartoonist/ウェルト/", "imageUrl": "https://pbs.twimg.com/media/GE28a6faYAAbPRX?format=jpg&name=4096x4096", "priority": 1, "autoSelect": false }, { "name": "やすみみらきち", "url": "cartoonist/やすみみらきち/", "imageUrl": "https://t3.nhentai.website/galleries/2674229/cover.jpg", "priority": 1, "autoSelect": false }, { "name": "はちたろう", "url": "cartoonist/はちたろう/", "imageUrl": "https://i4.kurocore.com/i/lg/20241110100446/124155619-0.jpg", "priority": 1, "autoSelect": false } ], "subGenres": [] }, { "name": "男の娘", "tags": [ { "name": "佐々木武蔵", "url": "cartoonist/佐々木武蔵/", "imageUrl": "https://cdn.imagedeliveries.com/3037979/thumbnails/cover.jpg", "priority": 1, "autoSelect": false } ], "subGenres": [] }, { "name": "魔法少女", "tags": [ { "name": "山梨ユウヤ", "url": "cartoonist/山梨ユウヤ/", "imageUrl": "https://melonbooks.akamaized.net/user_data/packages/resize_image.php?image=232000033025.jpg&c=1&aa=0", "priority": 1, "autoSelect": false } ], "subGenres": [] }, { "name": "潮吹き", "tags": [ { "name": "ぽちたろ", "url": "cartoonist/ぽちたろ/", "imageUrl": "https://img.dlsite.jp/modpub/images2/work/doujin/RJ01074000/RJ01073400_img_main.jpg", "priority": 1, "autoSelect": false } ], "subGenres": [] }, { "name": "性教育", "tags": [ { "name": "グリエルモ", "url": "cartoonist/ぐりえるも/", "imageUrl": "https://image.yodobashi.com/product/100/000/086/600/704/437/100000086600704437_10203.jpg", "priority": 1, "autoSelect": false } ], "subGenres": [] } ] }, { "name": "モモンガタグ", "tags": [ { "name": "タグ有効化", "url": "tag/", "imageUrl": "undefined", "priority": 1, "autoSelect": true }, { "name": "ふたなり", "url": "futanari/", "imageUrl": "undefined", "priority": 2, "autoSelect": false }, { "name": "TS", "url": "gender-change/", "imageUrl": "undefined", "priority": 2, "autoSelect": false }, { "name": "男の娘", "url": "shemale/", "imageUrl": "undefined", "priority": 2, "autoSelect": false }, { "name": "魔法少女", "url": "magical-girl/", "imageUrl": "undefined", "priority": 2, "autoSelect": false } ], "subGenres": [] } ], "searchButtons": [ { "name": "ヒトミラ検索", "prefix": "https://hitomi.la/", "suffix": "-all.html" }, { "name": "モモンガ検索", "prefix": "https://momon-ga.com/", "suffix": "" } ]}; const style = document.createElement('style'); style.textContent = ` .bookmarklet-container { position: fixed; top: 0px; left: 0px; background: white; border: 1px solid #ccc; padding: 10px; z-index: 9999; box-shadow: 0 2px 10px rgba(0,0,0,0.1); transform: scale(1.5); transform-origin: top left; } .genre-section { margin-bottom: 10px; } .toggle { cursor: pointer; user-select: none; } .hidden { display: none; } .tag { display: flex; align-items: center; margin: 2px 0; } .tag img { width: 20px; height: 20px; margin-right: 5px; } .sub-genre { margin-left: 20px; border-left: 2px solid #eee; padding-left: 10px; } button { margin: 2px; } `; document.head.appendChild(style); const container = document.createElement('div'); container.className = 'bookmarklet-container'; const closeButton = document.createElement('button'); closeButton.textContent = '☒'; closeButton.onclick = () => container.remove(); container.appendChild(closeButton); function createGenreSection(genre, isSub = false) { const section = document.createElement('div'); section.className = `genre-section ${isSub ? 'sub-genre' : ''}`; const toggle = document.createElement('div'); toggle.className = 'toggle'; toggle.textContent = `▶ ${genre.name}`; const content = document.createElement('div'); content.className = 'hidden'; toggle.addEventListener('click', () => { content.classList.toggle('hidden'); toggle.textContent = `${content.classList.contains('hidden') ? '▶' : '▼'} ${genre.name}`; if (!content.classList.contains('hidden')) { genre.tags.forEach(t => { if (t.autoSelect) { const checkbox = content.querySelector(`input[data-url="${t.url}"]`); if (checkbox) checkbox.checked = true; } }); } else { const checkboxes = content.querySelectorAll('input[type="checkbox"]'); checkboxes.forEach(checkbox => checkbox.checked = false); } }); genre.tags.forEach(t => { const tag = document.createElement('label'); tag.className = 'tag'; tag.innerHTML = ` <input type="checkbox" data-url="${t.url}" data-priority="${t.priority}"> ${t.imageUrl ? `<img src="${t.imageUrl}" alt="${t.name}">` : ''} <span>${t.name}</span> `; content.appendChild(tag); }); genre.subGenres.forEach(sub => { content.appendChild(createGenreSection(sub, true)); }); section.appendChild(toggle); section.appendChild(content); return section; } config.genres.forEach(genre => { container.appendChild(createGenreSection(genre)); }); config.searchButtons.forEach(btn => { const button = document.createElement('button'); button.textContent = btn.name; button.onclick = () => { const visibleTags = Array.from(container.querySelectorAll('.genre-section:not(.hidden) .tag input[type=checkbox]')); const selected = visibleTags .filter(el => el.checked) .sort((a,b) => a.dataset.priority - b.dataset.priority) .map(el => el.dataset.url); const url = btn.prefix + selected.join('') + (btn.suffix || ''); window.open(url); }; container.appendChild(button); }); document.body.appendChild(container); })();
        }
    });
})();