tampermonkey storage proxy

none

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/491829/1356221/tampermonkey%20storage%20proxy.js

  1. // ==UserScript==
  2. // @name tampermonkey storage proxy
  3. // @version 0.8
  4. // @description none
  5. // @run-at document-start
  6. // @author You
  7. // @license GPLv3
  8. // @match *://*/*
  9. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAHJQTFRFAAAAEIijAo2yAI60BYyuF4WaFIifAY6zBI2wB4usGIaZEYigIoiZCIyrE4igG4iYD4mjEomhFoedCoqpDIqnDomlBYyvE4efEYmiDYqlA42xBoytD4mkCYqqGYSUFYidC4qoC4upAo6yCoupDYqmCYur4zowOQAAACZ0Uk5TAO////9vr////1+/D/+/L+/Pf/////+f3///////H4////////+5G91rAAACgUlEQVR4nM2Y22KjIBCGidg1264liZqDadK03X3/V2wNKHMC7MpF/xthHD5mgERAqZhWhfYqH6K+Qf2qNNf625hCoFj9/gblMUi5q5jLkXLCKudgyiRm0FMK82cWJp1fLbV5VmvJbCIc0GCYaFqqlDJgADdBjncqAXYobm1xh72aFMflbysteFfdy2Yi1XGOm5HGBzQ1dq7TzEoxjeNTjQZb7VA3e1c7+ImgasAgQ9+xusNVNZIo5xmOMgihIS2PbCQIiHEUdTvhxCcS/kPomfFI2zHy2PkWmA6aNatIJpKFJyekyy02xh5Y3DI9T4aOT6VhIUrsNTFp1pf79Z4SIIVDegl6IJO6cHiL/GimIZDhgTu/BlYWCQzHMl0zBWT/T3KAhtxOuUB9FtBrpsz0RV4xsjHmW+UCaffcSy/5viMGer0/6HdFNMZBq/vjJL38H9Dqx4Fuy0Em12DbZy+9pGtiDijbglwAehyj11n0tRD3WUBm+lwulE/8h4BuA+iWAQQnteg2Xm63WQLTpnMnpjdge0Mgu/GRPsV4xdjQ94Lfi624fabhDkfUqIKNrM64Q837v8yL0prasepCgrtvw1sJpoqanGEX7b5mQboNW8eawXaWXTMfMGxub472hzWzHSn6Sg2G9+6TAyRruE71s+zAzjWaknoyJCQzwxrghH2k5FDT4eqWunuNxyN9QCGcxVod5oADbYnIUkDTGZEf1xDJnSFteQ3KdsT8zYDMQXcHxsevcLH1TrsABzkNPyA/L7b0jg704viMMlpQI96WsHknCt/3YH0kOEo9zcGkwrFK39ck72rmoehmKqo2RKlilzSy/nJKEV45CT38myJp456fezktHjN5aeMAAAAASUVORK5CYII=
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // ==/UserScript==
  13. class storageproxy {
  14. #mainstoragekey
  15. constructor(mainstoragekey = "storageproxy") {
  16. this.#mainstoragekey = mainstoragekey
  17. }
  18. get() {
  19. var mainstoragekey = this.#mainstoragekey
  20. var mainobj = GM_getValue(mainstoragekey)
  21. if (mainobj) {
  22. mainobj = JSON.parse(mainobj)
  23. } else {
  24. GM_setValue(mainstoragekey, "{}")
  25. mainobj = {}
  26. }
  27. return p(mainobj)
  28. function p(container) {
  29. return new Proxy(container, {
  30. get(obj, prop) {
  31. var val = Reflect.get(obj, prop)
  32. if (
  33. ["[object Array]", "[object Object]"].includes(
  34. Object.prototype.toString.call(val)
  35. )
  36. )
  37. return p(val)
  38. return val
  39. },
  40. set(obj, prop, val) {
  41. if (prop == "__all") {
  42. GM_setValue(mainstoragekey, JSON.stringify((mainobj = val)))
  43. return val
  44. }
  45. var temp = Reflect.set(obj, prop, val)
  46. GM_setValue(mainstoragekey, JSON.stringify(mainobj))
  47. return temp
  48. },
  49. deleteProperty(obj, prop) {
  50. var temp = Reflect.deleteProperty(obj, prop)
  51. GM_setValue(mainstoragekey, JSON.stringify(mainobj))
  52. return temp
  53. },
  54. })
  55. }
  56. }
  57. }

QingJ © 2025

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