Greasy Fork is available in English.

百度網盤自動轉存

自動轉存當前文件至上次轉存路徑。

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         百度網盤自動轉存
// @name:zh-CN   百度网盘自动转存
// @namespace    moe.jixun.baidu.auto.save
// @version      0.4
// @description  自動轉存當前文件至上次轉存路徑。
// @author       Jixun
// @include      http://pan.baidu.com/share/link*
// @include      https://pan.baidu.com/share/link*
// @include      http://pan.baidu.com/s/*
// @include      https://pan.baidu.com/s/*
// @grant        none
// @run-at       document-end
// @license      MIT
// ==/UserScript==

(function(yunData, require) {
  'use strict';

  var errors = {
    0: '成功',
    5: '自己的文件',
    12: '已经保存过了',
    111: '另一保存任务进行中',
    '-33': '需要会员 (?)',
    120: '需要会员 (?)',
    130: '需要超级会员 (?)'
  };

  (function (tip, c) {
    function getRecentPath() {
      var key = window.yunData.MYNAME.replace(/@/g, "") + "_transfer_save_path";
      var _recent_path = localStorage.getItem(key);
      if (!_recent_path) _recent_path = '/';
      else _recent_path = _recent_path.replace(/\?\d+/, '');

      return _recent_path;
    }

    var $ = require("base:widget/libs/jquery-1.12.4.js");
    function doAutoSave (count) {
      if (count <= 0) {
        tip.hide();
        tip.show({
          mode: 'error',
          msg: '转存失败:请检查网络连接。',
          hasClose: true,
          autoClose: false,
          vipType: 'svip'
        });
        return;
      }
      const path = getRecentPath();

      $.ajax({
        type: 'POST',
        url: '/share/transfer?shareid=' + yunData.SHARE_ID + '&from=' + yunData.SHARE_UK,
        data: {
          filelist: JSON.stringify(yunData.FILEINFO.map(function(f){ return f.path; })),
          path: path
        },
        dataType: 'json',
        success: function (data) {
          var raw = typeof data == 'string' ? $.parseJSON(data) : data;
          var err = data.errno;

          var errMsg = '';
          if (err in errors) {
            errMsg += errors[err] + ' (' + err + ')';
          } else {
            errMsg += '未知状态 (' + err + ')';
          }

          var msg = '保存至: ' + path + ', 状态: ' + errMsg;
          document.title = errMsg + ' - ' + document.title;

          tip.hide();
          tip.show({
            mode: err === 0 ? 'success' : 'caution',
            msg: msg,
            hasClose: true,
            autoClose: false,
            vipType: 'svip'
          });
        },
        error: function (error) {
          console.warn('网络连接失败,进行重试…');
          setTimeout(doAutoSave, 500, count - 1);
        }
      });
    }
    doAutoSave(5);

    tip.show({
      mode: 'loading',
      msg: "正在转存文件,请稍后...",
      hasClose: false,
      autoClose: false
    });
  })(
    /*tip: */require("system-core:system/uiService/tip/tip.js")
  );
})(window.yunData, window.require);