eBooks Assistant

eBooks Assistant for douban.com

当前为 2020-10-05 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name eBooks Assistant
  3. // @namespace https://github.com/caspartse/eBooksAssistant
  4. // @version 0.1
  5. // @description eBooks Assistant for douban.com
  6. // @author Caspar Tse
  7. // @match https://book.douban.com/subject/*
  8. // @require https://cdn.bootcdn.net/ajax/libs/jquery/1.10.0/jquery.min.js
  9. // @connect douban.com
  10. // @connect amazon.cn
  11. // @grant GM_xmlhttpRequest
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. function queryBook(title, ibsn) {
  16. GM_xmlhttpRequest({
  17. method: "GET",
  18. url: "https://www.amazon.cn/s?__mk_zh_CN=亚马逊网站&i=digital-text&k=" + ibsn + "&ref=nb_sb_noss&url=search-alias%3Ddigital-text",
  19. headers: {
  20. 'User-agent': window.navigator.userAgent,
  21. 'Content-type': 'text/html;charset=UTF-8'
  22. },
  23. onload: function(responseDetail) {
  24. var doc = responseDetail.responseText;
  25. var errorFlag = /("totalResultCount"\:0)|(在Kindle商店中未找到)/.exec(doc);
  26. if (!errorFlag) {
  27. var regexAazonUrl = /href="(\S+keywords=\d+[^"]+)"/gi
  28. var amazonUrl = "https://www.amazon.cn" + regexAazonUrl.exec(responseDetail.responseText)[1];
  29. amazonUrl = amazonUrl.replace(ibsn, title);
  30. var partnerTemplate = '';
  31. if ($(".online-partner").length) {
  32. partnerTemplate = '<div class="online-read-or-audio"> <a class="impression_track_mod_buyinfo" target="_blank" href="{templateUrl}"> <img src="https://s1.ax1x.com/2020/10/05/0JbHKI.jpg" width="16" height="16"> <span>Kindle</span> </a> </div>'
  33. $(".online-partner .online-type:nth-child(1)").append(partnerTemplate.replace("{templateUrl}", amazonUrl));
  34. } else {
  35. partnerTemplate = '<div class="online-partner"> <div class="online-type"> <span>在线试读:</span> <div class="online-read-or-audio"> <a class="impression_track_mod_buyinfo" target="_blank" href="{templateUrl}" one-link-mark="yes"> <img src="https://s1.ax1x.com/2020/10/05/0JbHKI.jpg" width="16" height="16"> <span>Kindle</span> </a> </div></div> </div>';
  36. $("#link-report").after(partnerTemplate.replace("{templateUrl}", amazonUrl));
  37. }
  38. }
  39. return;
  40. }
  41. });
  42. return;
  43. }
  44. var regexIsbn = /<span class="pl">ISBN:<\/span>\s*(\d+)\s*/g;
  45. var ibsn = regexIsbn.exec($("#info").html())[1];
  46. console.log(ibsn);
  47. var title = $("#wrapper h1:nth-child(2) span:nth-child(1)").text().trim();
  48. console.log(title);
  49. queryBook(title, ibsn);
  50. return;
  51. })();