kyomh Image Link

Generate image link

  1. // ==UserScript==
  2. // @name kyomh Image Link
  3. // @namespace http://allencch.wordpress.com
  4. // @description Generate image link
  5. // @include http://*.kyomh.com/comic/*
  6. // @version 1
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10.  
  11.  
  12. function padZero(num,width) {
  13. s = num.toString();
  14. while(s.length<width)
  15. s = "0" + s;
  16. return s;
  17. }
  18.  
  19. function getImageLink() {
  20. return document.getElementById('Img').src;
  21. }
  22.  
  23. function getNumPages() {
  24. var length = document.getElementsByName('select2')[0].children.length;
  25. return length;
  26. }
  27.  
  28. window.generateLink = function() {
  29. var mainDiv,newElement;
  30. var mainDivs = document.getElementsByClassName('page');
  31. mainDiv = mainDivs[mainDivs.length -1];
  32. if(mainDiv) {
  33. newElement = document.createElement('div');
  34. newElement.setAttribute('id','gm_elem');
  35. newElement.setAttribute('style','text-align:center');
  36. mainDiv.parentNode.insertBefore(newElement,mainDiv.nextSibling);
  37. }
  38. var gmElem = document.getElementById('gm_elem');
  39. //Generate all the links element
  40. var myLinks = new Array();
  41. var myText = new Array();
  42. var numPages = getNumPages();
  43. var link = getImageLink();
  44. var path = link.substring(0,link.lastIndexOf('/')+1);
  45. var filename = link.substring(link.lastIndexOf('/')+1);
  46. var match = filename.match(/[^\d]*?(\d+)\./);
  47. var width = match[1].length;
  48.  
  49. //var suffix = filename.substring(filename.lastIndexOf('.'));
  50. //var width = filename.length - 4; //-4 for image suffix
  51. for(var i=0;i<numPages;i++) {
  52. var regex = new RegExp(match[1]);
  53. myLinks[i] = path + filename.replace(regex,padZero(i+1,width));
  54.  
  55. //myLinks[i] = getImageLink(i+1);
  56. //myLinks[i] = path + padZero(i+1,width) + suffix;
  57. myText[i] = '<a target="_blank" href="'+myLinks[i]+'">'+padZero(i+1,3)+'</a> ';
  58. }
  59. if(gmElem){
  60. gmElem.innerHTML = '<hr>';
  61. for(var i=0;i<numPages;i++) {
  62. gmElem.innerHTML += myText[i];
  63. if((i+1)%20 == 0)
  64. gmElem.innerHTML += '<br/>';
  65. }
  66. gmElem.innerHTML += 'end';
  67. }
  68. }
  69.  
  70. window.setTimeout(function() {
  71. generateLink();
  72. },0.5*1000);