V2ex User Experience Enhance

try to take over the world!

当前为 2017-07-26 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name V2ex User Experience Enhance
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match https://www.v2ex.com/*
  8. // @include http*://*.v2ex.com/*
  9. // @include http*://v2ex.com/*
  10. // @grant none
  11. // @locale zh-CN
  12. // ==/UserScript==
  13.  
  14.  
  15.  
  16. (function() {
  17. //<editor-fold desc="修改搜索为雅虎">
  18. $("#Search form").attr("onsubmit", "return tm_dispatch();");
  19. var script = (function () {/*
  20. <script>
  21. function tm_dispatch() {
  22. var q = document.getElementById("q");
  23. if (q.value != "") {
  24. var url = 'https://search.yahoo.com/search?p=site:v2ex.com/t%20' + q.value;
  25. if (navigator.userAgent.indexOf('iPad') > -1 || navigator.userAgent.indexOf('iPod') > -1 || navigator.userAgent.indexOf('iPhone') > -1) {
  26. location.href = url;
  27. } else {
  28. window.open(url, "_blank");
  29. }
  30. return false;
  31. } else {
  32. return false;
  33. }
  34. }
  35. </script>
  36. */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
  37. $('body').append($(script));
  38. //</editor-fold>
  39. //<editor-fold desc="尝试滚到回复,但由于感谢等也算回复,可能不会起效">
  40. var replyNo = null;
  41. var replyMatches = window.location.hash.match(/#reply(\d+)/);
  42. if (replyMatches) {
  43. replyNo = replyMatches[1];
  44. }
  45. if (replyNo) {
  46. var targetReplyEle = null;
  47. $(".no").each(function(_,e){
  48. var eHtml = $(e).html();
  49. if (eHtml != replyNo) {
  50. return;
  51. }
  52. targetReplyEle = e;
  53. });
  54. $('html, body').animate({
  55. scrollTop: $(targetReplyEle).offset().top
  56. }, 666);
  57. }
  58. //</editor-fold>
  59. //<editor-fold desc="每日签到">
  60. $.get("/mission/daily",function(r){
  61. var m = r.match(/mission\/daily\/redeem\?once=(\w{5})/);
  62. if (!m) {
  63. return;
  64. }
  65. var code = m[1];
  66. var url = "/mission/daily/redeem?once="+code;
  67. $.get(url);
  68. });
  69. //</editor-fold>
  70. //标记楼主 代码来自ejin
  71. uid=document.getElementById("Rightbar").getElementsByTagName("a")[0].href.split("/member/")[1];//自己用户名
  72. if (location.href.indexOf(".com/t/") != -1) {
  73. var lzname=document.getElementById("Main").getElementsByClassName("avatar")[0].parentNode.href.split("/member/")[1];
  74. allname='@'+lzname+' ';
  75. all_elem = document.getElementsByClassName("dark");
  76. for(var i=0; i<all_elem.length; i++) {
  77. if (all_elem[i].innerHTML == lzname){
  78. all_elem[i].innerHTML += " <font color=green>[楼主]</font>";
  79. }
  80. //为回复所有人做准备
  81. if ( uid != all_elem[i].innerHTML && all_elem[i].href.indexOf("/member/") != -1 && all_elem[i].innerText == all_elem[i].innerHTML && allname.indexOf('@'+all_elem[i].innerHTML+' ') == -1 ) {
  82. allname+='@'+ all_elem[i].innerHTML+' ';
  83. }
  84. }
  85. }
  86.  
  87. // @所有人 与 @管理员 代码来自ejin
  88. if ( document.getElementById("reply_content") ) {
  89. document.getElementById("reply_content").parentNode.innerHTML+="&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:;' onclick='if ( document.getElementById(\"reply_content\").value.indexOf(\""+allname+"\") == -1 ) {document.getElementById(\"reply_content\").value+=\"\\r\\n"+allname+"\"}'>@所有人</a>";
  90. if ( document.body.style.WebkitBoxShadow !== undefined ) {
  91. //允许调整回复框高度
  92. document.getElementById("reply_content").style.resize="vertical";
  93. }
  94. document.getElementById("reply_content").style.overflow="auto";
  95. var magagers="@Livid @Kai @Olivia @GordianZ @sparanoid";
  96. document.getElementById("reply_content").parentNode.innerHTML+="&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:;' onclick='if ( document.getElementById(\"reply_content\").value.indexOf(\""+magagers+"\") == -1 ) {document.getElementById(\"reply_content\").value+=\"\\r\\n"+magagers+"\"}'>@管理员</a>";
  97. }
  98.  
  99.  
  100. // 图片链接自动转换成图片 代码来自caoyue@v2ex
  101. function linksToImgs() {
  102. var links = document.links;
  103. for (x in links){
  104. var link = links[x];
  105. if (/^http.*\.(?:jpg|jpeg|jpe|bmp|png|gif)/i.test(link.href)
  106. && !/<img\s/i.test(link.innerHTML)){
  107. link.innerHTML = "<img title='" + link.href + "' src='" + link.href + "' />";
  108. }
  109. }
  110. }
  111. linksToImgs();
  112. })();