5ch_thumb_view

5ちゃんねるの画像をサムネイル表示する。

  1. // ==UserScript==
  2. // @name 5ch_thumb_view
  3. // @namespace http://catherine.v0cyc1pp.com/5ch_thumb_view.user.js
  4. // @match http://*.5ch.net/*
  5. // @match https://*.5ch.net/*
  6. // @match http://*.bbspink.com/*
  7. // @match https://*.bbspink.com/*
  8. // @author greg10
  9. // @run-at document-end
  10. // @license GPL 3.0
  11. // @version 2.2
  12. // @grant none
  13. // @description 5ちゃんねるの画像をサムネイル表示する。
  14. // @license MIT
  15. // ==/UserScript==
  16. console.log("5ch_thumb_view start");
  17.  
  18.  
  19. function main() {
  20. document.querySelectorAll("a").forEach(function(elem) {
  21. var thiselem = elem;
  22.  
  23. var str = elem.innerText;
  24.  
  25. if (elem.getAttribute("myloaded_5tv") == "done") {
  26. return;
  27. }
  28. elem.setAttribute("myloaded_5tv", "done");
  29.  
  30.  
  31. //var result = str.match(/(\/\/.*(.jpg|.jpeg|.png|.gif|.bmp|.webp|.jpg:orig|.jpg\?_nc_ht=scontent-nrt1-1.cdninstagram.com))$/i);
  32. var result = str.match(/(\/\/.*(.jpg|.jpeg|.png|.gif|.bmp|.webp))/i);
  33. if (result == null) {
  34. return;
  35. }
  36. console.log("image matched, str=" + str);
  37.  
  38. var link2img = document.createElement("a");
  39. link2img.href = str;
  40. link2img.target = "_blank";
  41. link2img.myloaded_5tv = "done";
  42. var elem_p = document.createElement("p");
  43. var img = document.createElement("img");
  44. img.src = str;
  45. img.border = "1px";
  46. img.width = "100";
  47.  
  48.  
  49. thiselem.parentNode.insertBefore(elem_p, thiselem.nextElementSibling);
  50. elem_p.parentNode.insertBefore(link2img, elem_p.nextElementSibling);
  51. link2img.appendChild(img);
  52.  
  53.  
  54. });
  55. }
  56.  
  57. main();
  58.  
  59. var observer = new MutationObserver(function(mutations) {
  60. observer.disconnect();
  61. main();
  62. observer.observe(document, config);
  63. });
  64.  
  65. var config = {
  66. attributes: false,
  67. childList: true,
  68. characterData: false,
  69. subtree: true
  70. };
  71.  
  72. observer.observe(document, config);