Video Uploader by @anpep

Sube WebM, MP4 y Vines a Taringa! sin que los demás tengan que instalar la extensión

  1. // ==UserScript==
  2. // @name Video Uploader by @anpep
  3. // @namespace https://anpep.xyz
  4. // @version 0.2
  5. // @description Sube WebM, MP4 y Vines a Taringa! sin que los demás tengan que instalar la extensión
  6. // @author @anpep / @NY
  7. // @match *://*.taringa.net/mi*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. function main() {
  12. mi.attach.submitUrlProgressBar = function(el) {
  13. var perc = 0;
  14.  
  15. $(el).find('.my-shout-attach').html(tmpl('template_attach_progress')).show();
  16. mi.attach.progressBar(el, 0);
  17. mi.attach.submitUrlProgressBarTimer = setInterval(function() {
  18. perc++;
  19. mi.attach.progressBar(el, perc);
  20.  
  21. if (perc === 100)
  22. perc = 0;
  23. }, 10);
  24. };
  25.  
  26. mi.attach.submitUrl = function(el, type) {
  27. if (typeof $(el).data('inUpload') !== 'undefined' && $(el).data('inUpload'))
  28. return false;
  29.  
  30. var url = $(el).find('.my-shout-attach input[name=url]').val().trim();
  31.  
  32. if (!url.length || url.split('.').length < 2)
  33. return false;
  34.  
  35. var params = {
  36. key: global_data.user_key,
  37. url: url
  38. };
  39.  
  40. if (type === 'image')
  41. params.isImage = 1;
  42. else if (type === 'video')
  43. params.isVideo = 1;
  44.  
  45. var inUpload = Math.floor(Math.random() * 99999);
  46. $(el).data('inUpload', inUpload);
  47.  
  48. mi.attach.submitUrlProgressBar(el);
  49.  
  50. if (!url.match(/^https?:\/\/(vine.co\/v\/[a-z0-9_-]+|(i\\.)?imgur.com\/[a-z0-9_-]+\\.gifv?|gfycat.com\/[a-z0-9]+|.+?\.webm|.+?\?swf)$/i)) {
  51. $.ajax({
  52. type: 'POST',
  53. url: '/ajax/shout/attach',
  54. data: params,
  55. dataType: 'json',
  56. success: function(data) {
  57. if ($(el).data('inUpload') !== inUpload)
  58. return;
  59.  
  60. $(el).data('inUpload', false);
  61. clearInterval(mi.attach.submitUrlProgressBarTimer);
  62.  
  63. if (data.status === 1)
  64. mi.attach.show(el, data);
  65. else
  66. mi.attach.showError(el, data.data);
  67.  
  68. $(el).find('.my-shout-attach-options').hide();
  69.  
  70. if (data.type !== 'image')
  71. $(el).find('.attach-' + data.type).show();
  72. },
  73. error: function() {
  74. if ($(el).data('inUpload') !== inUpload)
  75. return;
  76.  
  77. $(el).data('inUpload', false);
  78. $(el).find('.my-shout-attach-options').hide();
  79.  
  80. clearInterval(mi.attach.submitUrlProgressBarTimer);
  81. mi.attach.showError(el, 'El servidor no responde');
  82. }
  83. });
  84. } else {
  85. if (url.indexOf('://') === -1)
  86. url = 'http://' + url;
  87.  
  88. $.ajax({
  89. type: 'GET',
  90. url: '//anpep-webm.herokuapp.com/api/v1/process',
  91. data: { key: '', url: url },
  92. jsonp: 'callback',
  93. dataType: 'jsonp',
  94. crossDomain: true,
  95. timeout: 600000,
  96. success: function(data) {
  97. if ($(el).data('inUpload') !== inUpload)
  98. return;
  99.  
  100. $(el).data('inUpload', false);
  101. clearInterval(mi.attach.submitUrlProgressBarTimer);
  102.  
  103. if (data.ok) {
  104. mi.attach.show(el, {
  105. data: {
  106. type: 'video',
  107. url: data.data.url,
  108. html: '<center><embed src="' + data.data.url + '" width="425" height="350" type="application/x-shockwave-flash" allownetworking="internal" allowscriptaccess="never" autoplay="false" wmode="transparent"></embed></center>'
  109. }
  110. });
  111. } else {
  112. mi.attach.showError(el, data.description);
  113. }
  114.  
  115. $(el).find('.my-shout-attach-options').hide();
  116. $(el).find('.attach-video').show();
  117. },
  118. error: function() {
  119. if ($(el).data('inUpload') !== inUpload)
  120. return;
  121.  
  122. $(el).data('inUpload', false);
  123. $(el).find('.my-shout-attach-options').hide();
  124.  
  125. clearInterval(mi.attach.submitUrlProgressBarTimer);
  126. mi.attach.showError(el, 'El servidor no responde');
  127. }
  128. });
  129. }
  130. }
  131. }
  132.  
  133. // run script in page context
  134. var script = document.createElement('script');
  135. script.appendChild(document.createTextNode('(' + main + ')();'));
  136. (document.body || document.head).appendChild(script);