Greasy Fork is available in English.

getzhidaofile

获取百度知道附件下载地址

À partir de 2015-01-25. Voir la dernière version.

// ==UserScript==
// @name        getzhidaofile
// @namespace   http://userscripts.org/scripts/show/176807
// @description 获取百度知道附件下载地址
// @author wellblink
// @version 1.0.9.20
// @include     http://zhidao.baidu.com/question/*
// @grant       none
// @run-at document-end
// ==/UserScript==
var gd,
gd0,
gd1,
gd2,
i,
j,
tmp;
gd0 = document.getElementsByTagName('div');
gd = new Array();
for (i = 0; i < gd0.length; i++) {
  if (gd0[i].id && (gd0[i].id.substring(0, 15) == 'answer-content-' || gd0[i].id.substring(0, 18) == 'recommend-content-' || gd0[i].id.substring(0, 13) == 'best-content-')) gd.push(gd0[i]);
}
gd2 = new Array();
gd0 = '[';
for (i = 0; i < gd.length; i++) {
  gd1 = gd[i].getElementsByTagName('file');
  for (j = 0; j < gd.length; j++) {
    gd0 += '{\'' + gd1[j].getAttribute('name') + '\':\'' + gd1[j].getAttribute('link') + '\'}';
  }
}
gd0 += ']';
if (gd0.length > 9) {
  gd2 = eval(gd0);
  waitload();
}
function waitload() {
  if (!document.querySelector('.i-file-down')) return setTimeout(waitload, 1000);
  var gda,
  a,
  tmp1,
  tmp2,
  tmp3;
  for (var i = 0; i < gd.length; i++) {
    gda = gd[i].querySelector('.file-inner');
    for (a in gd2[i]) {
      try {
        tmp2 = gda.querySelector('.i-file-down').parentNode;
        tmp2.outerHTML = '<div id="gd_btn' + i + '" class="' + tmp2.getAttribute('class') + '">' + tmp2.innerHTML + '</div>';
        tmp2 = document.getElementById('gd_btn' + i);
        tmp2.onclick = function (m) {
          return function () {
            window.open(m);
          }
        }('http://pan.baidu.com' + gd2[i][a]);
        tmp3 = tmp2.parentNode.firstElementChild;
        tmp3.outerHTML = '<div id="gd_ico' + i + '" style="cursor:pointer" class="' + tmp3.getAttribute('class') + '">' + tmp3.innerHTML + '</div>';
        tmp3 = document.getElementById('gd_ico' + i);
        tmp3.onclick = tmp2.onclick;
        tmp1 = tmp2.parentNode.querySelector('.info.grid').firstElementChild.firstElementChild;
        tmp1.outerHTML = '<div id="gd_a' + i + '" style="display:inline;cursor:pointer" class="' + tmp1.getAttribute('class') + '" title="' + tmp1.getAttribute('title') + '">' + tmp1.innerHTML + '</div>';
        tmp1 = document.getElementById('gd_a' + i);
        tmp1.onmouseover = function () {
          this.style['text-decoration'] = 'underline';
        }
        tmp1.onmouseout = function () {
          this.style['text-decoration'] = 'none';
        }
        tmp1.onclick = tmp2.onclick;
      } 
      catch (e) {
        console.log(e);
      }
    }
  }
}