今日诗词V2 JS-SDK

今日诗词API 是一个可以免费调用的诗词接口

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.gf.qytechs.cn/scripts/460899/1156452/%E4%BB%8A%E6%97%A5%E8%AF%97%E8%AF%8DV2%20JS-SDK.js

  1. // ==UserScript==
  2. // @name 今日诗词V2 JS-SDK
  3. // @version 1.2.2
  4. // @description 今日诗词API 是一个可以免费调用的诗词接口
  5. // @author lakeside
  6. // @license GNU GPLv3
  7. // @run-at document-end
  8. // ==/UserScript==
  9. !(function (e) {
  10. var n,
  11. t = {},
  12. o = "jinrishici-token";
  13. function i() {
  14. return (
  15. document.getElementById("jinrishici-sentence") ||
  16. 0 != document.getElementsByClassName("jinrishici-sentence").length
  17. );
  18. }
  19. function c() {
  20. t.load(function (e) {
  21. var n = document.getElementById("jinrishici-sentence"),
  22. t = document.getElementsByClassName("jinrishici-sentence");
  23. if ((n && (n.innerText = e.data.content), 0 !== t.length))
  24. for (var o = 0; o < t.length; o++)
  25. t[o].innerText = e.data.content;
  26. });
  27. }
  28. function r(e, n) {
  29. var t = new XMLHttpRequest();
  30. t.open("get", n),
  31. (t.withCredentials = !0),
  32. t.send(),
  33. (t.onreadystatechange = function (n) {
  34. if (4 === t.readyState) {
  35. var o = JSON.parse(t.responseText);
  36. "success" === o.status
  37. ? e(o)
  38. : console.error(
  39. "今日诗词API加载失败,错误原因:" + o.errMessage
  40. );
  41. }
  42. });
  43. }
  44. (t.load = function (n) {
  45. return e.localStorage && e.localStorage.getItem(o)
  46. ? (function (e, n) {
  47. return r(
  48. e,
  49. "https://v2.jinrishici.com/one.json?client=browser-sdk/1.2&X-User-Token=" +
  50. encodeURIComponent(n)
  51. );
  52. })(n, e.localStorage.getItem(o))
  53. : (function (n) {
  54. return r(function (t) {
  55. e.localStorage.setItem(o, t.token), n(t);
  56. }, "https://v2.jinrishici.com/one.json?client=browser-sdk/1.2");
  57. })(n);
  58. }),
  59. (e.jinrishici = t),
  60. i()
  61. ? c()
  62. : ((n = function () {
  63. i() && c();
  64. }),
  65. "loading" != document.readyState
  66. ? n()
  67. : document.addEventListener
  68. ? document.addEventListener("DOMContentLoaded", n)
  69. : document.attachEvent("onreadystatechange", function () {
  70. "complete" == document.readyState && n();
  71. }));
  72. })(window);

QingJ © 2025

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