Dumpert Download

Downloads dumpert videos

  1. // ==UserScript==
  2. // @name Dumpert Download
  3. // @namespace Dumpert Download
  4. // @description Downloads dumpert videos
  5. // @include http://www.dumpert.nl/mediabase/*/*/*
  6. // @version 1.0
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10. if (typeof console == 'undefined') {
  11. window.console = {
  12. log: function () {}
  13. };
  14. }
  15.  
  16. // script details/updates
  17. var us_XXXXXX_Name = GM_info.script.name;
  18. var us_XXXXXX_Version = GM_info.script.version;
  19. function firstRun() {
  20. if ($.cookie('us_XXXXXX_name') == null) {
  21. //set cookies
  22. $.cookie('us_XXXXXX_name', us_XXXXXX_Name, {
  23. expires: 365,
  24. path: '/'
  25. });
  26. $.cookie('us_XXXXXX_version', us_XXXXXX_Version, {
  27. expires: 365,
  28. path: '/'
  29. });
  30. console.info('Hi, thanks for using userscript: ' + us_XXXXXX_Name + ' v' + us_XXXXXX_Version);
  31. }
  32. }
  33. function checkIfUpdated() {
  34. if ($.cookie('us_XXXXXX_version') != us_XXXXXX_Version) {
  35. //re-set cookies
  36. $.cookie('us_XXXXXX_name', us_XXXXXX_Name, {
  37. expires: 365,
  38. path: '/'
  39. });
  40. $.cookie('us_XXXXXX_version', us_XXXXXX_Version, {
  41. expires: 365,
  42. path: '/'
  43. });
  44. console.info('Userscript updated to version: ' + us_XXXXXX_Version);
  45. alert('Userscript ' + us_XXXXXX_Name + ' is updated. \n\n Thanks for updating.');
  46. }
  47. }
  48. function setActiveCookie() {
  49. // console.info('setActiveCookie()');
  50. if ($.cookie('us_XXXXXX_active') == null) {
  51. console.log('cookie us_XXXXXX_active not set');
  52. //set cookie
  53. $.cookie('us_XXXXXX_active', 'true', {
  54. path: '/'
  55. });
  56. // session
  57. console.log('cookie us_XXXXXX_active set to true');
  58. }
  59. }
  60.  
  61. function cleanCrap() {
  62. $('section#glamorama').remove(); // f*ck roddelgingers
  63. $('section#dkheaders').remove(); // Das Kapital
  64. $('section#snheaders').remove(); // Spitsnieuws
  65. $('section#gsheaders').remove(); // GeenStijl
  66. $('#upcoming').remove();
  67. $('#themashighlight').remove();
  68. }
  69.  
  70. function newDownloadButton(btnText, btnHref, btnContainer) {
  71. // console.info('function newDownloadButton');
  72. if (btnText == 'still') {
  73. btnText = 'screenshot';
  74. }
  75. $(btnContainer).prepend('<li>&nbsp;<a href="' + btnHref + '">' + btnText + '</a></li>');
  76. }
  77.  
  78.  
  79. function createDownloadLinks() {
  80. // console.info('function createDownloadLinks');
  81.  
  82. // class="videoplayer" id="video1" data-files="**base64encodingshit**"
  83. // data-files attribute on div#video1 / div.videoplay not available after rendering
  84. // so we'll retrieve the original HTML file again and get the data we want
  85.  
  86. var currItemUrl = $("link[rel='canonical']").attr("href");
  87.  
  88. $('section#comments').load(currItemUrl + ' #video1', function (response, status, xhr) {
  89. var dataFiles = $(response).find("#video1").data("files");
  90. if (typeof dataFiles !== 'undefined') {
  91. // create download link section
  92. $('.dump-desc').append('<div class="dump-tags"><span>Download:</span><ul id="downloadLinks"></ul></div>');
  93. dataFiles = window.atob(dataFiles);
  94. var dataObj = jQuery.parseJSON(dataFiles);
  95. for (var prop in dataObj) {
  96. if (dataObj.hasOwnProperty(prop)) {
  97. //console.log(prop + ": " + dataObj[prop]);
  98. // add download button for each object property
  99. newDownloadButton(prop, dataObj[prop], '#downloadLinks');
  100. }
  101. }
  102. $('#downloadLinks').append('<li>&nbsp;<small>(rechter muisklik > opslaan als)</small></li>');
  103. } else {
  104. console.log('nothing found to download, probably not a video');
  105. }
  106. });
  107. }
  108.  
  109. $(function () {
  110. console.log('userscript loaded: Dumpert Download');
  111. firstRun();
  112. checkIfUpdated();
  113. setActiveCookie();
  114. createDownloadLinks();
  115. cleanCrap();
  116. });
  117.  
  118. $(window).load(function () {
  119. //setTimeout(function(){ getItemData(); }, 5000);
  120. });