Resize Image On "Open image in new tab"

Support: Google(G+ blogspot picasa)\Tumblr\Twitter\weibo.com (And more...

当前为 2015-09-27 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Resize Image On "Open image in new tab"
  3. // @name:zh-cn 右键在新标签中打开图片时显示最优化图像质量
  4. // @version 0.4.15
  5. // @description Support: Google(G+ blogspot picasa)\Tumblr\Twitter\weibo.com (And more...
  6. // @description:zh-cn 支持:谷歌(G+ blogspot picasa)、Tumblr、推特、新浪微博、腾讯微博、知乎、豆瓣
  7. // @run-at document-start
  8. // @match http://*.googleusercontent.com/*
  9. // @match https://*.googleusercontent.com/*
  10. // @match http://*.media.tumblr.com/*
  11. // @match https://*.media.tumblr.com/*
  12. // @match http://*.bp.blogspot.com/*
  13. // @match https://*.bp.blogspot.com/*
  14. // @match http://*.sinaimg.cn/*
  15. // @match https://*.sinaimg.cn/*
  16. // @match http://*.qpic.cn/*
  17. // @match http://*.twimg.com/*
  18. // @match https://*.twimg.com/*
  19. // @match http://*.zhimg.com/*
  20. // @match https://*.zhimg.com/*
  21. // @match http://*.douban.com/view/photo/*
  22. // @match https://*.douban.com/view/photo/*
  23. // @namespace https://greasyfork.org/users/2646
  24. // @copyright 2015+, CLE
  25. // ==/UserScript==
  26.  
  27. var url = document.location.toString();
  28. var m = null;
  29.  
  30. //google
  31. m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)$/i);
  32. if(m) {
  33. if(m[2] != "s0") {
  34. document.location = m[1] + "s0" + m[3];
  35. }
  36. }
  37. m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+=)(.+)$/i);
  38. if(m) {
  39. if(m[2] != "s0") {
  40. document.location = m[1] + "s0";
  41. }
  42. }
  43.  
  44. //blogspot
  45. m = url.match(/^(https?:\/\/\w+\.bp\.blogspot\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)$/i);
  46. if(m) {
  47. if(m[2] != "s0") {
  48. document.location = m[1] + "s0" + m[3];
  49. }
  50. }
  51.  
  52. //tumblr
  53. var ma = url.match(/^(https?:\/\/\d+\.media\.tumblr\.com\/.*tumblr_\w+_)(\d+)(\.(jpg|jpeg|gif|png|bmp|webp))$/i);
  54. if(ma) {
  55. if(ma[2]<1280) {
  56. var ajax = new XMLHttpRequest();
  57. ajax.onreadystatechange=function() {
  58. if (ajax.readyState==4 && ajax.status==200) {
  59. document.location = ma[1] + "1280" + ma[3];
  60. }
  61. }
  62. ajax.open("HEAD", ma[1]+"1280"+ma[3], true);
  63. ajax.send();
  64. }
  65. }
  66.  
  67. //性浪微博
  68. m = url.match(/^(https?:\/\/ww[\d]+\.sinaimg\.cn\/)([^\/]+)(\/.+)$/i);
  69. if(m) {
  70. if(m[2] != "large") {
  71. document.location = m[1] + "large" + m[3];
  72. }
  73. }
  74.  
  75. //疼逊微博
  76. m = url.match(/^(http:\/\/[\w\d]+\.qpic\.cn\/.+\/)(\d+)$/i);
  77. if(m) {
  78. if(m[2]<2000) {
  79. document.location = m[1] + "2000";
  80. }
  81. /*if(m[2]!=0) {
  82. document.location = m[1] + "0";
  83. }*/
  84. }
  85.  
  86. //twitter
  87. m = url.match(/^https?:\/\/\w+\.twimg\.com\/media\/([^\/:]+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
  88. if(m) {
  89. document.location = m[0] + ":large";
  90. }
  91. /*m = url.match(/^https?:\/\/\w+\.twimg\.com\/media\/([^\/:]+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
  92. if(m) {
  93. document.location = m[0] + ":large?" + m[1];
  94. }
  95. m = url.match(/^(https?:\/\/\w+\.twimg\.com\/media\/([^\/]+\.(jpg|jpeg|gif|png|bmp|webp)))\:(\w+)$/i);
  96. if(m) {
  97. if(m[4]!="large") {
  98. document.location = m[1] + ":large?" + m[2];
  99. }
  100. }*/
  101.  
  102. //zhihu
  103. m = url.match(/^(https?:\/\/.+\.zhimg\.com\/\w+_)(\w+)(\.(jpg|jpeg|gif|png|bmp|webp))$/i);
  104. if(m){
  105. if(m[2]!="r") {
  106. document.location = m[1] + "r" + m[3];
  107. }
  108. }
  109.  
  110. //douban
  111. ma = url.match(/^(https?:\/\/\w+\.douban\.com\/view\/photo\/)(\w+)(\/public\/.+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
  112. if(ma){
  113. if(ma[2] != "large"){
  114. var ajax = new XMLHttpRequest();
  115. ajax.onreadystatechange=function() {
  116. if (ajax.readyState==4 && ajax.status==200) {
  117. document.location = ma[1] + "large" + ma[3];
  118. }else if(ajax.readyState==4 && ajax.status==404) {
  119. if(ma[2] != "photo"){
  120. document.location = ma[1] + "photo" + ma[3];
  121. }
  122. }
  123. }
  124. ajax.open("GET", ma[1]+"large"+ma[3], true); //豆瓣不支持HEAD,只能用GET,会影响判断速度
  125. ajax.send();
  126. }
  127. }