Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * JDownloader2 EventScript - DL完了時にパッケージを一番上へ移動
- *
- * ※ 完了パッケージ以外の一番上
- * topOfTop=trueにすれば単なる一番上
- *
- *
- * ■「想定レイアウト」
- * ----------------------------
- * ○完了パッケージ
- * ○完了パッケージ
- * ○完了パッケージ
- * △ダウンロード中…パッケージ
- * △ダウンロード中…パッケージ
- * □未完了パッケージ
- * □未完了パッケージ
- * □未完了パッケージ
- * □未完了パッケージ
- * ・
- * ・
- * ・
- * ----------------------------
- * [トリガー]:"ダウンロード停止時"
- *
- */
- /** @type {boolean} 本当の一番上にしたければ、topOfTopをtrueにする */
- //const topOfTop = true;
- const topOfTop = false;
- /** @enum {number} */
- const movePackagesTo = {
- top:0,
- bottom:-1,
- };
- /**
- * パッケージを移動します
- *
- * ※ callAPIのmovePackagesは、after_dest==(0|-1)でTOPに移動するので
- * -1をbottomとみなし値を設定し直す
- *
- * @param {number[]} packs 移動するパッケージUUIDの配列
- * @param {number} after_dest 指定したUUIDのパッケージの下に移動する
- * (movePackagesTo.top=0|movePackagesTo.bottom=-1|package.UUID)
- */
- function movePackages(pack_uuids, after_dest)
- {
- if (!pack_uuids || !Array.isArray(pack_uuids) || !pack_uuids.length) return;
- if (after_dest === undefined)
- after_dest = movePackagesTo.top;
- else if (after_dest == movePackagesTo.bottom)
- {
- const all_p = getAllFilePackages();
- if (all_p.length <= 1) return;
- after_dest = all_p.pop().UUID;
- }
- callAPI('downloadsV2', 'movePackages', pack_uuids, after_dest);
- }
- // ダウンロード停止時
- var _link = null;
- try{
- _link = link
- }catch(e){
- throw Error(
- 'イベントトリガーのタイプが正しく設定されていません\r\n\r\n'+
- '解決方法:イベントスクリプトの設定から本スクリプトのトリガーに\r\n'+
- ' 【ダウンロード停止時】を選択し、\r\n'+
- ' リストビュー画面の右クリックのコンテキストメニューから実行してください\r\n'
- );
- }
- if (_link && _link.isFinished())
- {
- if (! _link.package.isFinished())// wait
- sleep(100);
- if (_link.package.isFinished())
- {
- var dest = movePackagesTo.top;
- if (topOfTop || getAllFilePackages().some(function(p)
- {
- if (!p.isFinished()) return true;
- dest = p.UUID;
- return false;
- }))
- movePackages([_link.package.UUID], dest);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement