Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // JDownloader2 EventScript - DL完了時に同じ名前のファイルを無効化
- //
- // DL完了時に同一パッケージ内に同じファイル名(拡張子を含まない)で
- // 未完了のリンクがあれば無効化
- // ※ ファイル拡張子が違えばミラーとして認識されず、パッケージの進捗状況を100%にならないため
- //
- //
- // トリガー:【ダウンロード停止時】
- //
- //
- // ミラー扱いする拡張子リスト
- // (おそらくZIPとRARで事足りる。nullだと全拡張子が対象)
- //
- ////////////////////////////////////////////////////////////////////////////////
- const MirrorDetect_Extensions = ['rar','zip'];
- //const MirrorDetect_Extension = null;
- ////////////////////////////////////////////////////////////////////////////////
- const SCRIPT_ID='48FBC19759B1B2DB9136746E0DD2B927';
- const SCRIPT_NAME='DL完了時に同じ名前のファイルを無効化';
- const SCRIPT_TRIGGER='ON_DOWNLOAD_CONTROLLER_STOPPED';
- const SCRIPT_VERSION='1.01';
- function getFileName(f) // Or FolderName
- {
- var r = f.match(/([^\\\/\:]*)[\\\/]*$/);
- return r ? r[1] : '';
- }
- function getExt(f)
- {
- var x = getFileName(f);
- var r = x.match(/(\.[\da-z]{2,6})$/i);
- return r ? r[1] : '';
- }
- function getFileSpec(f)
- {
- var x = getFileName(f);
- var r = x.match(/^([^\\\/\:]*?)(\.[\da-z]{2,6})?$/i);
- return r ? r[1] : f;
- }
- function checkMirror(l_param)
- {
- var ln = l_param.name;
- var mde_regexp = null;
- if (MirrorDetect_Extensions && MirrorDetect_Extensions.length)
- {
- mde_regexp = new RegExp('^\.(?:'+MirrorDetect_Extensions.join('|')+')$','i');
- if (false == mde_regexp.test(getExt(ln)))
- return;
- }
- var fs = getFileSpec(ln);
- var p = l_param.package;
- p.downloadLinks.forEach(function (p_l)
- {
- // 拡張子抜きのファイル名が一致して未完了だったら無効化する
- var n = p_l.name;
- if (fs == getFileSpec(n) && ( mde_regexp === null || mde_regexp.test(getExt(n)) ) && false == p_l.isFinished())
- p_l.setEnabled(false);
- });
- }
- // ダウンロード停止時
- var l = null;
- try{
- l=link
- }catch(e){
- throw Error(
- 'イベントトリガーのタイプが正しく設定されていません\r\n\r\n'+
- '解決方法:イベントスクリプトの設定から本スクリプトのトリガーに\r\n'+
- ' 【ダウンロード停止時】を選択し、\r\n'+
- ' リストビュー画面の右クリックのコンテキストメニューから実行してください\r\n'
- );
- }
- if (l && l.isFinished() && ! l.package.isFinished())
- {
- checkMirror(l);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement