Greasy Fork is available in English.

Simple html numeric captcha solver

After you click "Slow download" button the script solves the numeric captcha, waits for the countdown to finish, clicks the download button

  1. // ==UserScript==
  2. // @name Simple html numeric captcha solver
  3. // @description After you click "Slow download" button the script solves the numeric captcha, waits for the countdown to finish, clicks the download button
  4. // @include http://www.rziz.net/*/*.html
  5. // @include http://file.up09.com/*
  6. // @include http://clicknupload.com/*
  7. // @include http://hulkload.com/*
  8. // @include http://up4.im/*
  9. // @include http://www.gboxes.com/*
  10. // @include http://mrfile.co/*.html
  11. // @include http://fileshd.net/*
  12. // @include http://nizfile.net/*.html
  13. // @include http://lynxshare.com/*
  14. // @include http://datasbit.com/*
  15. // @include http://idup.to/*
  16. // @include http://media4up.com/*
  17. // @include http://salefiles.com/*
  18. // @include http://cloudyfiles.org/*
  19. // @version 1.1.3
  20. // @author wOxxOm
  21. // @namespace wOxxOm.scripts
  22. // @license MIT License
  23. // @run-at document-end
  24. // ==/UserScript==
  25.  
  26. var x = document.evaluate(
  27. '//form//div/span[contains("0123456789",.) and contains(@style,"padding-left")]',
  28. document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  29. var btn = document.evaluate(
  30. '//form//*[not(*) and not(self::script) and (contains(@id,"btn") or contains(@id,"download") or contains(.,"download") or contains(.,"Download"))]',
  31. document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
  32. if (x && btn) {
  33. var nodes = [];
  34. for (var i = 0; i < 4; i++)
  35. nodes.push(x.snapshotItem(i));
  36. var nodes = nodes.sort((a,b) => parseInt(a.style.paddingLeft) - parseInt(b.style.paddingLeft));
  37. document.forms.F1.code.value = nodes.map(n => n.textContent).join('');
  38.  
  39. switch (location.hostname) {
  40. case 'clicknupload.com':
  41. document.forms.F1.submit();
  42. break;
  43. case 'media4up.com':
  44. new MutationObserver(mutations => mutations[0].target.style.visibility == 'hidden' && document.forms.F1.submit())
  45. .observe(document.querySelector('#countdown'), {attributes:true, attributeFilter:['style']});
  46. break;
  47. default:
  48. new MutationObserver(mutations => !btn.disabled && document.forms.F1.submit())
  49. .observe(btn, {attributes:true, attributeFilter:['disabled']});
  50. }
  51. }