kib-key

Store API key

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/479408/1277647/kib-key.js

  1. const storeKey = (storageKey, scriptName) => {
  2.  
  3. const display_status = (element) => {
  4. const key = localStorage.getItem(`${storageKey}-key`);
  5. let innerHTML = "";
  6. innerHTML += `<div>`;
  7. innerHTML += `<b>[${scriptName}]</b> API key used <span style="font-family: monospace; font-weight: bold;">${key}</span>`;
  8. if (key) {
  9. innerHTML += ` | Status <b id="${storageKey}-status" style="color: var(--default-green-color); font-weight: bold;">enabled</b>`;
  10. innerHTML += ` | Click <span id="${storageKey}-api-key-rm" class="t-blue" style="cursor: pointer;">here to disable</span> the script`;
  11. } else {
  12. innerHTML += ` | Status <b id="${storageKey}-status" style="color: var(--default-red-color); font-weight: bold;">disabled</b>`;
  13. innerHTML += ` | Click on a key to enable the script`;
  14. }
  15. innerHTML += `</div>`;
  16. innerHTML += `<div class="clear"></div>`;
  17. innerHTML += `<hr class="page-head-delimiter m-top10 m-bottom10">`;
  18. element.innerHTML = innerHTML;
  19. };
  20.  
  21. waitFor(document, "div.preferences-container").then(div => {
  22.  
  23. let injected = false;
  24. const display_element = document.createElement("div");
  25. div.insertAdjacentElement('beforebegin', display_element);
  26.  
  27. // triggered by clicking on crimes tab
  28. const callback = (mutations, observer) => {
  29. [...mutations].forEach(mutation => {
  30. [...mutation.addedNodes].filter(n => n.className && n.className.includes("keyRow___")).forEach(node => {
  31. const key_node = node.querySelector("input");
  32. key_node.style.cursor = "pointer";
  33. });
  34. });
  35. if (!injected) {
  36. display_status(display_element);
  37. injected = true;
  38. }
  39. };
  40. const observer = new MutationObserver(callback);
  41. observer.observe(div, { childList: true, subtree: true });
  42.  
  43. document.querySelector("div.content-wrapper").addEventListener('click', e => {
  44. const button = e.target;
  45. if (button.tagName == 'INPUT' && button.id.includes('key-row') && !localStorage.getItem(`${storageKey}-key`)) {
  46. localStorage.setItem(`${storageKey}-key`, button.value);
  47. }
  48. else if (button.tagName == 'SPAN' && button.id == `${storageKey}-api-key-rm`) {
  49. clearLocalStorage(`${storageKey}`)
  50. }
  51. display_status(display_element);
  52. });
  53.  
  54. });
  55. }

QingJ © 2025

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