Ferium add command for modrinth

2022/6/6 19:57:03

目前為 2023-01-09 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Ferium add command for modrinth
  3. // @namespace Violentmonkey Scripts
  4. // @match https://modrinth.com/*
  5. // @license MIT
  6. // @grant none
  7. // @version 0.2.3
  8. // @author -
  9. // @description 2022/6/6 19:57:03
  10. // ==/UserScript==
  11.  
  12. const observer = new MutationObserver((mutations, observer) => {
  13. for(const mutation of mutations) {
  14. if (mutation.type === 'childList' && mutation.target.id === 'search-results') {
  15. for(const node of mutation.addedNodes) {
  16. if(!node) continue
  17. const buttons = node.querySelector('.title')
  18. if(node.className === 'project-card base-card padding-bg' && !buttons.querySelector('button[title^="ferium"]')) {
  19. const title = node.querySelector('.title a').href.match(/.*\/(.*)/)[1]
  20. buttons.innerHTML += `<button class="iconified-button" onclick='navigator.clipboard.writeText("ferium add ${title}");this.innerText="Copied!"' title="ferium add ${title}">Ferium</button>`
  21. }
  22. }
  23. }
  24. }
  25. });
  26. observer.observe(document.body, { attributes: false, childList: true, subtree: true });
  27.  
  28. // Mod detail
  29. const tabs = document.querySelector(".navigation-card > nav");
  30. const id = location.href.match(/mod\/(.+?)\/?$/)
  31. if(tabs && id) {
  32. tabs.innerHTML += `<a class="nav-link button-animation" data-v-5a76b3fa="" href="javascript:void(0)" onclick='navigator.clipboard.writeText("ferium add ${id[1]}");this.innerHTML="<span>Copied!</span>"' title="ferium add ${id[1]}"><span>Ferium</span></button>`
  33. }
  34.  
  35.  
  36. for(const node of Array.from(document.querySelectorAll('.project-card.base-card'))) {
  37. console.log(node)
  38. const buttons = node.querySelector('.title')
  39. if(!buttons.querySelector('button[title^="ferium"]')) {
  40. const title = node.querySelector('.title a').href.match(/.*\/(.*)/)[1]
  41. buttons.innerHTML += `<button class="iconified-button" onclick='navigator.clipboard.writeText("ferium add ${title}");this.innerText="Copied!"' title="ferium add ${title}">Ferium</button>`
  42. }
  43. }