btsow-mag-helper

show mag copy button in the search result page of btsow

  1. // ==UserScript==
  2. // @name btsow-mag-helper
  3. // @namespace btsow-mag-helper-ycy
  4. // @version 0.1.2
  5. // @description show mag copy button in the search result page of btsow
  6. // @author ycycorona
  7. // @match *://bteve.com/search/*
  8. // @run-at document-end
  9. // @grant GM_addStyle
  10. // @grant GM_setClipboard
  11. // @grant GM_xmlhttpRequest
  12.  
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17. function magGenerator(hash, title) {
  18. return `magnet:?xt=urn:btih:${hash}&dn=${title}`
  19. }
  20. var dataListWrap = document.querySelector('.data-list')
  21. var rowList = document.querySelectorAll('.data-list .row:not(.hidden-xs)')
  22. dataListWrap.addEventListener('click', function(e) {
  23. if (e.target.classList.contains('mag-btn')) {
  24. console.log(e.target.dataset.magContent)
  25. GM_setClipboard(e.target.dataset.magContent)
  26. var bakText = e.target.textContent
  27. e.target.textContent = '已复制'
  28. setTimeout(function(){
  29. e.target.textContent = bakText
  30. }, 500)
  31. // GM_notification(e.target.dataset.title + '地址复制成功')
  32. e.stopPropagation
  33. }
  34. })
  35.  
  36. rowList.forEach(function(rowDom){
  37. var magDom = document.createElement('button')
  38. var aDom = rowDom.querySelector('a')
  39. var matchRes = aDom.href.match(/\/hash\/(.*)$/)
  40. var hash = matchRes ? matchRes[1] : ''
  41. var magContent = magGenerator(hash, aDom.title)
  42. magDom.textContent = 'mag'
  43. magDom.dataset.magContent = magContent
  44. magDom.dataset.title = aDom.title
  45. magDom.classList.add('hidden-xs','col-sm-1','col-lg-1', 'mag-btn')
  46. var fileDom = rowDom.querySelector('.file')
  47. fileDom.classList.remove('col-lg-9', 'col-sm-8')
  48. fileDom.classList.add('col-lg-8', 'col-sm-7')
  49. aDom.after(magDom)
  50. })
  51. })()