Advertisement
usamimi2323

userscript - hentaiomg 日本語タイトルJD2登録用リンク置換スクリプト

Oct 2nd, 2024 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.20 KB | Source Code | 0 0
  1. // ==UserScript==
  2. // @name        hentaiomg
  3. // @namespace   newsox
  4. // @description hentaiomg 日本語タイトルJD2登録用リンク置換スクリプト
  5. // @include     https://hentaiomg.*/*
  6. // @version     1
  7. // @grant       none
  8. // ==/UserScript==
  9.  
  10. /*
  11. hentaiomg 用ユーザースクリプト
  12. (ブラウザ拡張のGreasemonkey等で使用)
  13.  
  14.  要JDownloader2
  15.  (要JD2パッケージャールール https://pastebin.com/88EC6yQH)
  16.  
  17.  ※ 『詳細リンク解析』オン (DeepDecryptオン)
  18.  (詳細分析自動有効化 https://pastebin.com/y8GSQ2D2)
  19.  
  20.  ※ iPhoneのSafari(userscript拡張必須) + MyJDアプリでも可
  21.  
  22.  ローカルファイル検索には要EveryThing
  23. */
  24.  
  25. {
  26.     let jdkey='#jdl=';
  27.     let mod_f='JDL_MOD';
  28.     var D=document;
  29.     let c='';
  30.    
  31.     // fadeIn無効化
  32.     D.body.classList.remove('gridmag-fadein');
  33.     // 背景を消去
  34.     D.getElementsByTagName('body')[0].style.backgroundImage='url()';
  35.     // 上部のロゴを消去
  36.     {let x=D.getElementById('gridmag-header');x&&x.remove();}
  37.     // カレンダー消去
  38.     {let x=D.getElementById('calendar_wrap');x&&x.remove();}
  39.    
  40.     let a=D.querySelector('article');
  41.     if (a && !a.getAttribute(mod_f))
  42.     {
  43.         a.setAttribute(mod_f, '1');
  44.         // カテゴリを取得
  45.         let o=a.classList;
  46.         if(o.contains('category-h-manga'))              c='(成年コミック) ';
  47.         else if(o.contains('category-h-anime'))         c='(18禁アニメ) ';
  48.         else if(o.contains('category-h-doujinshi'))     c='(同人誌) ';
  49.         else if(o.contains('category-doujin-anime'))    c='(同人アニメ) ';
  50.         else if(o.contains('category-h-game'))          c='(18禁ゲーム) ';
  51.         else if(o.contains('category-h-game-cg'))       c='(18禁ゲームCG集) ';
  52.         else if(o.contains('category-h-doujin-game'))   c='(同人ゲーム) ';
  53.         let h1=D.querySelector('h1.post-title');
  54.         if (h1)
  55.         {
  56.             // タイトル取得
  57.             let t=h1.textContent.trim().replace(/【RAW】$/,'').replace(/^\[\d{6}\] */,'');
  58.             let fset=D.querySelectorAll('fieldset');
  59.             if (fset && fset.length >= 2)
  60.             {
  61.                 // DLリンク編集
  62.                 let links = fset[1].querySelectorAll('a');
  63.                 links.forEach(e=>{
  64.                     e.href = e.href+jdkey+encodeURIComponent(c+t);
  65.                 });
  66.                 // EveryThing用タグ挿入
  67.                 let g = a.querySelector('div.entry-header-inside');
  68.                 if (!g.getAttribute(mod_f))
  69.                 {
  70.                     var tags = {};
  71.                     let v = t.match(/^\[([^\]]+?)\]/);
  72.                     if (v&&v[1]!='雑誌'&&v[1]!='アンソロジー') v[1].split(/[×&&]/).forEach(u=>tags[u.trim()]=1);
  73.                     v = t.replace(/^(?:\([^\)]+\) *)*(?:\[[^\]]+\] *)*/,"").match(/^([a-zA-Z]+(?: [a-zA-Z]+)+)\b|((?:COMIC|コミック) *)?[^ \!!\??@]+/);
  74.                     if (v) tags[((v[1]||v[2])?`"${v[0]}"`:v[0]).replace(/[第全]\d+(?:-\d+)?巻$/,"").replace(/[\!!\??\.。]+$/,"").replace(/([--―~]).+?\1.*$/,"")]=1;
  75.                     let tmp1 = '<div class="everything_tag gridmag-entry-meta-single"><i class="fa fa-search-plus"></i> <span id="everything_tag" class="tag-list">';
  76.                     tmp1 += Object.keys(tags).map(itr=>('<a href="es:' + itr + '" title=' + itr + "'>" + itr + '</a>')).join(', ');
  77.                     tmp1 += '</span></div>';
  78.                     g.insertAdjacentHTML("beforeend", tmp1);
  79.                 }
  80.                 // DLリンクを上に移動
  81.                 fset[0].parentNode.insertBefore(fset[1], fset[0]);
  82.             }
  83.         }
  84.     }
  85. }
  86.  
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement