Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // JDownloader2 EventScript - リネーム系アクション集用メニューインポーター
- //
- //
- // 拙作のリネーム系のEventTriggerアクション集に対応したメニュー項目を
- // メニュー管理画面からちまちまと手動で追加しなくてもいいように
- // JDのコンテキストメニューに一気に登録するEventScriptです
- //
- // 実行後は必ずJDを再起動してください
- //
- // 追加されたメニュー項目は、メニュー管理画面を開き
- // 各々好きなように移動・編集・削除等してください
- //
- // 【必須環境】
- // JD2 + WindowsScriptHosting(WSH)
- //
- // ※WSHは確認メッセージボックスに使用しています
- // そのコード部分は use_WSH=false とすれば不要ですが、
- // 確認なしにインポートと再起動が行われます
- //
- // 【使い方】
- // 1. [イベントスクリプト]→[追加]→[編集] (※ここで追加した無名スクリプトは、後で削除してください)
- // 2. このスクリプトファイルの内容をすべて貼り付ける→
- // 3. [試行]ボタンを押す
- // 4. インポートするメニューで「はい」を選ぶ
- // 5. JD2を再起動
- // 6. ダウンロードリスト画面、リンクグラバー画面
- // それぞれのメニュー管理画面から好きなように編集
- //
- const separator_name='セパレータ';
- const use_WSH = true;
- //const use_WSH = false;
- function rebuildMenu(x)
- {
- function r(m)
- {
- // Set default value
- if (! ('visible' in m)) m['visible'] = true;
- if (! ('shortcut'in m)) m['shortcut'] = null;
- if (! ('mnemonic'in m)) m['mnemonic'] = null;
- if (! ('iconKey' in m)) m['iconKey'] = null;
- if (('items' in m) && m['items'].length)
- {
- m['type'] = 'CONTAINER';
- m['className'] = 'org.jdownloader.controlling.contextmenu.MenuContainer';
- m['actionData'] = {};
- m['items'].forEach(function(val,idx,list){
- r(list[idx]);
- });
- }
- else if (m['name']==separator_name)
- {
- m['type'] = 'ACTION';
- m['className'] = 'org.jdownloader.controlling.contextmenu.SeparatorData';
- m['actionData'] = {};
- m['items'] = [];
- }
- else
- {
- m['type'] = 'ACTION';
- m['className'] = null;
- m['actionData'] = {'clazzName':'org.jdownloader.extensions.eventscripter.GenericEventScriptTriggerContextMenuAction'};
- m['items'] = [];
- }
- // if (m['visible']) true;
- }
- if (Array.isArray(x))
- x.forEach(function(val,idx,list){r(list[idx])});
- else
- (r)(x);
- }
- function getRootContextMenu(context) {
- var storage = "cfg/menus_v2/" + context;
- var interface = "org.jdownloader.controlling.contextmenu.ContextMenuConfigInterface";
- var root_menu = callAPI(
- "config", "get",
- interface,
- storage,
- "menu"
- );
- return root_menu;
- }
- function setRootContextMenu(root_menu, context) {
- var storage = "cfg/menus_v2/"+context;
- var interface = "org.jdownloader.controlling.contextmenu.ContextMenuConfigInterface";
- return callAPI(
- "config", "set",
- interface,
- storage,
- "menu",
- root_menu
- );
- }
- function addMenuToContextMenu(menu_items, context)/* context = "DownloadTableContext" | "LinkgrabberContext" */
- {
- const c = context||"DownloadTableContext";
- var root_container = getRootContextMenu(c);
- if (root_container && root_container.type == 'CONTAINER' && Array.isArray(root_container.items))
- {
- if (Array.isArray(menu_items))
- menu_items.forEach(function(menu_item){root_container.items.push(menu_item);});
- else
- root_container.items.push(menu_items);
- setRootContextMenu(root_container, c);
- }
- }
- //
- // WSHを利用し確認メッセージボックスを表示して結果を得る
- //
- function ConfirmBox(message, title)
- {
- var ret = "";
- var created = false;
- var rand_str = Math.random().toString(36).slice(-8);
- // TEMPフォルダにJSファイルを作成し、cscript.exeで実行
- var tempdir = getEnv("TEMP");
- var tempfile = tempdir+"\\"+"JD_confirm_"+rand_str+".js";
- var scriptdata =
- 'var a=WScript.Arguments;if(0<a.Count()){var t="",m=a.Item(0);'
- +'1<a.Count()&&(t=a.Item(1));var s=new ActiveXObject("WScript.Shell");'
- +'1==s.Popup(m,-1,t,33)&&WScript.StdOut.Write("OK");s=null};';
- var f = getPath(tempfile);
- try
- {
- if (f.exists())
- {
- f.deleteFile(tempfile,false);
- }
- writeFile(tempfile, scriptdata, false);
- created = true;
- ret = callSync('cscript.exe',"//NOLOGO",tempfile,message||"",title||"");
- }
- catch(e)
- {
- }
- finally
- {
- if (created) deleteFile(tempfile,false);
- }
- return ret=="OK";
- }
- var menu_items =
- [
- {"name":separator_name},
- {
- "name":"リネーム - ファイル名を揃える",
- "iconKey":"edit",
- "items":[
- {"name":"パッケージ名でファイル名を揃える"},
- {"name":"このファイル名でパッケージ内を全て揃える"},
- {"name":separator_name},
- {"name":"ファイル名を揃える"},
- {"name":"ファイル名(作者名)を揃える"},
- {"name":"ファイル名(タイトル)を揃える"},
- {"name":"ファイル名(カテゴリ+作者名+タイトル)を揃える"},
- {"name":separator_name},
- {"name":"[]内のスワップ"},
- {"name":"[]内の末尾切り捨て"},
- {"name":"[]内のxを×に変換"},
- {"name":separator_name},
- {"name":"第○○巻化"},
- {"name":"連番桁揃え"},
- {"name":separator_name},
- {"name":"先頭括弧を後方送り"},
- {"name":"末尾の括弧削除"}
- ]
- },
- {
- "name":"リネーム - 修正/追加/置換",
- "iconKey":"edit",
- "items":[
- {"name":"(一般コミック) >>"},
- {"name":"(一般コミック・少女) >>"},
- {"name":"(一般コミック) [雑誌] >>"},
- {"name":"(一般小説) >>"},
- {"name":"(一般書籍) >>"},
- {"name":"(成年コミック) >>"},
- {"name":"(成年コミック) [雑誌] >>"},
- {"name":"(同人誌) >>"},
- {"name":"(同人CG集) >>"},
- {"name":"(18禁アニメ) >>"},
- {"name":separator_name},
- {"name":"<< 別スキャン"},
- {"name":"<< 単行本"},
- {"name":"<< 透かし有り"},
- {"name":"<< 寄せ集め"}
- ]
- },
- {
- "name":"移動/ファイル/再登録",
- "iconKey":"folder_add",
- "items":[
- {"name":"この名前を使用して新しいパッケージに移動", "iconKey":"folder_add"},
- {"name":"同じ名前のパッケージをまとめる"},
- {"name":"リンクを同じ名前のパッケージに移動"},
- {"name":separator_name},
- {"name":"リンクグラバーへ再登録","iconKey":"linkgrabber"},
- {"name":separator_name},
- {"name":"JDバックアップフォルダを開く"},
- {"name":"登録元ページを開く","iconKey":"search"}
- ]
- },
- {
- "name":"有効/無効",
- "iconKey":"checkbox_true",
- "items":[
- {"name":"優先ホスト以外を無効"},
- {"name":separator_name},
- {"name":"frdl.to以外を無効"},
- {"name":"dailyuploads.net以外を無効"},
- {"name":"dashfile.net以外を無効"},
- {"name":"btafile.com以外を無効"},
- {"name":separator_name},
- {"name":"uploadbank.netを無効"},
- {"name":"rosefile.netを無効"}
- ]
- },
- {
- "name":"EveryThingで検索(作者名)",
- "iconKey":"search",
- "shortcut" :"pressed F1"
- },
- {
- "name":"EveryThingで検索(タイトル)",
- "iconKey":"search"
- },
- {
- "name":"ブラウザで開く",
- "iconKey":"search"
- },
- {
- "name":"WEBで検索",
- "iconKey":"url",
- "items":[
- {"name":"888**.ps"},
- {"name":"x***.net"},
- {"name":"*****.se"},
- {"name":"bs***.com"},
- {"name":"raw*****.cc"},
- {"name":separator_name},
- {"name":"******core.***"},
- {"name":"******omg.***"},
- {"name":"n******.net"},
- {"name":separator_name},
- {"name":"google.com (作者)"},
- {"name":"google.com (タイトル)"},
- ]
- }
- ];
- rebuildMenu(menu_items);
- var restart_f = 0;
- if ((!use_WSH) || ConfirmBox("ダウンロードリストのコンテキストメニューにメニューを追加します\r\nよろしいですか?","確認"))
- addMenuToContextMenu(menu_items, "DownloadTableContext") || restart_f++;
- if ((!use_WSH) || ConfirmBox("リンクグラバーのコンテキストメニューにメニューを追加します\r\nよろしいですか?","確認"))
- addMenuToContextMenu(menu_items, "LinkgrabberContext") || restart_f++;
- if ((!use_WSH) || restart_f && ConfirmBox("設定の反映にはJDownloaderの再起動が必要です\r\n今すぐ再起動しますか?","JD再起動確認"))
- callAPI("system","restartJD");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement