MixCloud Download

Simple script that adds a download button on mixcloud.com

当前为 2016-02-10 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name MixCloud Download
  3. // @version 1.30
  4. // @description Simple script that adds a download button on mixcloud.com
  5. // @author FuSiOn
  6. // @match https://www.mixcloud.com/*
  7. // @grant GM_download
  8. // @namespace https://greasyfork.org/users/10999
  9. // ==/UserScript==
  10. var DL_B64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAJdnBBZwAAADMAAAAzAGNXrToAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTAtMjRUMjA6MjQ6MjcrMDI6MDDJ+GNnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE1LTEwLTI0VDIwOjI0OjI2KzAyOjAwHtLQbwAAACF0RVh0Q3JlYXRpb24gVGltZQAyMDE1OjEwOjI0IDIwOjI0OjQ1I9WmGwAAA6VJREFUaEPtms8rdFEYx597h8SC2dgzJNlK8wdINiJGyWJYUP4DYmWD4Q9QysYoYjMpW8rSAiuapojsKFEo+THv+z3vc3Tf686495yDGc2n5JznnvOc53vuufeeH2Nl/0IG2NnZof39fUqn0/T09MRWbyoqKqi5uZmi0Si1t7ezVQ9tIefn5zQxMcE5oufnZyovL+ecN+4y8/PzVFdXxzk1tITc3t7S2NgY54je3t7Itm3O5cdddmlpicLhMOeC46/VHGxubnLqH35FAHdZt6+gKAtBj+K5kGlVZF340vGjLOTm5oZTwe6EG2ddp8+gKEfw8vLCKXPo+FQWYlkWp8yh41N9TBQYJSGFRklIoaEsxNBc8z90fJbuSKFREvJrvuy/5mEPhUKcMoeOT2UhlZWVnDKHjs+cS91MJkPX19f0+voqxq4cv+g1LEnPzs4omUwKmymGhoYoEomIJTTaBQgPf2i3traWmpqahN2NpxAEOTk5ybnCYm5uToh14zm0UNCpXPaOzlI0KLIt2TZATF4iQN5dlKmpKTo5ORH7UD8J9slaWlpodnaWLR/J+7CjIhx8tuH2lfgRAXzta+HOnJ6ecu57aWho+FQE8L1Bt7CwQAcHB5z7HlpbW2l8fJxz+fEtBGxtbdHq6uqXfAyd4AGPx+PU09PDls8J9EGEYzTw8PDAFvPAd1ARIPCXHQ2Mjo7S/f09W8wBn/AdVAQINLScpFIpWllZMfZqxttpeHiYent72RIMZSEAYtbX17Wn9AhhcHBQWQRQnjQCNIwANPrCiAigJQQggIGBASUxqIO6uiKAthAQi8Wos7MzkBiURR3UNYERIWBkZITq6+t9TSxRBmVRxxQh27an19bW6PLyktra2tisRkdHBx0eHor1BHrc/RKQNsxgcW6oy+LiIi0vL9PR0RHZx8fHouG9vT2+rEcikRAHm15vMthwDWVMgJgROzQYG1pOcvV2Y2OjkTvhhS3HdHV1tfhvio2NDerr6+McifTMzAznzCBjhgarv78/i3M8rMNxRFxM4GgcQwtCbLmU1DnQ/ClkzNDwHv1PL2dVcMb8LqSsrIxTxYMzZlsukq6ursT/YkLGDA324+OjMGAavbu7Ky4UA4hVbopAgxWNRrP4tQ7e8ZK7uztxEQ+RvGPO/SWQb7nrvIZfAcG/E7cvJ7nakbFUVVVRTU2NsEkuLi7ISiaT2e3tbTYVJ11dXWRjfdzd3f2h14oBxIzY4/E4/QFXc7RoQ80nZQAAAABJRU5ErkJggg==';
  11. $(document).ready(function(){
  12. var str = "testring";
  13. $('[m-preview]').each(function(){
  14. var container = $(this).parents('.container,.card-elements-container')[0],
  15. loc = $(this).attr("m-preview")
  16. .replace(/audiocdn\d+/,"stream13")
  17. .replace(/mp3$/,"m4a")
  18. .replace(/previews/,"c\/m4a\/64");
  19. $('.button-favorite',container)
  20. .after("<a href='" + loc + "' class='button card-button button-download cf ng-scope' download target='#'></a>");
  21. $('.button-download',container).css({
  22. 'display' : 'flex',
  23. 'height' : '40px',
  24. 'line-height' : '40px',
  25. 'border-bottom' : 'none',
  26. 'border-top' : 'none',
  27. 'background-size' : '25px',
  28. 'width': '25px',
  29. 'background-repeat': 'no-repeat',
  30. 'background-position': '12px',
  31. 'background-image': 'url("' + DL_B64 + '")'
  32. });
  33. $('.card-footer',container).css({
  34. 'display' : 'flex',
  35. 'align-items': 'center',
  36. 'justify-content': 'center'
  37. });
  38. });
  39. $('.card-footer .button.card-button.light-icon').css('padding', '0 10px 0 35px');
  40. $('.button-download').on('mouseenter',function(){
  41. $(this).append('<span class="tooltip top" style="margin-left: -32px;">Download</span>');
  42. });
  43. $('.button-download').on('mouseleave',function(){
  44. $('.tooltip',this).remove();
  45. });
  46. });
  47. $(document).on('DOMNodeInserted', function(e) {
  48. var element = e.target;
  49. if($(element).find('[m-preview]').length > 0 && $(element).find('.button-download').length === 0){
  50. var container = $('[m-preview]',element).parents('.container,.card-elements-container')[0],
  51. loc = $('[m-preview]',element).attr("m-preview")
  52. .replace(/audiocdn\d+/,"stream13")
  53. .replace(/mp3$/,"m4a")
  54. .replace(/previews/,"c\/m4a\/64");
  55. $('.button-favorite',container)
  56. .after("<a href='" + loc + "' class='button card-button button-download cf ng-scope' m-tooltip='Download' download target='_blank'></a>");
  57. $('.button-download',container).css({
  58. 'display' : 'flex',
  59. 'height' : '40px',
  60. 'line-height' : '40px',
  61. 'border-bottom' : 'none',
  62. 'border-top' : 'none',
  63. 'background-size' : '25px',
  64. 'width': '25px',
  65. 'background-repeat': 'no-repeat',
  66. 'background-position': '12px',
  67. 'background-image': 'url("' + DL_B64 + '")'
  68. });
  69. $('.card-footer',container).css({
  70. 'display' : 'flex',
  71. 'align-items': 'center',
  72. 'justify-content': 'center'
  73. });
  74. }
  75. });
  76. if(typeof GM_download !== 'undefined'){
  77. $(document).on('click','.button-download',function(e){
  78. e.preventDefault();
  79. var arg = { url: $(this).attr('href'),
  80. name: $(this).parents('.card-elements-container').find('.card-cloudcast-title span').text() + ".m4a",
  81. saveAs: true,
  82. onerror: function(e){
  83. if(e.details !== "USER_CANCELED"){
  84. console.log(e);
  85. }
  86. }
  87. };
  88. GM_download(arg);
  89. });
  90. }