右键在新标签中打开图片时显示最优化图像质量

支持:谷歌(G+ blogspot picasa)、Tumblr、推特、Steam、新浪微博、腾讯微博、知乎、豆瓣、百度贴吧

目前为 2016-02-28 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Resize Image On "Open image in new tab"
  3. // @name:zh-cn 右键在新标签中打开图片时显示最优化图像质量
  4. // @version 0.5.4
  5. // @description Support: Google(G+ blogspot picasa)\Tumblr\Twitter\Steam(Only user content)\weibo.com (And more...
  6. // @description:zh-cn 支持:谷歌(G+ blogspot picasa)、Tumblr、推特、Steam、新浪微博、腾讯微博、知乎、豆瓣、百度贴吧
  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/*
  22. // @match https://*.douban.com/view/*
  23. // @match http://*.doubanio.com/view/*
  24. // @match https://*.doubanio.com/view/*
  25. // @match http://imgsrc.baidu.com/*
  26. // @match http://imgsrc.bdimg.com/*
  27. // @match http://*.hiphotos.baidu.com/*
  28. // @match http://*.hiphotos.bdimg.com/*
  29. // @match http://images.akamai.steamusercontent.com/*
  30. // @namespace https://greasyfork.org/users/2646
  31. // @copyright 2016+, CLE
  32. // ==/UserScript==
  33.  
  34. var url = document.location.toString();
  35. var m = null;
  36.  
  37. //google
  38. if( (m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)(?:\?.+)?$/i)) ) {
  39. if(m[2] != "s0") {
  40. document.location = m[1] + "s0" + m[3];
  41. }
  42. }
  43. else if( (m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+=)(.+)(?:\?.+)?$/i)) ) {
  44. if(m[2] != "s0") {
  45. document.location = m[1] + "s0";
  46. }
  47. }
  48.  
  49. //blogspot
  50. else if( (m = url.match(/^(https?:\/\/\w+\.bp\.blogspot\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)(?:\?.+)?$/i)) ) {
  51. if(m[2] != "s0") {
  52. document.location = m[1] + "s0" + m[3];
  53. }
  54. }
  55.  
  56. //tumblr
  57. else if( (m = url.match(/^(https?:\/\/\d+\.media\.tumblr\.com\/.*tumblr_\w+_)(\d+)(\.(jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i)) ) {
  58. if(m[2]<1280) {
  59. var ajax = new XMLHttpRequest();
  60. ajax.onreadystatechange=function() {
  61. if(ajax.status==200) {
  62. document.location = m[1] + "1280" + m[3];
  63. }
  64. };
  65. ajax.open("HEAD", m[1]+"1280"+m[3], true);
  66. ajax.send();
  67. }
  68. }
  69.  
  70. //twitter
  71. else if( (m = url.match(/^(https?:\/\/\w+\.twimg\.com\/media\/(?:[^\/:]+\.(?:jpg|jpeg|gif|png|bmp|webp)))(:\w+)?(?:\?.+)?$/i)) ) {
  72. if ( m[2]===null || m[2] != ":orig" )
  73. document.location = m[1] + ":orig";
  74. }
  75.  
  76. //Steam (Only user content)
  77. else if( (m = url.match(/^(http:\/\/images\.akamai\.steamusercontent\.com\/[^\?]+)\?.+$/i)) ){
  78. document.location = m[1];
  79. }
  80.  
  81. //性浪微博
  82. else if( (m = url.match(/^(https?:\/\/\w+\.sinaimg\.cn\/)([a-zA-Z]+)(\/.+)(?:\?.+)?$/i)) ) {
  83. if(m[2] != "large") {
  84. document.location = m[1] + "large" + m[3];
  85. }
  86. }
  87.  
  88. //疼逊微博
  89. else if( (m = url.match(/^(http:\/\/[\w\d]+\.qpic\.cn\/.+\/)(\d+)(?:\?.+)?$/i)) ) {
  90. if(m[2]<2000) {
  91. document.location = m[1] + "2000";
  92. }
  93. /*if(m[2]!=0) {
  94. document.location = m[1] + "0";
  95. }*/
  96. }
  97.  
  98. //zhihu
  99. else if( (m = url.match(/^(https?:\/\/.+\.zhimg\.com\/\w+_)(\w+)(\.(jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i)) ){
  100. if(m[2]!="r") {
  101. document.location = m[1] + "r" + m[3];
  102. }
  103. }
  104.  
  105. //douban
  106. else if( (m = url.match(/^(https?:\/\/\w+\.douban(?:io)?\.com\/view\/(?:photo|commodity_story)\/)(\w+)(\/public\/.+\.(jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i)) ){
  107. if(m[2] != "large"){
  108. var ajax = new XMLHttpRequest();
  109. ajax.onreadystatechange=function() {
  110. if(ajax.status==200) {
  111. document.location = m[1] + "large" + m[3];
  112. }else if(ajax.status==404) {
  113. if(m[2] != "photo"){
  114. document.location = m[1] + "photo" + m[3];
  115. }
  116. }
  117. };
  118. ajax.open("GET", m[1]+"large"+m[3], true);
  119. ajax.send();
  120. }
  121. }
  122.  
  123. //百度贴吧(然而对于画质提升什么的并没有什么卵用...)
  124. else if( !(m = url.match(/^http:\/\/imgsrc\.baidu\.com\/forum\/pic\/item\/.+/i)) ){
  125. if( (m = url.match(/^http:\/\/(?:imgsrc|\w+\.hiphotos)\.(?:bdimg|baidu)\.com\/(?:forum|album)\/.+\/(\w+\.(?:jpg|jpeg|gif|png|bmp|webp))(?:\?.+)?$/i)) ){
  126. document.location = "http://imgsrc.baidu.com/forum/pic/item/" + m[1];
  127. }
  128. }