User At Hover - Libreddit

hover at user nickname in some post to see user flair.

当前为 2022-07-17 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name User At Hover - Libreddit
  3. // @version 1.0.0
  4. // @description hover at user nickname in some post to see user flair.
  5. // @namespace -
  6. // @include *://libredd.it*
  7. // @include *://libreddit.spike.codes*
  8. // @include *://libreddit.dothq.co*
  9. // @include *://libreddit.kavin.rocks*
  10. // @include *://reddit.invak.id*
  11. // @include *://reddit.phii.me*
  12. // @include *://lr.riverside.rocks*
  13. // @include *://libreddit.strongthany.cc*
  14. // @include *://libreddit.database.red*
  15. // @include *://libreddit.privacy.com.de*
  16. // @include *://libreddit.domain.glass*
  17. // @include *://libreddit.sugoma.tk*
  18. // @include *://libreddit.jamiethalacker.dev*
  19. // @include *://reddit.artemislena.eu*
  20. // @include *://r.nf*
  21. // @include *://libreddit.some-things.org*
  22. // @include *://reddit.stuehieyr.com*
  23. // @include *://lr.mint.lgbt*
  24. // @include *://libreddit.igna.rocks*
  25. // @include *://libreddit.autarkic.org*
  26. // @include *://libreddit.flux.industries*
  27. // @include *://libreddit.drivet.xyz*
  28. // @include *://lr.oversold.host*
  29. // @include *://libreddit.de*
  30. // @include *://libreddit.pussthecat.org*
  31. // @include *://libreddit.mutahar.rocks*
  32. // @include *://libreddit.northboot.xyz*
  33. // @include *://leddit.xyz*
  34. // @include *://de.leddit.xyz*
  35. // @include *://lr.cowfee.moe*
  36. // @include *://libreddit.hu*
  37. // @include *://libreddit.totaldarkness.net*
  38. // @include *://libreddit.esmailelbob.xyz*
  39. // @include *://lr.vern.cc*
  40. // @include *://libreddit.nl*
  41. // @include *://lr.stilic.ml*
  42. // @include *://reddi.tk*
  43. // @include *://libreddit.bus-hit.me*
  44. // @include *://libreddit.datatunnel.xyz*
  45. // @include *://libreddit.crewz.me*
  46. // @include *://r.walkx.org*
  47. // @include *://libreddit.kylrth.com*
  48. // @include *://libreddit.yonalee.eu*
  49. // @include *://libreddit.winscloud.net*
  50. // @include *://libreddit.tiekoetter.com*
  51. // @include *://reddit.rtrace.io*
  52. // @include *://libreddit.lunar.icu*
  53. // @include *://libreddit.privacydev.net*
  54. // @include *://libreddit.notyourcomputer.net*
  55. // @include *://r.ahwx.org*
  56. // @include *://bob.fr.to*
  57. // @include *://reddit.beparanoid.de*
  58. // @include *://libreddit.dcs0.hu*
  59. // @icon data:image/png;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHwAfHx8AHx8fAB8fHwAfHx8CHx8fKh8fH20fHx+tHx8f2h8fH/MfHx/9Hx8f/R8fH/MfHx/aHx8frR8fH20fHx8qHx8fAh8fHwAfHx8AHx8fAB8fHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHx8AHx8fAB8fHwAfHx8BHx8fNx8fH5gfHx/gHx8f/B8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/B8fH+AfHx+YHx8fNx8fHwEfHx8AHx8fAB8fHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fAB8fHwAfHx8AHx8fGR8fH4ofHx/rHx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/rHx8fih8fHxkfHx8AHx8fAB8fHwAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHwAfHx8AHx8fAB8fHzUfHx/DHx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8fwx8fHzUfHx8AHx8fAB8fHwAAAAAAAAAAAAAAAAAfHx8AHx8fAB8fHwAfHx9BHx8f2h8fH/8fHx//Hx8f/x4eHv8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8eHh7/Hx8f/x8fH/8fHx//Hx8f2h8fH0EfHx8AHx8fAB8fHwAAAAAAHx8fAB8fHwAfHx8AHx8fNR8fH9ofHx//Hx8f/x8fH/8hISH/NjY2/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zY2Nv8hISH/Hx8f/x8fH/8fHx//Hx8f2h8fHzUfHx8AHx8fAB8fHwAfHx8AHx8fAB8fHxkfHx/DHx8f/x8fH/8fHx//Hh4e/zExMf/FxcX/5ubm/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/m5ub/xcXF/zExMf8eHh7/Hx8f/x8fH/8fHx//Hx8fwx8fHxkfHx8AHx8fAB8fHwAfHx8BHx8fih8fH/8fHx//Hx8f/x8fH/8eHh7/MzMz/97e3v/////////////////////////////////////////////////////////////////e3t7/MzMz/x4eHv8fHx//Hx8f/x8fH/8fHx//Hx8fih8fHwEfHx8AHx8fAB8fHzcfHx/rHx8f/x8fH/8fHx//Hx8f/x4eHv8zMzP/3Nzc/////////////////////////////////////////////////////////////////9zc3P8zMzP/Hh4e/x8fH/8fHx//Hx8f/x8fH/8fHx/rHx8fNx8fHwAfHx8CHx8fmB8fH/8fHx//Hx8f/x8fH/8fHx//Hh4e/zMzM//c3Nz/////////////////////////////////////////////////////////////////3Nzc/zMzM/8eHh7/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx+YHx8fAh8fHyofHx/gHx8f/x8fH/8fHx//Hx8f/x8fH/8eHh7/MzMz/9zc3P////////////////+zs7P/dHR0/3R0d/90dHf/dHR3/3R0d/91dXb/dnZ2/3d3d/9paWn/Jycn/x4eHv8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH98fHx8qHx8fbR8fH/wfHx//Hx8f/x8fH/8fHx//Hx8f/x4eHv8zMzP/3Nzc/////////////////4CAgP8cHBf/OjoX/z4+Fv8+Phb/Pj4W/ykpGf8aGhv/Gxsb/xwcHP8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/B8fH20fHx+tHx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hh4e/zMzM//c3Nz/////////////////gYGD/zQ0GP/S0gb/7e0D/+vrA//r6wP/b28U/xsbH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8frR8fH9ofHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8eHh7/MzMz/9zc3P////////////////+BgYP/NjYY/+XlBP///wD///8A////AP93dxP/Gxsg/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/aHx8f8x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x4eHv8zMzP/3Nzc/////////////////4GBg/82Nhj/5OQE////AP///wD///8A/3Z2E/8bGyD/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/MfHx/9Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hh4e/zMzM//c3Nz/////////////////gYGD/zY2GP/k5AT///8A////AP///wD/dnYT/xsbIP8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/R8fH/0fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8eHh7/MzMz/9zc3P////////////////+BgYP/NjYY/+TkBP///wD///8A////AP92dhP/Gxsg/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/9Hx8f8x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x4eHv8zMzP/3Nzc/////////////////4GBg/82Nhj/5OQE////AP///wD///8A/3Z2E/8bGyD/Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/MfHx/aHx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hh4e/zMzM//c3Nz/////////////////gYGD/zY2GP/k5AT///8A////AP///wD/dnYT/xsbIP8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f2h8fH60fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8eHh7/MzMz/9zc3P////////////////+BgYP/NjYY/+TkBP///wD///8A////AP92dhP/Gxsg/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx+tHx8fbR8fH/wfHx//Hx8f/x8fH/8fHx//Hx8f/x4eHv8zMzP/3Nzc/////////////////4GBg/82Nhj/5OQE////AP///wD///8A/3R0E/8XFyD/Gxsg/xwcH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/B8fH20fHx8qHx8f4B8fH/8fHx//Hx8f/x8fH/8fHx//Hh4e/zMzM//c3Nz/////////////////gYGD/zY2GP/k5AT///8A////AP///wD/pKQN/2hoFf9raxT/X18W/yYmHv8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/gHx8fKh8fHwIfHx+YHx8f/x8fH/8fHx//Hx8f/x8fH/8eHh7/MzMz/9zc3P////////////////+BgYP/NjYY/+TkBP///wD///8A////AP/+/gD//f0A////AP/b2wX/MzMc/x4eH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH5gfHx8CHx8fAB8fHzcfHx/rHx8f/x8fH/8fHx//Hx8f/x4eHv8zMzP/3Nzc/////////////////4GBg/82Nhj/5OQE////AP///wD///8A////AP///wD///8A/9zcBf8zMxz/Hh4f/x8fH/8fHx//Hx8f/x8fH/8fHx/rHx8fNx8fHwAfHx8AHx8fAR8fH4ofHx//Hx8f/x8fH/8fHx//Hh4e/zMzM//d3d3/////////////////gYGD/zY2GP/l5QT///8A////AP///wD///8A////AP///wD/3d0F/zMzHP8eHh//Hx8f/x8fH/8fHx//Hx8f/x8fH4oeHh4BHx8fAB8fHwAfHx8AHx8fGR8fH8MfHx//Hx8f/x8fH/8eHh7/MTEx/8vLy//t7e3/6+vr/+3t7f94eHr/NDQY/9LSBv/t7QP/6+sD/+vrA//r6wP/6+sD/+3tAv/Lywf/MTEc/x4eH/8fHx//Hx8f/x8fH/8fHx/DHx8fGR8fHwAfHx8AHx8fAB8fHwAfHx8AHx8fNR8fH9ofHx//Hx8f/x8fH/8iIiL/PT09/0JCQv9CQkL/QkJC/y4uL/8jIx7/Pj4b/0JCGv9CQhr/QkIa/0JCGv9CQhr/QkIa/z09G/8iIh//Hx8f/x8fH/8fHx//Hx8f2h8fHzUfHx8AHx8fAB8fHwAAAAAAHx8fAB8fHwAfHx8AHx8fQR8fH9ofHx//Hx8f/x8fH/8dHR3/HR0d/x0dHf8dHR3/Hh4e/x8fH/8dHR//HR0f/x0dH/8dHR//HR0f/x0dH/8dHR//HR0f/x8fH/8fHx//Hx8f/x8fH9ofHx9BHx8fAB8fHwAfHx8AAAAAAAAAAAAAAAAAHx8fAB8fHwAfHx8AHx8fNR8fH8MfHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/DHx8fNR8fHwAfHx8AHx8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fAB8fHwAfHx8AHx8fGR8fH4ofHx/rHx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/rHx8fih8fHxkfHx8AHx8fAB8fHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fAB8fHwAfHx8AHh4eAR8fHzcfHx+YHx8f4B8fH/wfHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/wfHx/fHx8fmB8fHzcfHx8BHx8fAB8fHwAfHx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fAB8fHwAfHx8AHx8fAB8fHwIfHx8qHx8fbR8fH60fHx/aHx8f8x8fH/0fHx/9Hx8f8x8fH9ofHx+tHx8fbR8fHyofHx8CHx8fAB8fHwAfHx8AHx8fAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AB//4AAH/8AAA/+AAAH/AAAA/gAAAHwAAAA4AAAAGAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf8=
  60. // @grant none
  61. // @run-at document-end
  62. // @license GPL-3.0-or-later
  63. // ==/UserScript==
  64.  
  65. let style = document.createElement('style')
  66. style.textContent = `
  67. .user-popup::before {
  68. content: '';
  69. width: 10px;
  70. height: 10px;
  71. display: block;
  72. position: absolute;
  73. top: -6px;
  74. left: 44%;
  75. border-right: 1px solid #333;
  76. border-top: 1px solid #333;
  77. rotate: -45deg;
  78. background: var(--post);
  79. }
  80.  
  81. .user-popup {
  82. position: absolute;
  83. width: 100px;
  84. background-color: var(--post);
  85. z-index: 1;
  86. border: var(--panel-border);
  87. border-radius: 5px;
  88. text-align: center;
  89. }
  90.  
  91. .user-popup img {
  92. width: 80px;
  93. margin-top: 10px;
  94. border-radius: 5px;
  95. background: var(--foreground);
  96. border: var(--panel-border);
  97. }
  98.  
  99. .d-none {
  100. display: none;
  101. }`
  102. document.head.appendChild(style)
  103.  
  104. document.querySelectorAll('[class*="author"][href*="/user/"]').forEach(e => {
  105. e.dataset.parsed = '0'
  106. e.addEventListener('mouseenter', () => {
  107. if(e.dataset.parsed === '0') {
  108. fetch(e.href).then(r => r.text()).then(c => {
  109. e.dataset.parsed = '1'
  110. let doc = new DOMParser().parseFromString(c, 'text/html'),
  111. avatar = doc.querySelector('#user_icon').src,
  112. name = doc.querySelector('#user_name').textContent.slice(2),
  113. karma = +doc.querySelector('#user_details > :nth-child(3)').textContent,
  114. created = doc.querySelector('#user_details > :nth-child(4)').textContent,
  115. popup = document.createElement('div'),
  116. popupImg = document.createElement('img'),
  117. popupName = document.createElement('span'),
  118. y = e.offsetTop,
  119. x = e.offsetLeft
  120.  
  121. popup.dataset.name = name
  122. popup.dataset.avatar = avatar
  123. popup.style.top = y+25+'px'
  124. popup.style.left = x+'px'
  125. popup.className = 'user-popup'
  126. popupImg.src = avatar
  127. popupImg.alt = name
  128. popupName.textContent = name
  129. popup.appendChild(popupImg)
  130. popup.appendChild(popupName)
  131. e.insertAdjacentElement('afterend', popup)
  132. })
  133. } else {
  134. let pop = e.nextElementSibling,
  135. pop2 = pop.nextElementSibling,
  136. y = e.offsetTop,
  137. x = e.offsetLeft
  138.  
  139. if(pop2.className.indexOf('user-popup') != -1) pop2.remove()
  140.  
  141. pop.style.top = y+25+'px'
  142. pop.style.left = x+'px'
  143. pop.classList.remove('d-none')
  144. }
  145. })
  146. e.addEventListener('mouseleave', () => {
  147. e.nextElementSibling.classList.add('d-none')
  148. })
  149. })

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址