もっともっと甘えさせて見せるからの!楽しみにしておれ!
查看: 96|回复: 3

【百度网盘】【IDM】纯破解教程 2019年4月17日新版

[复制链接]
我的人缘0
  • TA的每日心情
    开心
    2019-4-27 12:46
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    2

    主题

    94

    帖子

    2

    积分

    用户组:注册魔法使

    樱花[A]18 瓣
    雨露[B]0 滴
    次元币199 枚
    勋章币160 枚
    祝福宝石50 个
    红钻15 个
    白钻10 个
    注册时间2018-6-27
    最后登录2019-6-20
    发表于 2019-4-17 20:26:21 | 显示全部楼层 |阅读模式
    链接: https://pan.baidu.com/s/11lEk2oiMfOVT3dclut4fAQ
    游客,如果您要查看本帖隐藏内容请回复

    需要对应你自己浏览器版本的油猴插件
    手动添加脚本如下
    1. // ==UserScript==
    2. // @name         EX-百度云盘
    3. // @namespace    https://github.com/gxvv/ex-baiduyunpan/
    4. // @version      0.3.3
    5. // @description  [下载大文件] [批量下载] [文件夹下载] [百度网盘] [百度云盘] [企业版]
    6. // @description  [baidu] [baiduyun] [yunpan] [baiduyunpan] [eyun]
    7. // @author       gxvv
    8. // @license      MIT
    9. // @supportURL   https://github.com/gxvv/ex-baiduyunpan/issues
    10. // @date         01/01/2017
    11. // @modified     20/08/2018
    12. // @match        *://pan.baidu.com/disk/home*
    13. // @match        *://yun.baidu.com/disk/home*
    14. // @match        *://pan.baidu.com/s/*
    15. // @match        *://yun.baidu.com/s/*
    16. // @match        *://pan.baidu.com/share/link?*
    17. // @match        *://yun.baidu.com/share/link?*
    18. // @match        *://eyun.baidu.com/s/*
    19. // @match        *://eyun.baidu.com/enterprise/share/link?*
    20. // @run-at       document-end
    21. // @grant        unsafeWindow
    22. // @grant        GM_addStyle
    23. // @grant        GM_info
    24. // @require      https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js
    25. // @require      https://cdn.bootcss.com/clipboard.js/1.5.16/clipboard.min.js
    26. // ==/UserScript==

    27. /* jshint ignore:start */
    28. var inline_src = (<><![CDATA[
    29.     /* jshint ignore:end */
    30.     /* jshint esnext: false */
    31.     /* jshint esversion: 6 */

    32.     (({require, define, Promise}) => {
    33.         let showError = msg => {
    34.             GM_addStyle(`#errorDialog {position: fixed;top: 76.5px; bottom: auto; left: 423px; right: auto;background: #fff;border: 1px solid #ced1d9;border-radius: 4px;box-shadow: 0 0 3px #ced1d9;color: black;word-break: break-all;display: block;width: 520px;padding: 10px 20px;z-index: 9999;}
    35. #errorDialog h3 {border-bottom: 1px solid #ced1d9;font-size: 1.5em;font-weight: bold;}
    36. #errorDialog .very-very-important {font-size: 20px;font-weight: bold;}
    37. `);
    38.             let div = document.createElement('div');

    39.             div.innerHTML = `<div id="errorDialog">
    40. <h3>EX-baiduyunpan:程序异常</h3>
    41. <div class="dialog-body">
    42. <p>
    43. 请尝试
    44. <a href="https://gxvv.github.io/ex-baiduyunpan/EX-baiduyunpan.user.js" target="_blank">更新脚本</a>
    45. 或复制以下信息
    46. <a href="https://github.com/gxvv/ex-baiduyunpan/issues" target="_blank">提交issue</a>
    47. <span class="very-very-important">(请不要提交重复的issue)</span>
    48. </p>
    49. <p>Exception: ${msg}</p>
    50. <p>Script Ver: ${GM_info.script.version}</p>
    51. <p>TemperMonkey Ver: ${GM_info.version}</p>
    52. <p>UA: ${navigator.userAgent}</p>
    53. </div>
    54. <hr>
    55. <a class="close" href="javascript:;">关闭</a>
    56. </div>`;
    57.             div.addEventListener('click', div.remove);
    58.             document.body.appendChild(div);
    59.         };

    60.         define('ex-yunpan:pageInfo', () => {
    61.             const URL_HREF = location.href;
    62.             const MATCHS = {
    63.                 'https?://(pan|yun).baidu.com/disk/home.*': 'pan',
    64.                 'https?://(pan|yun).baidu.com/s/.*': 'share',
    65.                 'https?://(pan|yun).baidu.com/share/link\?.*': 'share',
    66.                 'https?://eyun.baidu.com/(s|enterprise)/.*': 'enterprise'
    67.             };
    68.             const PAGE_CONFIG = {
    69.                 pan: {
    70.                     prefix: 'function-widget-1:',
    71.                     product: 'pan',
    72.                     containers: ['.g-button[title="\u79bb\u7ebf\u4e0b\u8f7d"]'],
    73.                     style: () => {}
    74.                 },
    75.                 share: {
    76.                     prefix: 'function-widget-1:',
    77.                     product: 'share',
    78.                     containers: [
    79.                         'div:not(.file-name)>div>.x-button-box>.g-button[title^="\u4e0b\u8f7d"]',
    80.                         '.module-share-top-bar .x-button-box>.g-button[title="\u4e0b\u8f7d"]'
    81.                     ],
    82.                     style: () => {
    83.                         let style = `.KPDwCE .QxJxtg {z-index: 2;}
    84. .module-share-header .slide-show-right {width: auto;}
    85. .ex-yunpan-dropdown-button.g-dropdown-button.button-open .menu {z-index:41;}
    86. .module-share-header .slide-show-header h2 {width:210px;}
    87. .g-dropdown-button.ex-yunpan-dropdown-button {margin: 0 5px!important;}`;

    88.                         GM_addStyle(style);
    89.                     }
    90.                 },
    91.                 enterprise: {
    92.                     prefix: 'business-function:',
    93.                     product: 'enterprise',
    94.                     containers: ['div:not(.operate)>.button-box-container>.g-button[title="\u4e0b\u8f7d"]'],
    95.                     style: () => {
    96.                         let style= `.ex-yunpan-dropdown-button .icon-download{background-image: url(/box-static/business-function/infos/icons_z.png);}
    97. .ex-yunpan-dropdown-button .g-button:hover .icon-download{background-position: 0px -34px;}`;

    98.                         GM_addStyle(style);
    99.                     }
    100.                 }
    101.             };
    102.             let currentPage = 'pan';

    103.             for (let match in MATCHS) {
    104.                 if (new RegExp(match).test(URL_HREF)) {
    105.                     currentPage = MATCHS[match];
    106.                     break;
    107.                 }
    108.             }
    109.             return PAGE_CONFIG[currentPage];
    110.         });

    111.         define('ex-yunpan:ctx', require => {
    112.             let {product} = require('ex-yunpan:pageInfo');
    113.             let prefix = product === 'enterprise' ? 'business-core:' : 'system-core:';
    114.             let {instanceForSystem: ctx} = require(`${prefix}context/context.js`);

    115.             return ctx;
    116.         });

    117.         define('ex-yunpan:pluginInit', async require => {
    118.             let ctx = require('ex-yunpan:ctx');
    119.             let {prefix} = require('ex-yunpan:pageInfo');
    120.             let {pageInfo: {currentProduct = 'pan'} = {currentProduct: 'pan'}} = ctx;
    121.             let currPrdIsEyun = currentProduct === 'enterprise';

    122.             require.async(`${prefix}download/service/guanjiaConnector.js`, gjc => {
    123.                 gjc.init = () => ctx.ui.tip({mode: 'caution',
    124.                                              msg: 'EX-baiduyunpan: 检测到正在调用云管家,若脚本失效,请检查更新',
    125.                                              autoClose: false,
    126.                                              hasClose: true});
    127.             });
    128.             let ddsScript = currPrdIsEyun ? 'downloadDirectService.js' : 'downloadDirect.js';

    129.             require.async(`${prefix}download/service/${ddsScript}`, dds => {
    130.                 let funName = currPrdIsEyun ? 'straightforwardDownload' : 'start';
    131.                 let _ = dds[funName];

    132.                 if (typeof _ !== 'function') return;
    133.                 dds[funName] = (...args) => {
    134.                     ctx.ui.tip({mode: 'loading',
    135.                                 msg: 'EX-baiduyunpan: 正在开始下载...'});
    136.                     _.apply(null, args);
    137.                 };
    138.             });
    139.             require.async(`${prefix}download/util/context.js`, context => {
    140.                 context.getContext = () => ctx;
    141.             });
    142.             let limitedIsRemoved = await new Promise((resolve, reject) => {
    143.                 unsafeWindow.addEventListener('load', () => reject(false));
    144.                 if (currPrdIsEyun) {
    145.                     require.async(`${prefix}download/service/downloadManager.js`, dm => {
    146.                         dm.MODE_PRE_INSTALL = dm.MODE_PRE_DOWNLOAD;
    147.                         resolve(true);
    148.                     });
    149.                 } else {
    150.                     require.async(`${prefix}download/config.js`, config => {
    151.                         [].push.apply(config.directDownloadkeysConfig, config.guanjiaDownloadkeysConig);
    152.                         config.guanjiaDownloadkeysConig = [];
    153.                         resolve(true);
    154.                     });
    155.                 }
    156.             }).catch(result => false);

    157.             if (limitedIsRemoved) {
    158.                 let tipConfig = {
    159.                     mode: 'success',
    160.                     msg: 'EX-baiduyunpan: 插件加载成功'
    161.                 };

    162.                 try {
    163.                     await require('ex-yunpan:downloadBtnInit');
    164.                 } catch (e) {
    165.                     tipConfig = {
    166.                         mode: 'caution',
    167.                         msg: 'EX-baiduyunpan: 插件加载成功,按钮初始化失败',
    168.                         autoClose: false,
    169.                         hasClose: true
    170.                     };
    171.                 }
    172.                 ctx.ui.tip(tipConfig);
    173.             } else {
    174.                 if(document.querySelector('#share_nofound_des,#error-info') !== null) return;
    175.                 throw new Error('插件加载失败 core crack failed');
    176.             }
    177.         });

    178.         define('ex-yunpan:downloadBtnInit', async require => {
    179.             let ctx = require('ex-yunpan:ctx');
    180.             let {pageInfo: {currentProduct = ''} = {currentProduct: ''}} = ctx;
    181.             let pageInfo = require('ex-yunpan:pageInfo');
    182.             let {prefix} = pageInfo;
    183.             let fetchDownLinks = require('ex-yunpan:fetchDownLinks');
    184.             let menus = [
    185.                 {
    186.                     title: '普通下载',
    187.                     click: () => {
    188.                         let {start} = require(`${prefix}download/start.js`);

    189.                         start(ctx);
    190.                     },
    191.                     enablePrd: ['pan', 'share', 'enterprise']
    192.                 }, {
    193.                     title: '复制链接',
    194.                     click: async () => {
    195.                         let result = await fetchDownLinks();

    196.                         if (result.length === 0) return;
    197.                         let {show} = require('ex-yunpan:clipboardDialog');

    198.                         show(result);
    199.                     },
    200.                     enablePrd: ['pan', 'share', 'enterprise']
    201.                 }, {
    202.                     title: '复制压缩链接',
    203.                     click: async () => {
    204.                         let result = await fetchDownLinks('batch');

    205.                         if (result.length === 0) return;
    206.                         let {show} = require('ex-yunpan:clipboardDialog');

    207.                         show(result);
    208.                     },
    209.                     enablePrd: ['pan', 'share', 'enterprise']
    210.                 }, {
    211.                     title: `<iframe src="https://ghbtns.com/github-btn.html?user=gxvv&repo=ex-baiduyunpan&type=star&count=true"
    212. frameborder="0" scrolling="0" style="margin-top: 6px;height: 20px;width: 170px;"></iframe>`,
    213.                     enablePrd: ['pan', 'share', 'enterprise']
    214.                 }
    215.             ];
    216.             let exDlBtnConfig = {
    217.                 type: 'dropdown',
    218.                 title: 'EX-下载',
    219.                 resize: true,
    220.                 menu: menus.filter(menu => ~menu.enablePrd.indexOf(currentProduct)),
    221.                 icon: 'icon-download'
    222.             };
    223.             let selectors = pageInfo.containers.join();
    224.             let elements = [].slice.call(document.querySelectorAll(selectors) || [], 0);

    225.             elements.forEach(element => {
    226.                 let exDlBtn = ctx.ui.button(exDlBtnConfig);

    227.                 exDlBtn.dom.addClass('ex-yunpan-dropdown-button').insertAfter(element);
    228.                 exDlBtn.resizeButtonWidth();
    229.             });
    230.             pageInfo.style();
    231.         });

    232.         define('ex-yunpan:fetchDownLinks', () => {
    233.             let ctx = require('ex-yunpan:ctx');
    234.             let {prefix} = require('ex-yunpan:pageInfo');
    235.             let dServ = null;

    236.             new Promise((resolve, reject) => {
    237.                 unsafeWindow.addEventListener('load', () => reject());
    238.                 require.async(`${prefix}download/service/dlinkService.js`, dlinkService => resolve(dlinkService));
    239.             }).then(dlinkService => dServ = dlinkService).catch(() => dServ = false);
    240.             let fetchDownLinks = async type => {
    241.                 let selectedList = ctx.list.getSelected();

    242.                 if (selectedList.length === 0) {
    243.                     ctx.ui.tip({mode: 'caution',
    244.                                 msg: 'EX-baiduyunpan: 您还没有选择下载的文件'});
    245.                     return [];
    246.                 }
    247.                 let {pageInfo: {currentProduct = 'pan'} = {currentProduct: 'pan'}} = ctx;
    248.                 let foldersList = selectedList.filter(item => item.isdir === 1);
    249.                 let filesList = selectedList.filter(item => item.isdir === 0);

    250.                 if (filesList.length > 0 && currentProduct !== 'enterprise' && type === 'nolimit') {
    251.                     foldersList.unshift(filesList);
    252.                 } else {
    253.                     [].push.apply(foldersList, filesList);
    254.                 }
    255.                 ctx.ui.tip({mode: 'loading',
    256.                             msg: '开始请求链接...'});
    257.                 let requestMethod;

    258.                 if (currentProduct === 'pan') {
    259.                     requestMethod = (list, callback) => {
    260.                         dServ.getDlinkPan(dServ.getFsidListData(list),
    261.                                           type || (list.isdir === 1 ? 'batch' : 'nolimit'),
    262.                                           callback,
    263.                                           undefined,
    264.                                           undefined,
    265.                                           'POST');
    266.                     };
    267.                 } else if (currentProduct === 'share') {
    268.                     let {shareid, uk, sign, timestamp} = require('disk-share:widget/data/yunData.js').get();

    269.                     requestMethod = (list, callback) => {
    270.                         dServ.getDlinkShare({
    271.                             list,
    272.                             sign,
    273.                             timestamp,
    274.                             share_id: shareid,
    275.                             share_uk: uk,
    276.                             type: type || (list.isdir === 1 ? 'batch' : 'nolimit')
    277.                         }, callback);
    278.                     };
    279.                 } else {
    280.                     let {shareid, uk, sign, timestamp} = require('page-common:widget/data/yunData.js').get();

    281.                     requestMethod = (list, callback) => {
    282.                         dServ.getDlinkShare({
    283.                             sign,
    284.                             timestamp,
    285.                             share_id: shareid,
    286.                             share_uk: uk,
    287.                             list: [list],
    288.                             isForBatch: type === 'batch'
    289.                         }, callback);
    290.                     };
    291.                 }
    292.                 let timeout = foldersList.length === 1 ? 3e4 : 3e3;
    293.                 let promises = foldersList.map(e => new Promise((resolve, reject) => {
    294.                     setTimeout(() => resolve(Object.assign({}, e)), timeout);
    295.                     requestMethod(e, result => resolve(Object.assign({}, e, result)));
    296.                 }));
    297.                 let result = await Promise.all(promises);

    298.                 ctx.ui.hideTip();
    299.                 let failedRes = result.filter(res => res.errno !== 0);

    300.                 if (failedRes.length > 0) {
    301.                     try {
    302.                         dServ.dialog.hide();
    303.                     } catch (e) {/* do nothing */}
    304.                     ctx.ui.tip({mode: 'caution',
    305.                                 msg: `EX-baiduyunpan: ${failedRes.length}个文件请求链接失败`});
    306.                 }
    307.                 let dlinks = [];

    308.                 result.filter(res => res.errno === 0).forEach(res => {
    309.                     if (typeof res.dlink === 'string') {
    310.                         let fileType = res.isdir ? '【文件夹】' : '【文件】';
    311.                         let packNameEncode =  encodeURIComponent(`${fileType}${res.server_filename}.zip`);
    312.                         let dlink = `${res.dlink}&zipname=${packNameEncode}`;

    313.                         dlinks.push(res.dlink && dlink);
    314.                     } else {
    315.                         let linklist = res.dlink || res.list || [];

    316.                         [].push.apply(dlinks, linklist.map(e => e.dlink));
    317.                     }
    318.                 });
    319.                 if (dlinks.length === 0) {
    320.                     ctx.ui.tip({mode: 'caution',
    321.                                 msg: 'EX-baiduyunpan: 未获取到下载链接,请重试'});
    322.                 }
    323.                 return dlinks;
    324.             };

    325.             return fetchDownLinks;
    326.         });
    327.         define('ex-yunpan:clipboardDialog', () => {
    328.             let ctx = require('ex-yunpan:ctx');
    329.             let show = list => {
    330.                 let clipboard;
    331.                 let maxrow = list.length > 10 ? 11 : list.length + 1;
    332.                 let textareaHtml = `<textarea id="ExTextArea" rows="${maxrow}"
    333. style="width: 100%;white-space: nowrap;resize: none">${list.join('\n')}</textarea>`;
    334.                 let dialog = ctx.ui.confirm({
    335.                     title: '复制链接',
    336.                     body: textareaHtml,
    337.                     sureText: '复制',
    338.                     onClose: () => {
    339.                         if (clipboard && clipboard.destory) {
    340.                             clipboard.destroy();
    341.                         }
    342.                     }
    343.                 });

    344.                 dialog.buttonIns[0].dom.attr({
    345.                     'data-clipboard-action': 'copy',
    346.                     'data-clipboard-target': '#ExTextArea'
    347.                 }).addClass('ex-clip-btn').off();
    348.                 clipboard = new Clipboard('.ex-clip-btn');
    349.                 clipboard.on('success', e => {
    350.                     ctx.ui.tip({mode: 'success',
    351.                                 msg: `EX-baiduyunpan: 复制${list.length}个链接`});
    352.                     e.clearSelection();
    353.                     dialog.hide();
    354.                     clipboard.destroy();
    355.                 }).on('error', e => {
    356.                     ctx.ui.tip({mode: 'caution',
    357.                                 msg: 'EX-baiduyunpan: 复制失败,请手动复制'});
    358.                     clipboard.destory();
    359.                 });
    360.             };

    361.             return {
    362.                 show
    363.             };
    364.         });

    365.         require('ex-yunpan:pluginInit').catch(ex => {
    366.             showError(ex);
    367.         });
    368.     })(unsafeWindow);
    369.     /* jshint ignore:start */
    370. ]]></>).toString();
    371.                   var c = Babel.transform(inline_src, { presets: ["es2015", "es2016"] });
    372. eval(c.code);
    373. /* jshint ignore:end */
    复制代码

    全部安装完成后

    重启浏览器!!!
    重启浏览器!!!
    重启浏览器!!!





    如不自动触发IDM
    打开IDM主页  下载—选项—常规
    手动添加浏览器支持

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    我的人缘0
  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    1

    主题

    165

    帖子

    135

    积分

    用户组:高级魔法使

    樱花[A]19002 瓣
    雨露[B]0 滴
    次元币383 枚
    勋章币5 枚
    祝福宝石0 个
    红钻0 个
    白钻0 个
    注册时间2019-5-29
    最后登录2019-6-25
    发表于 2019-6-9 13:21:23 | 显示全部楼层
    感谢技术大佬的分享
    回复 支持 反对

    使用道具 举报

    我的人缘0
  • TA的每日心情
    开心
    昨天 10:22
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    0

    主题

    52

    帖子

    54

    积分

    用户组:中级魔法使

    樱花[A]7656 瓣
    雨露[B]0 滴
    次元币162 枚
    勋章币0 枚
    祝福宝石0 个
    红钻0 个
    白钻0 个
    注册时间2019-6-7
    最后登录2019-6-24
    发表于 2019-6-12 16:30:03 | 显示全部楼层
    感谢大佬的分享
    回复 支持 反对

    使用道具 举报

    我的人缘0
  • TA的每日心情
    郁闷
    2 小时前
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    2

    主题

    147

    帖子

    96

    积分

    用户组:中级魔法使

    樱花[A]13385 瓣
    雨露[B]0 滴
    次元币167 枚
    勋章币10 枚
    祝福宝石0 个
    红钻0 个
    白钻0 个
    注册时间2019-6-10
    最后登录2019-6-25
    发表于 2019-6-12 17:46:51 | 显示全部楼层
    感谢分享。
    回复

    使用道具 举报

    游客
    请先登录
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

     
     
    VIP使用咨询
    会员交流群(次元の爱):
    590275460
    联动(二次元/ACG/主机交流会):
    599472686
    客服QQ:
    905294759

    次元LOVE

    关于我们 商务合作 免责声明  

    Powered by Discuz! X3.1

    © 2001-2013 Comsenz Inc.

    反馈

    投诉举报 意见反馈 用户协议 论坛规则

    反馈须知: 切勿滥用举报,任何与举报相关的信息必须属实!

    网站资源

    • 客户端
    • 微信
    • 微博

    Archiver|手机版|小黑屋|次元LOVE  

    次元LOVE

    GMT+8, 2019-6-25 12:15 , Processed in 0.135117 second(s), 84 queries .   

    快速回复 返回顶部 返回列表