koishi-plugin-kkk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/LICENSE +674 -0
  3. package/README.md +98 -0
  4. package/assets/web/assets/CronEditor-CYgFpX-g.js +1 -0
  5. package/assets/web/assets/DesktopLayout-iI43ij11.js +1 -0
  6. package/assets/web/assets/MobileLayout-CziU8MCR.js +1 -0
  7. package/assets/web/assets/ThemeSwitch-DFohhwd9.js +1 -0
  8. package/assets/web/assets/index-BRROK0vh.js +47 -0
  9. package/assets/web/assets/index-Dj-StEiS.css +2 -0
  10. package/assets/web/assets/separator-CxcFlCzz.js +1 -0
  11. package/assets/web/favicon.svg +1 -0
  12. package/assets/web/icons.svg +24 -0
  13. package/assets/web/index.html +15 -0
  14. package/assets/webui.html +115 -0
  15. package/client/index.ts +63 -0
  16. package/config/default_config/app.yaml +64 -0
  17. package/config/default_config/bilibili.yaml +116 -0
  18. package/config/default_config/config.json +157 -0
  19. package/config/default_config/cookies.yaml +11 -0
  20. package/config/default_config/douyin.yaml +99 -0
  21. package/config/default_config/kuaishou.yaml +8 -0
  22. package/config/default_config/pushlist.yaml +37 -0
  23. package/config/default_config/request.yaml +22 -0
  24. package/config/default_config/upload.yaml +50 -0
  25. package/config/default_config/xiaohongshu.yaml +23 -0
  26. package/dist/index.js +1 -0
  27. package/lib/compat/axios.js +23 -0
  28. package/lib/compat/cron.js +77 -0
  29. package/lib/compat/esm.js +15 -0
  30. package/lib/compat/express.js +23 -0
  31. package/lib/compat/heroui.js +12 -0
  32. package/lib/compat/lodash.js +33 -0
  33. package/lib/compat/logger.js +118 -0
  34. package/lib/compat/node-karin.js +1053 -0
  35. package/lib/compat/phosphor-icons.js +27 -0
  36. package/lib/compat/qqcard.js +256 -0
  37. package/lib/compat/root.js +44 -0
  38. package/lib/compat/runtime.js +87 -0
  39. package/lib/compat/segment.js +167 -0
  40. package/lib/compat/sqlite3.js +117 -0
  41. package/lib/compat/start.js +7 -0
  42. package/lib/compat/syncConfig.js +65 -0
  43. package/lib/compat/template-react.js +30 -0
  44. package/lib/compat/text.js +65 -0
  45. package/lib/compat/yaml.js +13 -0
  46. package/lib/configBridge.js +91 -0
  47. package/lib/index.js +775 -0
  48. package/lib/karin/app.js +34 -0
  49. package/lib/karin/apps/__ready.js +9 -0
  50. package/lib/karin/apps/admin.js +136 -0
  51. package/lib/karin/apps/help.js +233 -0
  52. package/lib/karin/apps/push.js +291 -0
  53. package/lib/karin/apps/qrlogin.js +176 -0
  54. package/lib/karin/apps/statistics.js +209 -0
  55. package/lib/karin/apps/testPush.js +247 -0
  56. package/lib/karin/apps/tools.js +473 -0
  57. package/lib/karin/apps/update.js +252 -0
  58. package/lib/karin/index.js +37 -0
  59. package/lib/karin/module/db/bilibili.js +831 -0
  60. package/lib/karin/module/db/douyin.js +918 -0
  61. package/lib/karin/module/db/index.js +165 -0
  62. package/lib/karin/module/db/migration.js +199 -0
  63. package/lib/karin/module/db/statistics.js +559 -0
  64. package/lib/karin/module/index.js +94 -0
  65. package/lib/karin/module/server/constants/routes.js +48 -0
  66. package/lib/karin/module/server/controllers/bots.js +230 -0
  67. package/lib/karin/module/server/controllers/config.js +75 -0
  68. package/lib/karin/module/server/controllers/video.js +208 -0
  69. package/lib/karin/module/server/index.js +26 -0
  70. package/lib/karin/module/server/middlewares/auth.js +133 -0
  71. package/lib/karin/module/server/routes/amagi.js +57 -0
  72. package/lib/karin/module/server/routes/api.js +40 -0
  73. package/lib/karin/module/server/routes/index.js +97 -0
  74. package/lib/karin/module/server/routes/ssr.js +16 -0
  75. package/lib/karin/module/server/routes/static.js +43 -0
  76. package/lib/karin/module/utils/Base.js +403 -0
  77. package/lib/karin/module/utils/CardParser.js +487 -0
  78. package/lib/karin/module/utils/Common.js +418 -0
  79. package/lib/karin/module/utils/Config.js +434 -0
  80. package/lib/karin/module/utils/EmojiReaction.js +242 -0
  81. package/lib/karin/module/utils/ErrorHandler/handler.js +114 -0
  82. package/lib/karin/module/utils/ErrorHandler/index.js +55 -0
  83. package/lib/karin/module/utils/ErrorHandler/render.js +182 -0
  84. package/lib/karin/module/utils/ErrorHandler/sender.js +206 -0
  85. package/lib/karin/module/utils/ErrorHandler/strategy.js +41 -0
  86. package/lib/karin/module/utils/ErrorHandler/types.js +2 -0
  87. package/lib/karin/module/utils/ErrorHandler/utils.js +108 -0
  88. package/lib/karin/module/utils/FFmpeg.js +298 -0
  89. package/lib/karin/module/utils/ImageHelper.js +91 -0
  90. package/lib/karin/module/utils/ImageSlice.js +429 -0
  91. package/lib/karin/module/utils/MotionPhoto.js +250 -0
  92. package/lib/karin/module/utils/Network/Downloader.js +413 -0
  93. package/lib/karin/module/utils/Network/ImageDownloader.js +250 -0
  94. package/lib/karin/module/utils/Network/Network.js +332 -0
  95. package/lib/karin/module/utils/Network/ThrottleStream.js +71 -0
  96. package/lib/karin/module/utils/Network/constants.js +129 -0
  97. package/lib/karin/module/utils/Network/helpers.js +174 -0
  98. package/lib/karin/module/utils/Network/index.js +34 -0
  99. package/lib/karin/module/utils/Network/types.js +12 -0
  100. package/lib/karin/module/utils/Networks.js +17 -0
  101. package/lib/karin/module/utils/ParseLock.js +34 -0
  102. package/lib/karin/module/utils/ParseOverride.js +88 -0
  103. package/lib/karin/module/utils/QqCardResolve.js +114 -0
  104. package/lib/karin/module/utils/QqPanel.js +879 -0
  105. package/lib/karin/module/utils/Render/coverTheme.js +256 -0
  106. package/lib/karin/module/utils/Render/index.js +582 -0
  107. package/lib/karin/module/utils/amagiClient.js +338 -0
  108. package/lib/karin/module/utils/avatar.js +201 -0
  109. package/lib/karin/module/utils/bot.js +141 -0
  110. package/lib/karin/module/utils/build-metadata.js +50 -0
  111. package/lib/karin/module/utils/changelog.js +166 -0
  112. package/lib/karin/module/utils/index.js +26 -0
  113. package/lib/karin/module/utils/loginSession.js +259 -0
  114. package/lib/karin/module/utils/parseTip.js +93 -0
  115. package/lib/karin/module/utils/runtime-report.js +140 -0
  116. package/lib/karin/module/utils/semver.js +72 -0
  117. package/lib/karin/module/utils/statisticsAggregate.js +415 -0
  118. package/lib/karin/platform/bilibili/bilibili.js +1805 -0
  119. package/lib/karin/platform/bilibili/comments.js +294 -0
  120. package/lib/karin/platform/bilibili/danmaku.js +555 -0
  121. package/lib/karin/platform/bilibili/dynamic-text.js +827 -0
  122. package/lib/karin/platform/bilibili/genParams.js +37 -0
  123. package/lib/karin/platform/bilibili/getID.js +159 -0
  124. package/lib/karin/platform/bilibili/index.js +24 -0
  125. package/lib/karin/platform/bilibili/live-status.js +40 -0
  126. package/lib/karin/platform/bilibili/login.js +132 -0
  127. package/lib/karin/platform/bilibili/push.js +1397 -0
  128. package/lib/karin/platform/bilibili/riskControl.js +133 -0
  129. package/lib/karin/platform/bilibili/search.js +299 -0
  130. package/lib/karin/platform/common/danmaku-types.js +12 -0
  131. package/lib/karin/platform/douyin/comments.js +310 -0
  132. package/lib/karin/platform/douyin/danmaku.js +893 -0
  133. package/lib/karin/platform/douyin/douyin.js +1145 -0
  134. package/lib/karin/platform/douyin/getID.js +94 -0
  135. package/lib/karin/platform/douyin/index.js +24 -0
  136. package/lib/karin/platform/douyin/login.js +230 -0
  137. package/lib/karin/platform/douyin/push/favorite.js +75 -0
  138. package/lib/karin/platform/douyin/push/index.js +21 -0
  139. package/lib/karin/platform/douyin/push/live.js +69 -0
  140. package/lib/karin/platform/douyin/push/post.js +60 -0
  141. package/lib/karin/platform/douyin/push/recommend.js +74 -0
  142. package/lib/karin/platform/douyin/push/render.js +621 -0
  143. package/lib/karin/platform/douyin/push/types.js +2 -0
  144. package/lib/karin/platform/douyin/push.js +1128 -0
  145. package/lib/karin/platform/douyin/types.js +13 -0
  146. package/lib/karin/platform/douyin/videoQuality.js +222 -0
  147. package/lib/karin/platform/douyin/workType.js +182 -0
  148. package/lib/karin/platform/index.js +20 -0
  149. package/lib/karin/platform/kuaishou/comments.js +91 -0
  150. package/lib/karin/platform/kuaishou/getID.js +43 -0
  151. package/lib/karin/platform/kuaishou/getdata.js +41 -0
  152. package/lib/karin/platform/kuaishou/index.js +20 -0
  153. package/lib/karin/platform/kuaishou/kuaishou.js +122 -0
  154. package/lib/karin/platform/xiaohongshu/comments.js +162 -0
  155. package/lib/karin/platform/xiaohongshu/getID.js +129 -0
  156. package/lib/karin/platform/xiaohongshu/index.js +18 -0
  157. package/lib/karin/platform/xiaohongshu/xiaohongshu.js +643 -0
  158. package/lib/karin/root.js +73 -0
  159. package/lib/karin/setup.js +99 -0
  160. package/lib/karin/types/config/amagi.js +2 -0
  161. package/lib/karin/types/config/app.js +2 -0
  162. package/lib/karin/types/config/bilibili.js +2 -0
  163. package/lib/karin/types/config/cookies.js +2 -0
  164. package/lib/karin/types/config/douyin.js +2 -0
  165. package/lib/karin/types/config/index.js +2 -0
  166. package/lib/karin/types/config/kuaishou.js +2 -0
  167. package/lib/karin/types/config/pushlist.js +2 -0
  168. package/lib/karin/types/config/request.js +2 -0
  169. package/lib/karin/types/config/upload.js +2 -0
  170. package/lib/karin/types/config/xiaohongshu.js +2 -0
  171. package/lib/karin/types/datatypes.js +2 -0
  172. package/lib/karin/types/index.js +18 -0
  173. package/lib/karin/types/netrorks/NetworksConfigType.js +2 -0
  174. package/lib/karin/types/netrorks/index.js +17 -0
  175. package/lib/karin/web.config.js +49 -0
  176. package/lib/ktr/registry.js +82 -0
  177. package/lib/ktr/template/_preview/components/PreviewInfoCard.js +10 -0
  178. package/lib/ktr/template/_preview/components/PreviewLayout.js +10 -0
  179. package/lib/ktr/template/_preview/components/PreviewVideoCard.js +8 -0
  180. package/lib/ktr/template/_preview/render.js +142 -0
  181. package/lib/ktr/template/_preview/types.js +2 -0
  182. package/lib/ktr/template/_preview/utils/status.js +31 -0
  183. package/lib/ktr/template/_preview/utils/time.js +12 -0
  184. package/lib/ktr/template/bilibili/bangumi/components/bangumi.js +127 -0
  185. package/lib/ktr/template/bilibili/bangumi/components/types.js +2 -0
  186. package/lib/ktr/template/bilibili/bangumi/index.js +12 -0
  187. package/lib/ktr/template/bilibili/comment/components/Comment.js +193 -0
  188. package/lib/ktr/template/bilibili/comment/components/types.js +2 -0
  189. package/lib/ktr/template/bilibili/comment/index.js +10 -0
  190. package/lib/ktr/template/bilibili/components/Icons.js +66 -0
  191. package/lib/ktr/template/bilibili/components/shared.js +93 -0
  192. package/lib/ktr/template/bilibili/components/types.js +2 -0
  193. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_ARTICLE/components/DYNAMIC_TYPE_ARTICLE.js +66 -0
  194. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_ARTICLE/components/types.js +2 -0
  195. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_ARTICLE/index.js +10 -0
  196. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_AV/components/DYNAMIC_TYPE_AV.js +87 -0
  197. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_AV/components/types.js +2 -0
  198. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_AV/index.js +10 -0
  199. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_DRAW/components/DYNAMIC_TYPE_DRAW.js +93 -0
  200. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_DRAW/components/types.js +2 -0
  201. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_DRAW/index.js +10 -0
  202. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_FORWARD/components/DYNAMIC_TYPE_FORWARD.js +132 -0
  203. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_FORWARD/components/types.js +2 -0
  204. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_FORWARD/index.js +10 -0
  205. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD/components/DYNAMIC_TYPE_LIVE_RCMD.js +84 -0
  206. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD/components/types.js +2 -0
  207. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD/index.js +10 -0
  208. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_WORD/components/DYNAMIC_TYPE_WORD.js +38 -0
  209. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_WORD/components/types.js +2 -0
  210. package/lib/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_WORD/index.js +10 -0
  211. package/lib/ktr/template/bilibili/dynamic/components/AdditionalCard.js +59 -0
  212. package/lib/ktr/template/bilibili/dynamic/components/CommonComponents.js +30 -0
  213. package/lib/ktr/template/bilibili/dynamic/types.js +2 -0
  214. package/lib/ktr/template/bilibili/qrcodeImg/components/qrcodeImg.js +48 -0
  215. package/lib/ktr/template/bilibili/qrcodeImg/components/types.js +3 -0
  216. package/lib/ktr/template/bilibili/qrcodeImg/index.js +10 -0
  217. package/lib/ktr/template/bilibili/userlist/components/UserList.js +53 -0
  218. package/lib/ktr/template/bilibili/userlist/components/types.js +3 -0
  219. package/lib/ktr/template/bilibili/userlist/index.js +13 -0
  220. package/lib/ktr/template/bilibili/videoInfo/components/types.js +2 -0
  221. package/lib/ktr/template/bilibili/videoInfo/components/videoInfo.js +62 -0
  222. package/lib/ktr/template/bilibili/videoInfo/index.js +10 -0
  223. package/lib/ktr/template/components/AmbientCover.js +36 -0
  224. package/lib/ktr/template/components/DefaultLayout.js +33 -0
  225. package/lib/ktr/template/components/GlowImage.js +276 -0
  226. package/lib/ktr/template/components/QRCodeWithAvatar.js +34 -0
  227. package/lib/ktr/template/components/RolldownLogo.js +6 -0
  228. package/lib/ktr/template/components/ViteLogo.js +6 -0
  229. package/lib/ktr/template/components/iconRegistry.js +173 -0
  230. package/lib/ktr/template/douyin/article-work/components/ArticleWork.js +99 -0
  231. package/lib/ktr/template/douyin/article-work/components/types.js +3 -0
  232. package/lib/ktr/template/douyin/article-work/index.js +10 -0
  233. package/lib/ktr/template/douyin/comment/components/Comment.js +189 -0
  234. package/lib/ktr/template/douyin/comment/components/types.js +2 -0
  235. package/lib/ktr/template/douyin/comment/index.js +10 -0
  236. package/lib/ktr/template/douyin/components/Icons.js +29 -0
  237. package/lib/ktr/template/douyin/components/types.js +3 -0
  238. package/lib/ktr/template/douyin/dynamic/components/Dynamic.js +90 -0
  239. package/lib/ktr/template/douyin/dynamic/components/types.js +3 -0
  240. package/lib/ktr/template/douyin/dynamic/index.js +10 -0
  241. package/lib/ktr/template/douyin/favorite-list/components/FavoriteList.js +30 -0
  242. package/lib/ktr/template/douyin/favorite-list/components/types.js +3 -0
  243. package/lib/ktr/template/douyin/favorite-list/index.js +10 -0
  244. package/lib/ktr/template/douyin/image-work/components/ImageWork.js +136 -0
  245. package/lib/ktr/template/douyin/image-work/components/types.js +2 -0
  246. package/lib/ktr/template/douyin/image-work/index.js +10 -0
  247. package/lib/ktr/template/douyin/live/components/Live.js +51 -0
  248. package/lib/ktr/template/douyin/live/components/types.js +3 -0
  249. package/lib/ktr/template/douyin/live/index.js +10 -0
  250. package/lib/ktr/template/douyin/musicinfo/components/MusicInfo.js +60 -0
  251. package/lib/ktr/template/douyin/musicinfo/components/types.js +3 -0
  252. package/lib/ktr/template/douyin/musicinfo/index.js +10 -0
  253. package/lib/ktr/template/douyin/qrcodeImg/components/qrcodeImg.js +39 -0
  254. package/lib/ktr/template/douyin/qrcodeImg/components/types.js +3 -0
  255. package/lib/ktr/template/douyin/qrcodeImg/index.js +9 -0
  256. package/lib/ktr/template/douyin/recommend-list/components/RecommendList.js +30 -0
  257. package/lib/ktr/template/douyin/recommend-list/components/types.js +3 -0
  258. package/lib/ktr/template/douyin/recommend-list/index.js +10 -0
  259. package/lib/ktr/template/douyin/user_profile/components/UserVideoList.js +54 -0
  260. package/lib/ktr/template/douyin/user_profile/components/types.js +3 -0
  261. package/lib/ktr/template/douyin/user_profile/index.js +9 -0
  262. package/lib/ktr/template/douyin/userlist/components/UserList.js +50 -0
  263. package/lib/ktr/template/douyin/userlist/components/types.js +3 -0
  264. package/lib/ktr/template/douyin/userlist/index.js +13 -0
  265. package/lib/ktr/template/douyin/video-work/components/VideoWork.js +127 -0
  266. package/lib/ktr/template/douyin/video-work/components/types.js +2 -0
  267. package/lib/ktr/template/douyin/video-work/index.js +10 -0
  268. package/lib/ktr/template/kuaishou/comment/components/Comment.js +88 -0
  269. package/lib/ktr/template/kuaishou/comment/components/types.js +2 -0
  270. package/lib/ktr/template/kuaishou/comment/index.js +10 -0
  271. package/lib/ktr/template/other/changelog/components/changelog.js +117 -0
  272. package/lib/ktr/template/other/changelog/components/types.js +3 -0
  273. package/lib/ktr/template/other/changelog/index.js +9 -0
  274. package/lib/ktr/template/other/handlerError/components/errorTitles.js +227 -0
  275. package/lib/ktr/template/other/handlerError/components/handlerError.js +392 -0
  276. package/lib/ktr/template/other/handlerError/components/stackHighlight.js +109 -0
  277. package/lib/ktr/template/other/handlerError/components/types.js +2 -0
  278. package/lib/ktr/template/other/handlerError/index.js +9 -0
  279. package/lib/ktr/template/other/help/components/Help.js +79 -0
  280. package/lib/ktr/template/other/help/components/types.js +3 -0
  281. package/lib/ktr/template/other/help/index.js +12 -0
  282. package/lib/ktr/template/other/live-photo-tip/components/LivePhotoTip.js +80 -0
  283. package/lib/ktr/template/other/live-photo-tip/components/types.js +3 -0
  284. package/lib/ktr/template/other/live-photo-tip/index.js +9 -0
  285. package/lib/ktr/template/other/qrlogin/components/qrlogin.js +58 -0
  286. package/lib/ktr/template/other/qrlogin/components/types.js +3 -0
  287. package/lib/ktr/template/other/qrlogin/index.js +9 -0
  288. package/lib/ktr/template/other/runtime/components/runtime.js +101 -0
  289. package/lib/ktr/template/other/runtime/components/types.js +3 -0
  290. package/lib/ktr/template/other/runtime/index.js +9 -0
  291. package/lib/ktr/template/other/version_warning/components/VersionWarning.js +38 -0
  292. package/lib/ktr/template/other/version_warning/components/types.js +3 -0
  293. package/lib/ktr/template/other/version_warning/index.js +9 -0
  294. package/lib/ktr/template/statistics/components/BoxplotGuide.js +17 -0
  295. package/lib/ktr/template/statistics/components/ChartCard.js +15 -0
  296. package/lib/ktr/template/statistics/components/KpiCard.js +14 -0
  297. package/lib/ktr/template/statistics/components/PlatformTable.js +20 -0
  298. package/lib/ktr/template/statistics/components/RankList.js +61 -0
  299. package/lib/ktr/template/statistics/components/SSRChart.js +22 -0
  300. package/lib/ktr/template/statistics/components/chartPresets.js +630 -0
  301. package/lib/ktr/template/statistics/components/chartTheme.js +226 -0
  302. package/lib/ktr/template/statistics/components/format.js +38 -0
  303. package/lib/ktr/template/statistics/components/types.js +9 -0
  304. package/lib/ktr/template/statistics/global/components/GlobalStatistics.js +246 -0
  305. package/lib/ktr/template/statistics/global/components/types.js +3 -0
  306. package/lib/ktr/template/statistics/global/index.js +9 -0
  307. package/lib/ktr/template/statistics/group/components/GroupStatistics.js +181 -0
  308. package/lib/ktr/template/statistics/group/components/types.js +3 -0
  309. package/lib/ktr/template/statistics/group/index.js +9 -0
  310. package/lib/ktr/template/types/ctx.js +2 -0
  311. package/lib/ktr/template/xiaohongshu/comment/components/Comment.js +99 -0
  312. package/lib/ktr/template/xiaohongshu/comment/components/types.js +3 -0
  313. package/lib/ktr/template/xiaohongshu/comment/index.js +9 -0
  314. package/lib/ktr/template/xiaohongshu/noteInfo/components/noteInfo.js +93 -0
  315. package/lib/ktr/template/xiaohongshu/noteInfo/components/types.js +2 -0
  316. package/lib/ktr/template/xiaohongshu/noteInfo/index.js +9 -0
  317. package/lib/ktr/utils/QRCodeAvatar.js +99 -0
  318. package/lib/ktr/utils/QRcode.js +56 -0
  319. package/lib/ktr/utils/avatarProxy.js +45 -0
  320. package/lib/ktr/utils/cn.js +11 -0
  321. package/lib/ktr/utils/theme.js +12 -0
  322. package/lib/qqFields.json +75 -0
  323. package/lib/qqOptions.js +44 -0
  324. package/lib/richtext/index.js +25 -0
  325. package/lib/richtext/parse/index.js +232 -0
  326. package/lib/richtext/react/cn.js +11 -0
  327. package/lib/richtext/react/index.js +221 -0
  328. package/lib/richtext/types.js +2 -0
  329. package/lib/schema.js +352 -0
  330. package/lib/webui.js +341 -0
  331. package/package.json +88 -0
  332. package/resources/image/bilibili/RICH_TEXT_NODE_TYPE/RICH_TEXT_NODE_TYPE_BV.svg +1 -0
  333. package/resources/image/bilibili/RICH_TEXT_NODE_TYPE/RICH_TEXT_NODE_TYPE_GOODS.svg +1 -0
  334. package/resources/image/bilibili/RICH_TEXT_NODE_TYPE/RICH_TEXT_NODE_TYPE_LOTTERY.svg +1 -0
  335. package/resources/image/bilibili/RICH_TEXT_NODE_TYPE/RICH_TEXT_NODE_TYPE_VIEW_PICTURE.svg +1 -0
  336. package/resources/image/bilibili/RICH_TEXT_NODE_TYPE/RICH_TEXT_NODE_TYPE_VOTE.svg +1 -0
  337. package/resources/image/bilibili/RICH_TEXT_NODE_TYPE/RICH_TEXT_NODE_TYPE_WEB.svg +1 -0
  338. package/resources/image/bilibili/bilibili-dark.png +0 -0
  339. package/resources/image/bilibili/bilibili-light.png +0 -0
  340. package/resources/image/bilibili/bilibili.png +0 -0
  341. package/resources/image/bilibili/id-dark.svg +1 -0
  342. package/resources/image/bilibili/id-light.svg +1 -0
  343. package/resources/image/bilibili/level/lv0.svg +1 -0
  344. package/resources/image/bilibili/level/lv1.svg +1 -0
  345. package/resources/image/bilibili/level/lv2.svg +1 -0
  346. package/resources/image/bilibili/level/lv3.svg +1 -0
  347. package/resources/image/bilibili/level/lv4.svg +1 -0
  348. package/resources/image/bilibili/level/lv5.svg +1 -0
  349. package/resources/image/bilibili/level/lv6.svg +1 -0
  350. package/resources/image/bilibili/level/lv7.svg +1 -0
  351. package/resources/image/bilibili/like-dark.svg +6 -0
  352. package/resources/image/bilibili/like-light.svg +6 -0
  353. package/resources/image/bilibili/play.svg +28 -0
  354. package/resources/image/bilibili/res-local1.png +0 -0
  355. package/resources/image/bilibili/up_pb.svg +1 -0
  356. package/resources/image/bilibili//347/233/264/346/222/255/344/270/255.png +0 -0
  357. package/resources/image/douyin/douyin.png +0 -0
  358. package/resources/image/douyin/dylogo-dark.svg +23 -0
  359. package/resources/image/douyin/dylogo-light.svg +38 -0
  360. package/resources/image/douyin/search-dark.svg +1 -0
  361. package/resources/image/douyin/search-light.svg +3 -0
  362. package/resources/image/douyin//346/212/226/351/237/263-/347/233/264/346/222/255/344/270/255.png +0 -0
  363. package/resources/image/frame-logo.png +0 -0
  364. package/resources/image/kuaishou/logo.png +0 -0
  365. package/resources/image/other/handlerError/Milky.png +0 -0
  366. package/resources/image/other/handlerError/chronocat.svg +43 -0
  367. package/resources/image/other/handlerError/conwechat.webp +0 -0
  368. package/resources/image/other/handlerError/gocq-http.webp +0 -0
  369. package/resources/image/other/handlerError/lagrange.webp +0 -0
  370. package/resources/image/other/handlerError/llonebot.webp +0 -0
  371. package/resources/image/other/handlerError/napcat.webp +0 -0
  372. package/resources/image/other/handlerError/onebot.png +0 -0
  373. package/resources/image/other/handlerError/satori.png +0 -0
  374. package/resources/image/xiaohongshu/logo.png +0 -0
  375. package/resources/template/style.css +23708 -0
  376. package/resources/vite.svg +130 -0
  377. package/scripts/build.mjs +129 -0
  378. package/scripts/check-schema.cjs +55 -0
  379. package/scripts/deploy.mjs +78 -0
  380. package/scripts/make-demo-placeholders.mjs +112 -0
  381. package/scripts/patch-deps.mjs +46 -0
  382. package/scripts/patch-webui.mjs +112 -0
  383. package/scripts/smoke-commands.cjs +39 -0
  384. package/scripts/smoke-config.cjs +122 -0
  385. package/scripts/smoke-douyin.cjs +170 -0
  386. package/scripts/smoke-koishi-commands.cjs +210 -0
  387. package/scripts/smoke-login.cjs +110 -0
  388. package/scripts/smoke-parse.cjs +54 -0
  389. package/scripts/smoke-push-mock.cjs +114 -0
  390. package/scripts/smoke-push.cjs +104 -0
  391. package/scripts/smoke-qq.cjs +147 -0
  392. package/scripts/smoke-qqcard.cjs +108 -0
  393. package/scripts/smoke-qqpanel.cjs +205 -0
  394. package/scripts/smoke-render.cjs +106 -0
  395. package/scripts/smoke-server.cjs +94 -0
  396. package/src/compat/axios.ts +5 -0
  397. package/src/compat/cron.ts +86 -0
  398. package/src/compat/esm.ts +13 -0
  399. package/src/compat/express.ts +5 -0
  400. package/src/compat/heroui.tsx +53 -0
  401. package/src/compat/lodash.ts +32 -0
  402. package/src/compat/logger.ts +121 -0
  403. package/src/compat/node-karin.ts +1064 -0
  404. package/src/compat/phosphor-icons.tsx +25 -0
  405. package/src/compat/qqcard.ts +251 -0
  406. package/src/compat/root.ts +44 -0
  407. package/src/compat/runtime.ts +120 -0
  408. package/src/compat/segment.ts +161 -0
  409. package/src/compat/sqlite3.ts +123 -0
  410. package/src/compat/start.ts +3 -0
  411. package/src/compat/syncConfig.ts +64 -0
  412. package/src/compat/template-react.ts +54 -0
  413. package/src/compat/text.ts +58 -0
  414. package/src/compat/yaml.ts +6 -0
  415. package/src/configBridge.ts +94 -0
  416. package/src/index.ts +769 -0
  417. package/src/karin/app.ts +1 -0
  418. package/src/karin/apps/__ready.ts +14 -0
  419. package/src/karin/apps/admin.ts +127 -0
  420. package/src/karin/apps/help.ts +228 -0
  421. package/src/karin/apps/push.ts +327 -0
  422. package/src/karin/apps/qrlogin.ts +160 -0
  423. package/src/karin/apps/statistics.ts +203 -0
  424. package/src/karin/apps/testPush.ts +226 -0
  425. package/src/karin/apps/tools.ts +510 -0
  426. package/src/karin/apps/update.ts +239 -0
  427. package/src/karin/index.ts +9 -0
  428. package/src/karin/module/db/bilibili.ts +1089 -0
  429. package/src/karin/module/db/douyin.ts +1218 -0
  430. package/src/karin/module/db/index.ts +159 -0
  431. package/src/karin/module/db/migration.ts +249 -0
  432. package/src/karin/module/db/statistics.ts +817 -0
  433. package/src/karin/module/index.ts +37 -0
  434. package/src/karin/module/server/constants/routes.ts +53 -0
  435. package/src/karin/module/server/controllers/bots.ts +289 -0
  436. package/src/karin/module/server/controllers/config.ts +85 -0
  437. package/src/karin/module/server/controllers/video.ts +212 -0
  438. package/src/karin/module/server/index.ts +11 -0
  439. package/src/karin/module/server/middlewares/auth.ts +147 -0
  440. package/src/karin/module/server/routes/amagi.ts +57 -0
  441. package/src/karin/module/server/routes/api.ts +42 -0
  442. package/src/karin/module/server/routes/index.ts +68 -0
  443. package/src/karin/module/server/routes/ssr.ts +14 -0
  444. package/src/karin/module/server/routes/static.ts +43 -0
  445. package/src/karin/module/utils/Base.ts +497 -0
  446. package/src/karin/module/utils/CardParser.ts +503 -0
  447. package/src/karin/module/utils/Common.ts +448 -0
  448. package/src/karin/module/utils/Config.ts +443 -0
  449. package/src/karin/module/utils/EmojiReaction.ts +268 -0
  450. package/src/karin/module/utils/ErrorHandler/handler.ts +124 -0
  451. package/src/karin/module/utils/ErrorHandler/index.ts +48 -0
  452. package/src/karin/module/utils/ErrorHandler/render.ts +180 -0
  453. package/src/karin/module/utils/ErrorHandler/sender.ts +192 -0
  454. package/src/karin/module/utils/ErrorHandler/strategy.ts +41 -0
  455. package/src/karin/module/utils/ErrorHandler/types.ts +122 -0
  456. package/src/karin/module/utils/ErrorHandler/utils.ts +108 -0
  457. package/src/karin/module/utils/FFmpeg.ts +357 -0
  458. package/src/karin/module/utils/ImageHelper.ts +90 -0
  459. package/src/karin/module/utils/ImageSlice.ts +383 -0
  460. package/src/karin/module/utils/MotionPhoto.ts +297 -0
  461. package/src/karin/module/utils/Network/Downloader.ts +481 -0
  462. package/src/karin/module/utils/Network/ImageDownloader.ts +291 -0
  463. package/src/karin/module/utils/Network/Network.ts +344 -0
  464. package/src/karin/module/utils/Network/ThrottleStream.ts +76 -0
  465. package/src/karin/module/utils/Network/constants.ts +135 -0
  466. package/src/karin/module/utils/Network/helpers.ts +183 -0
  467. package/src/karin/module/utils/Network/index.ts +28 -0
  468. package/src/karin/module/utils/Network/types.ts +46 -0
  469. package/src/karin/module/utils/Networks.ts +20 -0
  470. package/src/karin/module/utils/ParseLock.ts +33 -0
  471. package/src/karin/module/utils/ParseOverride.ts +128 -0
  472. package/src/karin/module/utils/QqCardResolve.ts +116 -0
  473. package/src/karin/module/utils/QqPanel.ts +880 -0
  474. package/src/karin/module/utils/Render/coverTheme.ts +294 -0
  475. package/src/karin/module/utils/Render/index.ts +574 -0
  476. package/src/karin/module/utils/amagiClient.ts +368 -0
  477. package/src/karin/module/utils/avatar.ts +220 -0
  478. package/src/karin/module/utils/bot.ts +115 -0
  479. package/src/karin/module/utils/build-metadata.ts +60 -0
  480. package/src/karin/module/utils/changelog.ts +175 -0
  481. package/src/karin/module/utils/index.ts +10 -0
  482. package/src/karin/module/utils/loginSession.ts +291 -0
  483. package/src/karin/module/utils/parseTip.ts +59 -0
  484. package/src/karin/module/utils/runtime-report.ts +142 -0
  485. package/src/karin/module/utils/semver.ts +60 -0
  486. package/src/karin/module/utils/statisticsAggregate.ts +507 -0
  487. package/src/karin/platform/bilibili/bilibili.ts +2004 -0
  488. package/src/karin/platform/bilibili/comments.ts +397 -0
  489. package/src/karin/platform/bilibili/danmaku.ts +653 -0
  490. package/src/karin/platform/bilibili/dynamic-text.ts +926 -0
  491. package/src/karin/platform/bilibili/genParams.ts +30 -0
  492. package/src/karin/platform/bilibili/getID.ts +163 -0
  493. package/src/karin/platform/bilibili/index.ts +8 -0
  494. package/src/karin/platform/bilibili/live-status.ts +36 -0
  495. package/src/karin/platform/bilibili/login.ts +130 -0
  496. package/src/karin/platform/bilibili/push.ts +1615 -0
  497. package/src/karin/platform/bilibili/riskControl.ts +114 -0
  498. package/src/karin/platform/bilibili/search.ts +305 -0
  499. package/src/karin/platform/common/danmaku-types.ts +18 -0
  500. package/src/karin/platform/douyin/comments.ts +404 -0
  501. package/src/karin/platform/douyin/danmaku.ts +1187 -0
  502. package/src/karin/platform/douyin/douyin.ts +1244 -0
  503. package/src/karin/platform/douyin/getID.ts +101 -0
  504. package/src/karin/platform/douyin/index.ts +8 -0
  505. package/src/karin/platform/douyin/login.ts +251 -0
  506. package/src/karin/platform/douyin/push/favorite.ts +97 -0
  507. package/src/karin/platform/douyin/push/index.ts +5 -0
  508. package/src/karin/platform/douyin/push/live.ts +86 -0
  509. package/src/karin/platform/douyin/push/post.ts +75 -0
  510. package/src/karin/platform/douyin/push/recommend.ts +96 -0
  511. package/src/karin/platform/douyin/push/render.ts +768 -0
  512. package/src/karin/platform/douyin/push/types.ts +41 -0
  513. package/src/karin/platform/douyin/push.ts +1241 -0
  514. package/src/karin/platform/douyin/types.ts +151 -0
  515. package/src/karin/platform/douyin/videoQuality.ts +234 -0
  516. package/src/karin/platform/douyin/workType.ts +238 -0
  517. package/src/karin/platform/index.ts +4 -0
  518. package/src/karin/platform/kuaishou/comments.ts +114 -0
  519. package/src/karin/platform/kuaishou/getID.ts +48 -0
  520. package/src/karin/platform/kuaishou/getdata.ts +78 -0
  521. package/src/karin/platform/kuaishou/index.ts +4 -0
  522. package/src/karin/platform/kuaishou/kuaishou.ts +130 -0
  523. package/src/karin/platform/xiaohongshu/comments.ts +227 -0
  524. package/src/karin/platform/xiaohongshu/getID.ts +127 -0
  525. package/src/karin/platform/xiaohongshu/index.ts +2 -0
  526. package/src/karin/platform/xiaohongshu/xiaohongshu.ts +733 -0
  527. package/src/karin/root.ts +78 -0
  528. package/src/karin/setup.ts +77 -0
  529. package/src/karin/types/config/amagi.ts +46 -0
  530. package/src/karin/types/config/app.ts +129 -0
  531. package/src/karin/types/config/bilibili.ts +121 -0
  532. package/src/karin/types/config/cookies.ts +11 -0
  533. package/src/karin/types/config/douyin.ts +93 -0
  534. package/src/karin/types/config/index.ts +41 -0
  535. package/src/karin/types/config/kuaishou.ts +10 -0
  536. package/src/karin/types/config/pushlist.ts +55 -0
  537. package/src/karin/types/config/request.ts +27 -0
  538. package/src/karin/types/config/upload.ts +49 -0
  539. package/src/karin/types/config/xiaohongshu.ts +24 -0
  540. package/src/karin/types/datatypes.ts +42 -0
  541. package/src/karin/types/index.ts +4 -0
  542. package/src/karin/types/netrorks/NetworksConfigType.ts +61 -0
  543. package/src/karin/types/netrorks/index.ts +1 -0
  544. package/src/karin/web.config.ts +48 -0
  545. package/src/ktr/registry.ts +55 -0
  546. package/src/ktr/template/_preview/components/PreviewInfoCard.tsx +33 -0
  547. package/src/ktr/template/_preview/components/PreviewLayout.tsx +65 -0
  548. package/src/ktr/template/_preview/components/PreviewVideoCard.tsx +22 -0
  549. package/src/ktr/template/_preview/render.ts +158 -0
  550. package/src/ktr/template/_preview/types.ts +15 -0
  551. package/src/ktr/template/_preview/utils/status.ts +29 -0
  552. package/src/ktr/template/_preview/utils/time.ts +8 -0
  553. package/src/ktr/template/bilibili/bangumi/components/bangumi.tsx +462 -0
  554. package/src/ktr/template/bilibili/bangumi/components/types.ts +36 -0
  555. package/src/ktr/template/bilibili/bangumi/index.tsx +9 -0
  556. package/src/ktr/template/bilibili/comment/components/Comment.tsx +657 -0
  557. package/src/ktr/template/bilibili/comment/components/types.ts +26 -0
  558. package/src/ktr/template/bilibili/comment/index.tsx +11 -0
  559. package/src/ktr/template/bilibili/components/Icons.tsx +209 -0
  560. package/src/ktr/template/bilibili/components/shared.tsx +162 -0
  561. package/src/ktr/template/bilibili/components/types.ts +388 -0
  562. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_ARTICLE/components/DYNAMIC_TYPE_ARTICLE.tsx +251 -0
  563. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_ARTICLE/components/types.ts +67 -0
  564. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_ARTICLE/index.tsx +12 -0
  565. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_AV/components/DYNAMIC_TYPE_AV.tsx +238 -0
  566. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_AV/components/types.ts +39 -0
  567. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_AV/index.tsx +12 -0
  568. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_DRAW/components/DYNAMIC_TYPE_DRAW.tsx +205 -0
  569. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_DRAW/components/types.ts +20 -0
  570. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_DRAW/index.tsx +11 -0
  571. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_FORWARD/components/DYNAMIC_TYPE_FORWARD.tsx +348 -0
  572. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_FORWARD/components/types.ts +16 -0
  573. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_FORWARD/index.tsx +12 -0
  574. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD/components/DYNAMIC_TYPE_LIVE_RCMD.tsx +264 -0
  575. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD/components/types.ts +32 -0
  576. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD/index.tsx +12 -0
  577. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_WORD/components/DYNAMIC_TYPE_WORD.tsx +68 -0
  578. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_WORD/components/types.ts +14 -0
  579. package/src/ktr/template/bilibili/dynamic/DYNAMIC_TYPE_WORD/index.tsx +12 -0
  580. package/src/ktr/template/bilibili/dynamic/components/AdditionalCard.tsx +165 -0
  581. package/src/ktr/template/bilibili/dynamic/components/CommonComponents.tsx +142 -0
  582. package/src/ktr/template/bilibili/dynamic/types.ts +382 -0
  583. package/src/ktr/template/bilibili/qrcodeImg/components/qrcodeImg.tsx +179 -0
  584. package/src/ktr/template/bilibili/qrcodeImg/components/types.ts +9 -0
  585. package/src/ktr/template/bilibili/qrcodeImg/index.tsx +12 -0
  586. package/src/ktr/template/bilibili/userlist/components/UserList.tsx +246 -0
  587. package/src/ktr/template/bilibili/userlist/components/types.ts +35 -0
  588. package/src/ktr/template/bilibili/userlist/index.tsx +11 -0
  589. package/src/ktr/template/bilibili/videoInfo/components/types.ts +28 -0
  590. package/src/ktr/template/bilibili/videoInfo/components/videoInfo.tsx +217 -0
  591. package/src/ktr/template/bilibili/videoInfo/index.tsx +12 -0
  592. package/src/ktr/template/components/AmbientCover.tsx +50 -0
  593. package/src/ktr/template/components/DefaultLayout.tsx +166 -0
  594. package/src/ktr/template/components/GlowImage.tsx +572 -0
  595. package/src/ktr/template/components/QRCodeWithAvatar.tsx +52 -0
  596. package/src/ktr/template/components/RolldownLogo.tsx +110 -0
  597. package/src/ktr/template/components/ViteLogo.tsx +134 -0
  598. package/src/ktr/template/components/iconRegistry.ts +294 -0
  599. package/src/ktr/template/douyin/article-work/components/ArticleWork.tsx +301 -0
  600. package/src/ktr/template/douyin/article-work/components/types.ts +53 -0
  601. package/src/ktr/template/douyin/article-work/index.tsx +12 -0
  602. package/src/ktr/template/douyin/comment/components/Comment.tsx +612 -0
  603. package/src/ktr/template/douyin/comment/components/types.ts +85 -0
  604. package/src/ktr/template/douyin/comment/index.tsx +11 -0
  605. package/src/ktr/template/douyin/components/Icons.tsx +75 -0
  606. package/src/ktr/template/douyin/components/types.ts +83 -0
  607. package/src/ktr/template/douyin/dynamic/components/Dynamic.tsx +283 -0
  608. package/src/ktr/template/douyin/dynamic/components/types.ts +46 -0
  609. package/src/ktr/template/douyin/dynamic/index.tsx +11 -0
  610. package/src/ktr/template/douyin/favorite-list/components/FavoriteList.tsx +201 -0
  611. package/src/ktr/template/douyin/favorite-list/components/types.ts +38 -0
  612. package/src/ktr/template/douyin/favorite-list/index.tsx +12 -0
  613. package/src/ktr/template/douyin/image-work/components/ImageWork.tsx +437 -0
  614. package/src/ktr/template/douyin/image-work/components/types.ts +78 -0
  615. package/src/ktr/template/douyin/image-work/index.tsx +11 -0
  616. package/src/ktr/template/douyin/live/components/Live.tsx +229 -0
  617. package/src/ktr/template/douyin/live/components/types.ts +47 -0
  618. package/src/ktr/template/douyin/live/index.tsx +11 -0
  619. package/src/ktr/template/douyin/musicinfo/components/MusicInfo.tsx +187 -0
  620. package/src/ktr/template/douyin/musicinfo/components/types.ts +31 -0
  621. package/src/ktr/template/douyin/musicinfo/index.tsx +11 -0
  622. package/src/ktr/template/douyin/qrcodeImg/components/qrcodeImg.tsx +170 -0
  623. package/src/ktr/template/douyin/qrcodeImg/components/types.ts +9 -0
  624. package/src/ktr/template/douyin/qrcodeImg/index.tsx +9 -0
  625. package/src/ktr/template/douyin/recommend-list/components/RecommendList.tsx +201 -0
  626. package/src/ktr/template/douyin/recommend-list/components/types.ts +37 -0
  627. package/src/ktr/template/douyin/recommend-list/index.tsx +12 -0
  628. package/src/ktr/template/douyin/user_profile/components/UserVideoList.tsx +225 -0
  629. package/src/ktr/template/douyin/user_profile/components/types.ts +71 -0
  630. package/src/ktr/template/douyin/user_profile/index.tsx +9 -0
  631. package/src/ktr/template/douyin/userlist/components/UserList.tsx +229 -0
  632. package/src/ktr/template/douyin/userlist/components/types.ts +35 -0
  633. package/src/ktr/template/douyin/userlist/index.tsx +11 -0
  634. package/src/ktr/template/douyin/video-work/components/VideoWork.tsx +398 -0
  635. package/src/ktr/template/douyin/video-work/components/types.ts +80 -0
  636. package/src/ktr/template/douyin/video-work/index.tsx +11 -0
  637. package/src/ktr/template/font.css +6071 -0
  638. package/src/ktr/template/global.d.ts +69 -0
  639. package/src/ktr/template/kuaishou/comment/components/Comment.tsx +207 -0
  640. package/src/ktr/template/kuaishou/comment/components/types.ts +47 -0
  641. package/src/ktr/template/kuaishou/comment/index.tsx +11 -0
  642. package/src/ktr/template/other/changelog/components/changelog.tsx +411 -0
  643. package/src/ktr/template/other/changelog/components/types.ts +21 -0
  644. package/src/ktr/template/other/changelog/index.tsx +9 -0
  645. package/src/ktr/template/other/handlerError/components/errorTitles.ts +224 -0
  646. package/src/ktr/template/other/handlerError/components/handlerError.tsx +1076 -0
  647. package/src/ktr/template/other/handlerError/components/stackHighlight.ts +127 -0
  648. package/src/ktr/template/other/handlerError/components/types.ts +124 -0
  649. package/src/ktr/template/other/handlerError/index.tsx +9 -0
  650. package/src/ktr/template/other/help/components/Help.tsx +249 -0
  651. package/src/ktr/template/other/help/components/types.ts +47 -0
  652. package/src/ktr/template/other/help/index.tsx +9 -0
  653. package/src/ktr/template/other/live-photo-tip/components/LivePhotoTip.tsx +295 -0
  654. package/src/ktr/template/other/live-photo-tip/components/types.ts +8 -0
  655. package/src/ktr/template/other/live-photo-tip/index.tsx +9 -0
  656. package/src/ktr/template/other/qrlogin/components/qrlogin.tsx +295 -0
  657. package/src/ktr/template/other/qrlogin/components/types.ts +11 -0
  658. package/src/ktr/template/other/qrlogin/index.tsx +9 -0
  659. package/src/ktr/template/other/runtime/components/runtime.tsx +347 -0
  660. package/src/ktr/template/other/runtime/components/types.ts +75 -0
  661. package/src/ktr/template/other/runtime/index.tsx +9 -0
  662. package/src/ktr/template/other/version_warning/components/VersionWarning.tsx +392 -0
  663. package/src/ktr/template/other/version_warning/components/types.ts +8 -0
  664. package/src/ktr/template/other/version_warning/index.tsx +9 -0
  665. package/src/ktr/template/statistics/components/BoxplotGuide.tsx +57 -0
  666. package/src/ktr/template/statistics/components/ChartCard.tsx +40 -0
  667. package/src/ktr/template/statistics/components/KpiCard.tsx +39 -0
  668. package/src/ktr/template/statistics/components/PlatformTable.tsx +83 -0
  669. package/src/ktr/template/statistics/components/RankList.tsx +127 -0
  670. package/src/ktr/template/statistics/components/SSRChart.tsx +41 -0
  671. package/src/ktr/template/statistics/components/chartPresets.ts +700 -0
  672. package/src/ktr/template/statistics/components/chartTheme.ts +234 -0
  673. package/src/ktr/template/statistics/components/format.ts +33 -0
  674. package/src/ktr/template/statistics/components/types.ts +92 -0
  675. package/src/ktr/template/statistics/global/components/GlobalStatistics.tsx +597 -0
  676. package/src/ktr/template/statistics/global/components/types.ts +138 -0
  677. package/src/ktr/template/statistics/global/index.tsx +9 -0
  678. package/src/ktr/template/statistics/group/components/GroupStatistics.tsx +468 -0
  679. package/src/ktr/template/statistics/group/components/types.ts +113 -0
  680. package/src/ktr/template/statistics/group/index.tsx +9 -0
  681. package/src/ktr/template/style.css +65 -0
  682. package/src/ktr/template/types/ctx.ts +42 -0
  683. package/src/ktr/template/xiaohongshu/comment/components/Comment.tsx +264 -0
  684. package/src/ktr/template/xiaohongshu/comment/components/types.ts +119 -0
  685. package/src/ktr/template/xiaohongshu/comment/index.tsx +9 -0
  686. package/src/ktr/template/xiaohongshu/noteInfo/components/noteInfo.tsx +271 -0
  687. package/src/ktr/template/xiaohongshu/noteInfo/components/types.ts +66 -0
  688. package/src/ktr/template/xiaohongshu/noteInfo/index.tsx +9 -0
  689. package/src/ktr/utils/QRCodeAvatar.ts +102 -0
  690. package/src/ktr/utils/QRcode.ts +65 -0
  691. package/src/ktr/utils/avatarProxy.ts +42 -0
  692. package/src/ktr/utils/cn.ts +6 -0
  693. package/src/ktr/utils/theme.ts +10 -0
  694. package/src/qqFields.json +75 -0
  695. package/src/qqOptions.ts +64 -0
  696. package/src/richtext/index.ts +9 -0
  697. package/src/richtext/parse/index.ts +271 -0
  698. package/src/richtext/react/cn.ts +6 -0
  699. package/src/richtext/react/index.tsx +582 -0
  700. package/src/richtext/types.ts +320 -0
  701. package/src/schema.ts +372 -0
  702. package/src/webui.ts +352 -0
package/lib/webui.js ADDED
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerWebUi = registerWebUi;
7
+ /**
8
+ * kkk 的配置 WebUI —— 照搬原版 SPA,并且**免登录**。
9
+ *
10
+ * 界面就是 koishi-plugin-kkk 自带的那个 React 面板(assets/web/),服务端按它的接口契约实现。
11
+ *
12
+ * ## 登录策略
13
+ * 不设独立口令。只认 Koishi 的 **auth 插件**:
14
+ * - auth 没启用(当前部署就是关的)→ 全部免登录,直接进;
15
+ * - auth 启用了 → 要求控制台已登录(用控制台的 cookie 查 token 表)。
16
+ *
17
+ * ## 原版 SPA 的契约
18
+ * POST /api/v1/login → { code, data: { accessToken, userId, refreshToken }, message }
19
+ * POST /api/v1/refresh → { code, data: { accessToken }, message }
20
+ * GET /kkk/v1/bots → { code, data: Bot[], message }
21
+ * GET /kkk/v1/bots/:id/groups
22
+ * POST /kkk/v1/groups/batch
23
+ * 静态资源在 /kkk/assets/ 下;SPA 自己的路由(/kkk/assets/config 等)也要回 index.html
24
+ *
25
+ * 另外留了一个简易编辑页 /kkk/edit(改插件配置用,保存写回 koishi.yml)。
26
+ */
27
+ const node_crypto_1 = __importDefault(require("node:crypto"));
28
+ const node_fs_1 = __importDefault(require("node:fs"));
29
+ const node_path_1 = __importDefault(require("node:path"));
30
+ const qqOptions_1 = require("./qqOptions");
31
+ const COOKIE_NAME = 'kkk_config_token';
32
+ const TOKEN_TTL = 7 * 24 * 60 * 60 * 1000;
33
+ function registerWebUi({ ctx, config, rawConfig, logger, pluginRoot }) {
34
+ const server = ctx.server;
35
+ if (!server || typeof server.get !== 'function') {
36
+ logger.debug('[kkk] 没有 server 服务,跳过配置 WebUI');
37
+ return;
38
+ }
39
+ const webRoot = node_path_1.default.join(pluginRoot, 'assets', 'web');
40
+ const MIME = {
41
+ '.html': 'text/html; charset=utf-8',
42
+ '.js': 'text/javascript; charset=utf-8',
43
+ '.css': 'text/css; charset=utf-8',
44
+ '.svg': 'image/svg+xml',
45
+ '.png': 'image/png',
46
+ '.json': 'application/json; charset=utf-8'
47
+ };
48
+ const readWebFile = (relative) => {
49
+ try {
50
+ const base = node_path_1.default.resolve(webRoot);
51
+ const full = node_path_1.default.resolve(base, relative.replace(/^[/\\]+/, ''));
52
+ if (!full.startsWith(base))
53
+ return null;
54
+ return node_fs_1.default.statSync(full).isFile() ? node_fs_1.default.readFileSync(full) : null;
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ };
60
+ /**
61
+ * 返回 SPA 首页。
62
+ *
63
+ * 原版面板自带一个登录页(karin 那边要输 WebUI 口令)。Koishi 这边走 auth 插件:
64
+ * **没启用 auth 时接口本来就放行**,所以这里注入一段自动登录脚本,
65
+ * 直接把口令框填上并提交 —— 用户看到的就直接是配置界面,不用再想「key 是什么」。
66
+ */
67
+ const autoLoginScript = `<script>
68
+ (function () {
69
+ // 面板把登录态存在 localStorage 的 accessToken / userId / refreshToken 三个键里,
70
+ // 登录页只是个表单壳子 —— 与其去点 DOM(React 受控组件很脆),不如直接调登录接口把凭据写进去再刷新。
71
+ try {
72
+ if (localStorage.getItem('accessToken')) return;
73
+ // 防呆:万一接口一直不给凭据,也别在这里无限刷新
74
+ if (sessionStorage.getItem('kkk-autologin') === '1') return;
75
+ sessionStorage.setItem('kkk-autologin', '1');
76
+ fetch('/kkk/api/v1/login', { credentials: 'include' })
77
+ .then(function (res) { return res.json() })
78
+ .then(function (res) {
79
+ var data = res && res.data;
80
+ if (!data || !data.accessToken) return;
81
+ localStorage.setItem('userId', String(data.userId || 'kkk'));
82
+ localStorage.setItem('accessToken', data.accessToken);
83
+ localStorage.setItem('refreshToken', data.refreshToken || '');
84
+ location.reload();
85
+ })
86
+ .catch(function () {});
87
+ } catch (e) { /* 无痕模式可能禁用 localStorage,那就让用户自己登 */ }
88
+ })();
89
+ </script>`;
90
+ const indexHtml = () => {
91
+ const raw = readWebFile('index.html');
92
+ if (!raw)
93
+ return Buffer.from('<h1>KKK Config</h1><p>assets/web/index.html 缺失</p>');
94
+ // 只有「不需要登录」时才自动登录;开了 auth 插件就得让用户自己登控制台
95
+ if (authRequired())
96
+ return raw;
97
+ const text = raw.toString('utf-8');
98
+ return Buffer.from(text.includes('</body>') ? text.replace('</body>', autoLoginScript + '</body>') : text + autoLoginScript);
99
+ };
100
+ /* ---------------- 登录策略 ---------------- */
101
+ /** 只有启用 auth 插件才需要登录;当前部署是关的 → 免登录 */
102
+ const authRequired = () => !!ctx.get?.('auth');
103
+ /** 控制台登录态:auth 插件的 cookie 形如 name=id:token,用它查 token 表 */
104
+ const consoleAuthed = async (request) => {
105
+ if (!authRequired())
106
+ return true;
107
+ const database = ctx.get?.('database');
108
+ if (!database?.get)
109
+ return false;
110
+ const cookie = String(request?.headers?.cookie || '');
111
+ for (const match of cookie.matchAll(/(?:^|;\s*)([\w-]+)=(\d+):([0-9a-f]+)/g)) {
112
+ try {
113
+ const rows = await database.get('token', { id: Number(match[2]), token: match[3] }, ['expiredAt']);
114
+ if (rows?.[0] && Number(rows[0].expiredAt) > Date.now())
115
+ return true;
116
+ }
117
+ catch { /* 试下一个 cookie */ }
118
+ }
119
+ return false;
120
+ };
121
+ /**
122
+ * 整理写回 koishi.yml 的那份配置:QQ 适配器的字段统一收进 `qq` 分组。
123
+ *
124
+ * 早期版本这些开关直接写在顶层,摊平时 `qq` 优先,清掉顶层那份免得两边数值打架
125
+ * (用户会看到表单和实际生效值不一致)。
126
+ */
127
+ const normalize = (source) => {
128
+ const next = { ...source };
129
+ const group = { ...(0, qqOptions_1.readQqOptions)(source), ...(next.qq ?? {}) };
130
+ let used = !!next.qq;
131
+ for (const key of qqOptions_1.QQ_KEYS) {
132
+ if (next[key] !== undefined) {
133
+ used = true;
134
+ delete next[key];
135
+ }
136
+ }
137
+ if (used)
138
+ next.qq = group;
139
+ return next;
140
+ };
141
+ const tokens = new Map();
142
+ const issueToken = () => {
143
+ const accessToken = node_crypto_1.default.randomBytes(16).toString('hex');
144
+ const refreshToken = node_crypto_1.default.randomBytes(16).toString('hex');
145
+ tokens.set(accessToken, Date.now());
146
+ tokens.set(refreshToken, Date.now());
147
+ return { accessToken, refreshToken, userId: 'kkk' };
148
+ };
149
+ const authed = (request) => {
150
+ if (!authRequired())
151
+ return true;
152
+ const header = String(request?.headers?.authorization || request?.headers?.['x-access-token'] || '');
153
+ if (header && tokens.has(header.replace(/^Bearer\s+/i, '')))
154
+ return true;
155
+ const cookie = String(request?.headers?.cookie || '');
156
+ const match = new RegExp(COOKIE_NAME + '=([0-9a-f]+)').exec(cookie);
157
+ return !!(match && tokens.has(match[1]));
158
+ };
159
+ const ok = (response, data = null, message = '') => {
160
+ response.type = 'application/json; charset=utf-8';
161
+ response.body = JSON.stringify({ code: 200, data, message });
162
+ };
163
+ const fail = (response, code, message) => {
164
+ response.status = 200;
165
+ response.type = 'application/json; charset=utf-8';
166
+ response.body = JSON.stringify({ code, data: null, message });
167
+ };
168
+ /* ---------------- 鉴权接口 ---------------- */
169
+ /**
170
+ * 路径说明:原版 SPA 调的是 `/api/v1/login`,但 **`/api/*` 是 Koishi 控制台自己的路由**
171
+ * (只允许 GET,我们注册的 POST 会被 405 掉)。所以把 SPA 包里的地址改成了 `/kkk/api/v1/*`
172
+ * (assets/web 里已经替换过),服务端两个路径都注册一份,外部按原路径调也照样能用。
173
+ */
174
+ const loginHandler = async (response) => {
175
+ // 免登录模式下任何输入都放行(原版会弹登录框,随便点一下即可进入)
176
+ if (!(await consoleAuthed(response.request))) {
177
+ logger.warn('[kkk] 配置面板需要先登录 Koishi 控制台');
178
+ return fail(response, 401, '需要先登录 Koishi 控制台');
179
+ }
180
+ ok(response, issueToken(), '登录成功');
181
+ };
182
+ const refreshHandler = (response) => {
183
+ const body = response.request?.body || {};
184
+ const refresh = String(body.refreshToken || '');
185
+ if (authRequired() && !tokens.has(refresh))
186
+ return fail(response, 401, 'refreshToken 无效');
187
+ ok(response, issueToken(), '已刷新');
188
+ };
189
+ /**
190
+ * 用 **GET** 注册:Koishi 控制台注册了一条 GET 通配路由 + allowedMethods,
191
+ * 所有 POST 到任意路径都会被 405 掉(实测)。反正免登录模式下不看请求体,GET 完全够用,
192
+ * SPA 包里对应调用也已经改成 GET(assets/web 说明)。
193
+ */
194
+ for (const prefix of ['/kkk/api/v1', '/api/v1']) {
195
+ server.get(prefix + '/login', loginHandler);
196
+ server.get(prefix + '/refresh', refreshHandler);
197
+ // 兼容按 POST 调用的外部脚本(在没有控制台通配路由的环境下才生效)
198
+ server.post(prefix + '/login', loginHandler);
199
+ server.post(prefix + '/refresh', refreshHandler);
200
+ }
201
+ /* ---------------- 配置接口(原版 SPA 的主功能) ---------------- */
202
+ /**
203
+ * 原版面板的配置读写:
204
+ * GET /kkk/v1/config → { code: 200, data: <配置> }
205
+ * POST /kkk/v1/config → 保存(body 就是整份配置)
206
+ * 判定成功的方式是 `(res.success || res.code === 200) && res.data !== undefined`,
207
+ * 所以 data 一定要给(哪怕空对象),否则前端会直接抛「获取配置失败」。
208
+ */
209
+ server.get('/kkk/v1/config', (response) => {
210
+ if (!authed(response))
211
+ return fail(response, 401, '鉴权失败: 缺少authorization');
212
+ // 面板面向的是 karin 那份 config.json(画质 / 发送内容 / 推送 / 渲染…),
213
+ // 在 Koishi 这边它就存在 `upstream` 里,启动时同步进 config.json。
214
+ // 另外附一份 `qq`(「QQ 适配器」分类):面板/切片/番剧选集/卡片识别这些是 Koishi 侧才有的开关,
215
+ // 面板里作为独立分类显示,保存时由下面的 POST 拆出来写回 koishi.yml。
216
+ ok(response, { ...(config?.upstream ?? {}), qq: (0, qqOptions_1.readQqOptions)(config) }, '');
217
+ });
218
+ server.post('/kkk/v1/config', async (response) => {
219
+ if (!authed(response))
220
+ return fail(response, 401, '鉴权失败: 缺少authorization');
221
+ try {
222
+ const body = response.request?.body;
223
+ if (!body || typeof body !== 'object')
224
+ throw new Error('请求体不是配置对象');
225
+ // 原版面板发过来的是整份配置:
226
+ // - `qq`(面板里的「QQ 适配器」分类)→ 写回插件自己的配置(koishi.yml)
227
+ // - 其余整份 → upstream(Karin 版的 config.json 形状)
228
+ // 保存都走 scope.update → 落盘 koishi.yml → 热重载 → 启动时同步回 config.json
229
+ const { qq, ...upstream } = body;
230
+ await ctx.scope.update(normalize({
231
+ ...(rawConfig ?? config),
232
+ ...(qq && typeof qq === 'object' ? { qq: { ...(0, qqOptions_1.readQqOptions)(config), ...qq } } : {}),
233
+ upstream
234
+ }));
235
+ logger.info('[kkk] 配置面板已保存(QQ 适配器 → 插件配置,其余 → upstream,写回 koishi.yml)');
236
+ ok(response, null, '已保存');
237
+ }
238
+ catch (error) {
239
+ logger.warn('[kkk] 配置面板保存失败: ' + String(error?.message ?? error));
240
+ fail(response, 500, String(error?.message ?? error));
241
+ }
242
+ });
243
+ /* ---------------- 数据接口 ---------------- */
244
+ const botList = () => {
245
+ const bots = ctx.bots ?? [];
246
+ return bots.map((bot) => ({
247
+ id: String(bot.selfId ?? bot.user?.id ?? ''),
248
+ name: String(bot.user?.name ?? bot.selfId ?? ''),
249
+ avatar: String(bot.user?.avatar ?? ''),
250
+ platform: String(bot.platform ?? ''),
251
+ status: 1
252
+ }));
253
+ };
254
+ server.get('/kkk/v1/bots', (response) => {
255
+ if (!authed(response))
256
+ return fail(response, 401, '鉴权失败: 缺少authorization');
257
+ ok(response, botList(), '');
258
+ });
259
+ server.get('/kkk/v1/bots/:id/groups', (response) => {
260
+ if (!authed(response))
261
+ return fail(response, 401, '鉴权失败: 缺少authorization');
262
+ ok(response, [], '');
263
+ });
264
+ server.post('/kkk/v1/groups/batch', (response) => {
265
+ if (!authed(response))
266
+ return fail(response, 401, '鉴权失败: 缺少authorization');
267
+ ok(response, null, '');
268
+ });
269
+ /* ---------------- 静态资源 + SPA 路由 ---------------- */
270
+ /**
271
+ * 静态资源 + SPA 路由。
272
+ *
273
+ * 用**中间件**而不是 `server.get('/kkk/assets/*')`:新版 path-to-regexp 不再接受
274
+ * 这种无名的 `*` 通配(会直接抛 `Unexpected MODIFIER` 把整个插件搞崩),
275
+ * 手动判前缀最省事也最兼容。
276
+ */
277
+ server.use(async (response, next) => {
278
+ const requestPath = String(response.path || '');
279
+ if (!requestPath.startsWith('/kkk/assets/'))
280
+ return next();
281
+ const relative = decodeURIComponent(requestPath.slice('/kkk/assets/'.length));
282
+ const file = relative ? readWebFile(relative) : null;
283
+ if (!file) {
284
+ // SPA 自己的前端路由(/kkk/assets/config、/kkk/assets/about 等)→ 回 index.html
285
+ response.type = 'text/html; charset=utf-8';
286
+ response.body = indexHtml();
287
+ return;
288
+ }
289
+ response.type = MIME[node_path_1.default.extname(relative).toLowerCase()] ?? 'application/octet-stream';
290
+ // 不缓存:面板的前端包会被我们改动(接口路径等),浏览器缓存旧包会直接导致「打不开/接口报错」
291
+ response.set('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
292
+ response.body = file;
293
+ });
294
+ for (const route of ['/kkk', '/kkk/', '/kkk/login']) {
295
+ server.get(route, (response) => {
296
+ response.type = 'text/html; charset=utf-8';
297
+ response.body = indexHtml();
298
+ });
299
+ }
300
+ /* ---------------- 简易编辑页(改插件配置) ---------------- */
301
+ server.get('/kkk/edit', (response) => {
302
+ let body;
303
+ try {
304
+ body = node_fs_1.default.readFileSync(node_path_1.default.join(pluginRoot, 'assets', 'webui.html'), 'utf-8');
305
+ }
306
+ catch {
307
+ body = '<h1>kkk 配置</h1><p>assets/webui.html 缺失</p>';
308
+ }
309
+ const token = issueToken();
310
+ response.set('Set-Cookie', COOKIE_NAME + '=' + token.accessToken + '; Path=/; HttpOnly; Max-Age=' + Math.floor(TOKEN_TTL / 1000));
311
+ response.type = 'text/html; charset=utf-8';
312
+ response.body = body;
313
+ });
314
+ server.get('/kkk/api/config', (response) => {
315
+ if (!authed(response))
316
+ return fail(response, 401, '未登录');
317
+ const { upstream, ...options } = config || {};
318
+ ok(response, { options, upstream: upstream || {} }, '');
319
+ });
320
+ server.post('/kkk/api/save', async (response) => {
321
+ if (!authed(response))
322
+ return fail(response, 401, '未登录');
323
+ try {
324
+ const body = response.request?.body || {};
325
+ const patch = { ...(body.options || {}) };
326
+ const next = normalize({ ...config, ...patch });
327
+ if (body.upstream && typeof body.upstream === 'object')
328
+ next.upstream = body.upstream;
329
+ if (typeof ctx.scope?.update !== 'function')
330
+ throw new Error('当前上下文不支持 scope.update');
331
+ await ctx.scope.update(next);
332
+ logger.info('[kkk] 配置已保存(写回 koishi.yml)并热重载');
333
+ ok(response, null, '已保存');
334
+ }
335
+ catch (error) {
336
+ logger.warn('[kkk] 配置保存失败: ' + String(error?.message ?? error));
337
+ fail(response, 500, String(error?.message ?? error));
338
+ }
339
+ });
340
+ logger.info('[kkk] 配置面板: /kkk(原版界面,免登录);简易编辑页: /kkk/edit');
341
+ }
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "koishi-plugin-kkk",
3
+ "version": "1.0.0",
4
+ "description": "抖音 / B站 / 快手 / 小红书 视频解析与动态推送,带 QQ 交互面板与弹幕烧录(karin-plugin-kkk 的 Koishi 移植版)",
5
+ "main": "lib/index.js",
6
+ "typings": "lib/index.d.ts",
7
+ "files": [
8
+ "lib",
9
+ "src",
10
+ "scripts",
11
+ "resources",
12
+ "config",
13
+ "assets",
14
+ "client",
15
+ "dist",
16
+ "docs",
17
+ "README.md",
18
+ "CHANGELOG.md",
19
+ "LICENSE"
20
+ ],
21
+ "license": "GPL-3.0-only",
22
+ "keywords": [
23
+ "bot",
24
+ "chatbot",
25
+ "koishi",
26
+ "plugin",
27
+ "douyin",
28
+ "bilibili",
29
+ "kuaishou",
30
+ "xiaohongshu",
31
+ "danmaku",
32
+ "kkk"
33
+ ],
34
+ "koishi": {
35
+ "description": {
36
+ "zh": "抖音/B站/快手/小红书 视频解析与动态推送,QQ 交互面板 + 弹幕烧录(karin-plugin-kkk 移植版)",
37
+ "en": "Parse and push videos from Douyin / Bilibili / Kuaishou / Xiaohongshu, with QQ interactive panel and danmaku burning (port of karin-plugin-kkk)"
38
+ }
39
+ },
40
+ "scripts": {
41
+ "build": "node scripts/build.mjs",
42
+ "deploy": "node scripts/build.mjs && node scripts/deploy.mjs",
43
+ "postinstall": "node scripts/patch-deps.mjs",
44
+ "patch-deps": "node scripts/patch-deps.mjs",
45
+ "smoke": "node scripts/smoke-parse.cjs",
46
+ "placeholders": "node scripts/make-demo-placeholders.mjs",
47
+ "smoke:render": "node scripts/smoke-render.cjs",
48
+ "check-types": "tsc -p tsconfig.json"
49
+ },
50
+ "peerDependencies": {
51
+ "koishi": "^4.18.7"
52
+ },
53
+ "dependencies": {
54
+ "@ikenxuan/amagi": "6.6.0",
55
+ "@ikenxuan/qrcode": "1.5.0",
56
+ "@icons-pack/react-simple-icons": "^13.15.1",
57
+ "@outpacelabs/avatars": "0.6.0",
58
+ "@phosphor-icons/react": "^2.1.10",
59
+ "@thesvg/icons": "^3.3.7",
60
+ "axios": "^1.20.0",
61
+ "clsx": "^2.1.1",
62
+ "date-fns": "^4.4.0",
63
+ "echarts": "^6.1.0",
64
+ "express": "^5.2.1",
65
+ "heic-decode": "^2.1.0",
66
+ "jpeg-js": "^0.4.4",
67
+ "lucide-react": "^1.46.0",
68
+ "react": "^19.3.0",
69
+ "react-dom": "^19.3.0",
70
+ "react-icons": "^5.7.0",
71
+ "react-markdown": "^10.1.0",
72
+ "rehype-highlight": "^7.0.2",
73
+ "tailwind-merge": "^3.7.0"
74
+ },
75
+ "devDependencies": {
76
+ "@types/node": "^22.7.5",
77
+ "koishi": "^4.18.7",
78
+ "typescript": "^5.6.2"
79
+ },
80
+ "repository": {
81
+ "type": "git",
82
+ "url": "git+https://github.com/maimai993/koishi-plugin-kkk.git"
83
+ },
84
+ "bugs": {
85
+ "url": "https://github.com/maimai993/koishi-plugin-kkk/issues"
86
+ },
87
+ "homepage": "https://github.com/maimai993/koishi-plugin-kkk#readme"
88
+ }
@@ -0,0 +1 @@
1
+ <svg style="width: 22px; height: 22px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 22 22" width="22" height="22"><path d="M11 3.019045833333333C6.593229166666666 3.019045833333333 3.020833333333333 6.591441666666666 3.020833333333333 10.998166666666666C3.020833333333333 15.404950000000001 6.593229166666666 18.977333333333334 11 18.977333333333334C15.406775 18.977333333333334 18.979166666666664 15.404950000000001 18.979166666666664 10.998166666666666C18.979166666666664 6.591441666666666 15.406775 3.019045833333333 11 3.019045833333333zM2.0208333333333335 10.998166666666666C2.0208333333333335 6.0391525 6.04094 2.019045833333333 11 2.019045833333333C15.959074999999997 2.019045833333333 19.979166666666668 6.0391525 19.979166666666668 10.998166666666666C19.979166666666668 15.957249999999998 15.959074999999997 19.977333333333334 11 19.977333333333334C6.04094 19.977333333333334 2.0208333333333335 15.957249999999998 2.0208333333333335 10.998166666666666z" fill="currentColor"></path><path d="M13.850841666666668 10.240291666666668C14.435649999999999 10.577883333333332 14.435649999999999 11.421958333333334 13.850841666666668 11.759641666666665L10.2325 13.848716666666666C9.647683333333333 14.186316666666666 8.916668333333332 13.764275 8.916668333333332 13.089083333333333L8.916668333333332 8.910848333333334C8.916668333333332 8.235588333333332 9.647683333333333 7.813549999999998 10.2325 8.15118L13.850841666666668 10.240291666666668z" fill="currentColor"></path></svg>
@@ -0,0 +1 @@
1
+ <svg style="width: 22px; height: 22px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 22 22" width="22" height="22"><path d="M2.7083333333333335 6.1875C2.7083333333333335 4.266007500000001 4.266007500000001 2.7083333333333335 6.1875 2.7083333333333335L15.8125 2.7083333333333335C17.734016666666665 2.7083333333333335 19.291666666666668 4.266007500000001 19.291666666666668 6.1875L19.291666666666668 15.8125C19.291666666666668 17.734016666666665 17.734016666666665 19.291666666666668 15.8125 19.291666666666668L6.1875 19.291666666666668C4.266007500000001 19.291666666666668 2.7083333333333335 17.734016666666665 2.7083333333333335 15.8125L2.7083333333333335 6.1875zM6.1875 3.7083333333333335C4.818296666666667 3.7083333333333335 3.7083333333333335 4.818296666666667 3.7083333333333335 6.1875L3.7083333333333335 15.8125C3.7083333333333335 17.181716666666667 4.818296666666667 18.291666666666664 6.1875 18.291666666666664L15.8125 18.291666666666664C17.181716666666667 18.291666666666664 18.291666666666664 17.181716666666667 18.291666666666664 15.8125L18.291666666666664 6.1875C18.291666666666664 4.818296666666667 17.181716666666667 3.7083333333333335 15.8125 3.7083333333333335L6.1875 3.7083333333333335z" fill="currentColor"></path><path d="M13.757108333333333 13.653325L13.158108333333333 13.952791666666666C12.345366666666667 14.3557 11.483833333333333 14.548616666666666 10.604199999999999 14.548791666666666L10.368558333333333 14.548224999999999C9.573775000000001 14.542691666666666 8.928339999999999 13.893758333333334 8.928339999999999 13.106541666666667C8.927285 12.855666666666666 9.130069166666667 12.637524999999998 9.396216666666666 12.637524999999998C9.64563333333333 12.63695 9.860033333333332 12.83735 9.864341666666665 13.104591666666666C9.865283333333332 13.383716666666666 10.094491666666666 13.612383333333332 10.380683333333334 13.612383333333332L10.624783333333333 13.612383333333332C10.888233333333332 13.612383333333332 11.132408333333332 13.591833333333332 11.388491666666665 13.55095L11.388491666666665 12.101108333333334L9.394841666666666 12.101108333333334C9.143170833333333 12.101108333333334 8.928423333333333 11.895983333333334 8.928423333333333 11.632333333333333C8.928423333333333 11.376408333333332 9.135684166666667 11.164774999999999 9.396791666666667 11.164774999999999L11.388491666666665 11.164774999999999L11.388491666666665 10.612825L10.500566666666666 10.612325C10.4498 10.667208333333333 10.397116666666665 10.721 10.343266666666667 10.770125L10.283000000000001 10.822333333333335C10.162016666666666 10.933691666666666 9.992883333333332 10.970591666666666 9.838641666666666 10.92825C9.684408333333334 10.885825 9.561066666666665 10.760683333333333 9.518133333333333 10.599058333333334C9.477158333333334 10.441824999999998 9.520241666666665 10.275683333333332 9.637475 10.1592L9.692716666666666 10.104624999999999C9.957916666666666 9.841175 10.155516666666667 9.541183333333333 10.281841666666667 9.20215C10.373700000000001 8.958719166666665 10.644416666666666 8.83972 10.879008333333333 8.922351666666666C11.10935 9.0042925 11.226058333333333 9.244898333333332 11.15910833333333 9.471924999999999C11.140575 9.538158333333332 11.120325 9.607483333333333 11.094074999999998 9.676083333333333L13.829766666666666 9.676491666666667C14.077258333333333 9.676491666666667 14.292758333333333 9.880625 14.292758333333333 10.146899999999999C14.292758333333333 10.408016666666665 14.074333333333334 10.612825 13.826833333333333 10.612825L12.325141666666667 10.612825L12.325141666666667 11.164774999999999L14.316583333333334 11.164774999999999C14.565591666666666 11.164774999999999 14.786333333333333 11.365008333333332 14.784708333333331 11.635266666666666C14.784708333333331 11.897283333333332 14.569491666666664 12.100783333333332 14.316583333333334 12.100783333333332L12.325141666666667 12.100783333333332L12.325141666666667 13.296475C12.479316666666666 13.238258333333333 12.622083333333332 13.17395 12.769941666666664 13.100524999999998L13.359041666666666 12.806449999999998C13.366616666666665 12.610191666666667 13.516291666666666 12.43765 13.711441666666666 12.38815C13.9066 12.33865 14.130925 12.422625 14.23575 12.607916666666666L14.621291666666666 13.278949999999998C14.7073 13.429416666666665 14.704008333333332 13.611275000000001 14.612716666666666 13.75965C14.52905 13.898425 14.375 13.982474999999999 14.214866666666666 13.981924999999999C14.047308333333334 13.981425 13.896616666666667 13.892199999999999 13.81745 13.757808333333333L13.757108333333333 13.653325z" fill="currentColor"></path><path d="M10.141116666666667 7.871404999999999C11.328766666666667 7.438774166666667 12.555391666666667 7.215831666666666 13.827083333333333 7.215848333333333C15.153899999999997 7.215848333333333 16.26105 8.289123333333334 16.26105 9.654541666666667L16.26105 13.283133333333334C16.26105 13.877308333333332 16.019366666666667 14.452191666666666 15.599258333333335 14.8723C15.17915 15.292416666666664 14.604941666666665 15.532691666666665 14.006291666666668 15.532691666666665L12.859875 15.532691666666665C12.596625 15.532691666666665 12.391174999999999 15.317558333333332 12.391174999999999 15.067658333333336C12.391174999999999 14.805141666666664 12.600616666666665 14.596358333333335 12.859875 14.596358333333335L14.004308333333332 14.596358333333335C14.735625000000002 14.596358333333335 15.325183333333333 14.00395 15.325183333333333 13.273366666666666L15.325183333333333 9.652908333333334C15.325183333333333 8.823482499999999 14.655866666666666 8.152205 13.827083333333333 8.152205C12.581516666666667 8.152205 11.338858333333333 8.391508333333334 10.186158333333333 8.856445833333334L9.571741666666664 9.102275833333332C9.534158333333332 9.117400833333333 9.498483333333333 9.126616666666667 9.458241666666664 9.1311175C9.244658333333334 9.437491666666666 9.022283333333332 9.70335 8.754945833333334 9.973466666666667C8.576434166666667 10.1538 8.272740833333334 10.149383333333333 8.093571666666666 9.969075C7.914400833333333 9.788766666666666 7.913789166666667 9.495258333333334 8.09357 9.308340000000001C8.678384166666666 8.717681666666666 9.118864166666667 8.017764999999999 9.394874999999999 7.194660833333334L9.446258333333333 7.040054166666667C9.497933333333334 6.872650833333333 9.633899999999999 6.7534725 9.794308333333332 6.718536666666666C9.954641666666666 6.6836025 10.129574999999999 6.735529999999999 10.244158333333333 6.865451666666666C10.351725 6.9883375 10.389983333333333 7.1609175 10.336116666666667 7.322384999999999L10.288358333333335 7.470230833333334C10.2444 7.606509999999999 10.196091666666668 7.735731666666667 10.141116666666667 7.871404999999999z" fill="currentColor"></path><path d="M7.281644166666666 8.590612499999999C7.010457499999999 8.590661666666666 6.759849999999999 8.446013333333333 6.6242475 8.21117C6.488643333333333 7.9763175 6.488643333333333 7.686965833333334 6.6242475 7.4521225C6.759849999999999 7.21727 7.010457499999999 7.072621666666667 7.281644166666666 7.072669166666667C7.700748333333332 7.072753333333333 8.040468333333333 7.4125299999999985 8.040468333333333 7.831641666666665C8.040468333333333 8.250753333333332 7.700748333333332 8.5905375 7.281644166666666 8.590612499999999z" fill="currentColor"></path><path d="M6.420774166666667 10.315491666666667C6.270295833333334 10.251333333333331 6.1625775 10.100191666666666 6.146236666666666 9.935008333333332C6.129231666666667 9.763308333333335 6.207533333333332 9.603124999999999 6.341634166666666 9.507733333333332C6.475736666666666 9.412341666666666 6.6631149999999995 9.391433333333332 6.8192200000000005 9.470058333333332L7.109841666666667 9.604616666666667C7.688676666666667 9.877066666666668 8.130755833333334 10.387 8.313906666666666 11.006116666666665C8.496081666666667 11.613416666666666 8.4112325 12.28825 8.061553333333332 12.847466666666666L6.841030833333333 14.820866666666664C6.7568825 14.964991666666664 6.5957558333333335 15.057891666666668 6.4190958333333334 15.050316666666667C6.250913333333333 15.044141666666668 6.1002575 14.946441666666667 6.023563333333333 14.801716666666668C5.9440425 14.651991666666666 5.954351666666666 14.465425 6.044146666666666 14.329208333333334L7.272609999999999 12.34385C7.474779166666666 12.017416666666666 7.5227008333333325 11.627616666666666 7.416402499999999 11.271275C7.306640833333333 10.903233333333333 7.0499325 10.608883333333333 6.701947499999999 10.446458333333334L6.420774166666667 10.315491666666667z" fill="currentColor"></path></svg>
@@ -0,0 +1 @@
1
+ <svg style="width: 22px; height: 22px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 22 22" width="22" height="22"><path d="M4.1249725 10.892791666666666C4.401121666666666 10.892791666666666 4.6249725 11.1166 4.6249725 11.392791666666666L4.6249725 16.892791666666664C4.6249725 17.59294166666667 5.1926175 18.16058333333333 5.892828333333333 18.16058333333333L16.107116666666666 18.16058333333333C16.80735 18.16058333333333 17.374999999999996 17.59294166666667 17.374999999999996 16.892791666666664L17.374999999999996 11.392791666666666C17.374999999999996 11.1166 17.598808333333334 10.892791666666666 17.875 10.892791666666666C18.151108333333333 10.892791666666666 18.375 11.1166 18.375 11.392791666666666L18.375 16.892791666666664C18.375 18.145241666666667 17.35965 19.16058333333333 16.107116666666666 19.16058333333333L5.892828333333333 19.16058333333333C4.640328333333334 19.16058333333333 3.6249724999999997 18.145241666666667 3.6249724999999997 16.892791666666664L3.6249724999999997 11.392791666666666C3.6249724999999997 11.1166 3.8488325000000003 10.892791666666666 4.1249725 10.892791666666666z" fill="currentColor"></path><path d="M2.8392608333333333 8.0535675C2.8392608333333333 7.126520833333333 3.5907816666666665 6.374999999999999 4.517828333333333 6.374999999999999L17.482116666666666 6.374999999999999C18.40915 6.374999999999999 19.160675 7.126520833333333 19.160675 8.0535675L19.160675 9.809341666666667C19.160675 10.625725 18.566341666666666 11.337641666666666 17.725475 11.422875C16.56895833333333 11.540091666666665 14.390741666666667 11.696441666666665 11 11.696441666666665C7.609239999999998 11.696441666666665 5.431005000000001 11.540091666666665 4.2745049999999996 11.422875C3.4335991666666668 11.337641666666666 2.8392608333333333 10.625725 2.8392608333333333 9.809341666666667L2.8392608333333333 8.0535675zM4.517828333333333 7.374999999999999C4.143070833333333 7.374999999999999 3.8392608333333333 7.67881 3.8392608333333333 8.0535675L3.8392608333333333 9.809341666666667C3.8392608333333333 10.14125 4.071879166666666 10.397183333333334 4.375326666666667 10.427975C5.495405 10.541491666666666 7.6398399999999995 10.696441666666667 11 10.696441666666667C14.360141666666665 10.696441666666667 16.504558333333332 10.541491666666666 17.624583333333334 10.427975C17.928075 10.397183333333334 18.160674999999998 10.14125 18.160674999999998 9.809341666666667L18.160674999999998 8.0535675C18.160674999999998 7.67881 17.856849999999998 7.374999999999999 17.482116666666666 7.374999999999999L4.517828333333333 7.374999999999999z" fill="currentColor"></path><path d="M6.178549166666666 4.910775833333333C6.178549166666666 3.5497883333333333 7.281840833333334 2.4464966666666665 8.642828333333332 2.4464966666666665C10.003858333333332 2.4464966666666665 11.107116666666666 3.5497883333333333 11.107116666666666 4.910775833333333L11.107116666666666 7.375064166666665L8.642828333333332 7.375064166666665C7.281840833333334 7.375064166666665 6.178549166666666 6.2717633333333325 6.178549166666666 4.910775833333333zM8.642828333333332 3.4464966666666665C7.83413 3.4464966666666665 7.1785491666666665 4.102077499999999 7.1785491666666665 4.910775833333333C7.1785491666666665 5.719483333333334 7.83413 6.375064166666666 8.642828333333332 6.375064166666666L10.107116666666668 6.375064166666666L10.107116666666668 4.910775833333333C10.107116666666668 4.102077499999999 9.451558333333335 3.4464966666666665 8.642828333333332 3.4464966666666665z" fill="currentColor"></path><path d="M10.892791666666666 4.910775833333333C10.892791666666666 3.5497883333333333 11.996133333333333 2.4464966666666665 13.357116666666666 2.4464966666666665C14.718099999999998 2.4464966666666665 15.821441666666669 3.5497883333333333 15.821441666666669 4.910775833333333C15.821441666666669 6.2717633333333325 14.718099999999998 7.375064166666665 13.357116666666666 7.375064166666665L10.892791666666666 7.375064166666665L10.892791666666666 4.910775833333333zM13.357116666666666 3.4464966666666665C12.548433333333332 3.4464966666666665 11.892791666666666 4.102077499999999 11.892791666666666 4.910775833333333L11.892791666666666 6.375064166666666L13.357116666666666 6.375064166666666C14.165799999999999 6.375064166666666 14.821441666666667 5.719483333333334 14.821441666666667 4.910775833333333C14.821441666666667 4.102077499999999 14.165799999999999 3.4464966666666665 13.357116666666666 3.4464966666666665z" fill="currentColor"></path><path d="M11 5.392764166666666C11.276108333333331 5.392764166666666 11.499999999999998 5.6166149999999995 11.499999999999998 5.892764166666666L11.499999999999998 18.071350000000002C11.499999999999998 18.347458333333332 11.276108333333331 18.571350000000002 11 18.571350000000002C10.723808333333334 18.571350000000002 10.5 18.347458333333332 10.5 18.071350000000002L10.5 5.892764166666666C10.5 5.6166149999999995 10.723808333333334 5.392764166666666 11 5.392764166666666z" fill="currentColor"></path></svg>
@@ -0,0 +1 @@
1
+ <svg style="width: 22px; height: 22px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 22 22" width="22" height="22"><path d="M7.791666666666666 7.733060333333333C7.253044666666666 7.733060333333333 6.816416666666667 8.169688333333333 6.816416666666667 8.708310333333333C6.816416666666667 9.246946 7.253044666666666 9.683544999999999 7.791666666666666 9.683544999999999C8.330281000000001 9.683544999999999 8.766916666666667 9.246946 8.766916666666667 8.708310333333333C8.766916666666667 8.169688333333333 8.330281000000001 7.733060333333333 7.791666666666666 7.733060333333333zM5.558583333333333 8.708310333333333C5.558583333333333 7.475007999999999 6.558372 6.4752193333333325 7.791666666666666 6.4752193333333325C9.024961333333332 6.4752193333333325 10.02475 7.475007999999999 10.02475 8.708310333333333C10.02475 9.941568333333333 9.024961333333332 10.941378333333333 7.791666666666666 10.941378333333333C6.558372 10.941378333333333 5.558583333333333 9.941568333333333 5.558583333333333 8.708310333333333z" fill="currentColor"></path><path d="M11 4.543596666666667C8.690401666666668 4.543596666666667 6.673815333333333 4.661083166666667 5.250284333333333 4.776523999999999C4.243521333333333 4.858162833333334 3.4624053333333333 5.627683666666666 3.37265 6.626020666666667C3.268142166666667 7.788485666666666 3.170833333333333 9.321563333333334 3.170833333333333 10.9978C3.170833333333333 12.673983333333332 3.268142166666667 14.207033333333332 3.37265 15.369535C3.4624053333333333 16.36785666666667 4.243521333333333 17.137388333333334 5.250284333333333 17.219013333333333C6.673816833333333 17.334481666666665 8.690401666666668 17.451966666666664 11 17.451966666666664C13.309854999999999 17.451966666666664 15.326548333333335 17.33439 16.750163333333333 17.218959999999996C17.756758333333334 17.137349999999998 18.5377 16.36804 18.627441666666666 15.36994C18.731925 14.207988333333333 18.829166666666666 12.675175 18.829166666666666 10.9978C18.829166666666666 9.320333333333332 18.731925 7.787542999999999 18.627441666666666 6.6255715C18.5377 5.627479 17.756758333333334 4.858190333333333 16.750163333333333 4.776553C15.326548333333335 4.661109166666666 13.309854999999999 4.543596666666667 11 4.543596666666667zM5.145209166666667 3.480780333333333C6.5952265 3.3631968333333333 8.647761666666666 3.2435966666666665 11 3.2435966666666665C13.352495000000001 3.2435966666666665 15.405159999999999 3.3632151666666665 16.855203333333332 3.4808078333333334C18.484758333333332 3.6129723333333335 19.775116666666666 4.873037 19.922241666666665 6.509160333333334C20.02923333333333 7.6992561666666655 20.129166666666666 9.272141666666666 20.129166666666666 10.9978C20.129166666666666 12.723366666666667 20.02923333333333 14.296258333333332 19.922241666666665 15.486381666666665C19.775116666666666 17.12246833333333 18.484758333333332 18.382566666666666 16.855203333333332 18.514723333333333C15.405159999999999 18.63231 13.352495000000001 18.751966666666664 11 18.751966666666664C8.647761666666666 18.751966666666664 6.5952265 18.63231 5.145209166666667 18.514761666666665C3.515391333333333 18.382566666666666 2.224978166666667 17.122193333333332 2.0778760000000003 15.485923333333332C1.970837 14.295341666666666 1.8708333333333333 12.722213333333332 1.8708333333333333 10.9978C1.8708333333333333 9.273295 1.970837 7.700146833333332 2.0778760000000003 6.509618666666666C2.224978166666667 4.8733365 3.515391333333333 3.6129448333333336 5.145209166666667 3.480780333333333z" fill="currentColor"></path><path d="M14.586553333333333 12.397246666666668C14.19608 12.006681666666665 13.562881666666666 12.006681666666665 13.172316666666665 12.397208333333333L11.288666666666668 14.280896666666665C10.517069999999999 15.052493333333333 9.265836666666667 15.052218333333332 8.494585500000001 14.280124999999998C8.166277166666667 13.951508333333333 7.633659333333334 13.951363333333331 7.305149499999999 14.279834999999999L5.922092833333333 15.66269C5.6682380000000006 15.91648833333333 5.256674833333333 15.91648833333333 5.002853666666667 15.662636666666666C4.7490248333333325 15.4088 4.749050833333333 14.99722 5.002907166666666 14.743368333333333L6.385979166666666 13.360513333333333C7.222356166666667 12.524223333333333 8.578404666666666 12.524628333333332 9.414303333333333 13.361376666666667C9.677975 13.6253 10.105658333333334 13.625445 10.369436666666665 13.361666666666666L12.253033333333333 11.477978333333331C13.151301666666665 10.57971 14.607698333333333 10.579763333333334 15.505913333333332 11.478108333333331L16.99718 12.969611666666665C17.250978333333336 13.223448333333334 17.25094 13.63499 16.997049999999998 13.888841666666666C16.743198333333332 14.142639999999998 16.331671666666665 14.142639999999998 16.07782 13.88875L14.586553333333333 12.397246666666668z" fill="currentColor"></path></svg>
@@ -0,0 +1 @@
1
+ <svg style="width: 22px; height: 22px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 22 22" width="22" height="22"><path d="M2.0208333333333335 13.063508333333331C2.0208333333333335 11.901441666666667 2.9629016666666663 10.959341666666665 4.125 10.959341666666665L5.041666666666666 10.959341666666665C6.203764999999999 10.959341666666665 7.145833333333333 11.901441666666667 7.145833333333333 13.063508333333331L7.145833333333333 16.271841666666667C7.145833333333333 17.43390833333333 6.203764999999999 18.376008333333335 5.041666666666666 18.376008333333335L4.125 18.376008333333335C2.9629016666666663 18.376008333333335 2.0208333333333335 17.43390833333333 2.0208333333333335 16.271841666666667L2.0208333333333335 13.063508333333331zM4.125 11.959341666666665C3.5151833333333333 11.959341666666665 3.020833333333333 12.453658333333333 3.020833333333333 13.063508333333331L3.020833333333333 16.271841666666667C3.020833333333333 16.88169166666667 3.5151833333333333 17.37600833333333 4.125 17.37600833333333L5.041666666666666 17.37600833333333C5.651485 17.37600833333333 6.145833333333333 16.88169166666667 6.145833333333333 16.271841666666667L6.145833333333333 13.063508333333331C6.145833333333333 12.453658333333333 5.651485 11.959341666666665 5.041666666666666 11.959341666666665L4.125 11.959341666666665z" fill="currentColor"></path><path d="M8.4375 5.271731666666667C8.4375 4.109633333333333 9.379601666666668 3.167565 10.541666666666666 3.167565L11.458333333333332 3.167565C12.620399999999998 3.167565 13.562499999999998 4.109633333333333 13.562499999999998 5.271731666666667L13.562499999999998 16.27175C13.562499999999998 17.433816666666665 12.620399999999998 18.37591666666667 11.458333333333332 18.37591666666667L10.541666666666666 18.37591666666667C9.379601666666668 18.37591666666667 8.4375 17.433816666666665 8.4375 16.27175L8.4375 5.271731666666667zM10.541666666666666 4.167565000000001C9.931816666666666 4.167565000000001 9.4375 4.661913333333333 9.4375 5.271731666666667L9.4375 16.27175C9.4375 16.881516666666666 9.931816666666666 17.375916666666665 10.541666666666666 17.375916666666665L11.458333333333332 17.375916666666665C12.068183333333334 17.375916666666665 12.5625 16.881516666666666 12.5625 16.27175L12.5625 5.271731666666667C12.5625 4.661913333333333 12.068183333333334 4.167565000000001 11.458333333333332 4.167565000000001L10.541666666666666 4.167565000000001z" fill="currentColor"></path><path d="M14.854166666666664 10.084249999999999C14.854166666666664 8.922133333333333 15.796266666666666 7.980065000000001 16.958333333333332 7.980065000000001L17.875 7.980065000000001C19.037066666666664 7.980065000000001 19.979166666666668 8.922133333333333 19.979166666666668 10.084249999999999L19.979166666666668 16.27175C19.979166666666668 17.433816666666665 19.037066666666664 18.37591666666667 17.875 18.37591666666667L16.958333333333332 18.37591666666667C15.796266666666666 18.37591666666667 14.854166666666664 17.433816666666665 14.854166666666664 16.27175L14.854166666666664 10.084249999999999zM16.958333333333332 8.980066666666666C16.34848333333333 8.980066666666666 15.854166666666668 9.4744 15.854166666666668 10.084249999999999L15.854166666666668 16.27175C15.854166666666668 16.881516666666666 16.34848333333333 17.375916666666665 16.958333333333332 17.375916666666665L17.875 17.375916666666665C18.48485 17.375916666666665 18.979166666666664 16.881516666666666 18.979166666666664 16.27175L18.979166666666664 10.084249999999999C18.979166666666664 9.4744 18.48485 8.980066666666666 17.875 8.980066666666666L16.958333333333332 8.980066666666666z" fill="currentColor"></path></svg>
@@ -0,0 +1 @@
1
+ <svg style="width: 22px; height: 22px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 22 22" width="22" height="22"><path d="M10.201108333333332 8.360905C10.28265 8.0988875 10.561083333333332 7.952564166666666 10.823141666666666 8.034081666666667C11.551058333333332 8.231978333333332 12.239941666666667 8.6173075 12.811466666666666 9.18882C14.617616666666665 10.995058333333333 14.617616666666665 13.923425 12.811466666666666 15.729583333333332L10.542808333333333 17.998241666666665C8.736659166666668 19.8044 5.8082666666666665 19.8044 4.002093333333333 17.998241666666665C2.195918333333333 16.192083333333333 2.195918333333333 13.263633333333333 4.002093333333333 11.457475L5.958643333333333 9.500941666666668C6.1539125 9.30565 6.4704925 9.30565 6.665754166666667 9.500941666666668C6.861014166666666 9.696233333333332 6.861014166666666 10.01275 6.665754166666667 10.208041666666666L4.7092025 12.164575000000001C3.2935491666666667 13.580233333333332 3.2935491666666667 15.875483333333333 4.7092025 17.291141666666665C6.124845 18.706791666666668 8.420069999999999 18.706791666666668 9.835708333333335 17.291141666666665L12.104358333333332 15.022483333333332C13.520016666666667 13.606833333333334 13.520016666666667 11.311575 12.104358333333332 9.895999999999999C11.650341666666666 9.4419 11.104608333333333 9.137966666666667 10.527891666666665 8.982908333333333C10.265916666666667 8.9013925 10.119566666666667 8.622914999999999 10.201108333333332 8.360905z" fill="currentColor"></path><path d="M17.28985833333333 4.710320833333333C15.874208333333334 3.2946675 13.579033333333333 3.2946675 12.163374999999998 4.710320833333333L9.894725000000001 6.978951666666667C8.479086666666667 8.394605 8.479086666666667 10.689808333333332 9.894725000000001 12.105466666666667C10.325733333333332 12.536475 10.839358333333333 12.831766666666665 11.383541666666666 12.992716666666666C11.643441666666666 13.080841666666664 11.782758333333334 13.362883333333333 11.694641666666666 13.622774999999999C11.606516666666666 13.882674999999999 11.324474999999998 14.021991666666667 11.064583333333333 13.933875C10.377758333333333 13.728891666666666 9.729776666666666 13.354716666666665 9.187621666666667 12.812566666666667C7.381455833333333 11.006408333333333 7.381455833333333 8.078023333333332 9.187621666666667 6.2718425L11.456274999999998 4.003211666666666C13.262433333333332 2.1970366666666665 16.1908 2.1970366666666665 17.997041666666668 4.003211666666666C19.803199999999997 5.809385 19.803199999999997 8.7377775 17.997041666666668 10.543908333333334L16.066008333333333 12.474941666666666C15.870800000000001 12.67015 15.554208333333332 12.67015 15.358908333333334 12.474941666666666C15.163699999999999 12.279641666666667 15.163699999999999 11.963049999999999 15.358908333333334 11.767758333333331L17.28985833333333 9.836808333333332C18.705508333333334 8.421188333333333 18.705508333333334 6.125964999999999 17.28985833333333 4.710320833333333z" fill="currentColor"></path></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1733384556641" class="icon" viewBox="0 0 1170 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11689" id="mx_n_1733384556642" xmlns:xlink="http://www.w3.org/1999/xlink" width="228.515625" height="200"><path d="M985.478095 0C1085.19619 0 1170.285714 72.899048 1170.285714 168.911238v686.177524C1170.285714 951.100952 1085.244952 1024 985.478095 1024H184.807619C85.089524 1024 0 951.100952 0 855.088762V168.911238C0 72.899048 85.040762 0 184.807619 0z m0 146.285714H184.807619c-23.552 0-38.521905 12.824381-38.521905 22.625524v686.177524c0 9.752381 14.969905 22.625524 38.521905 22.625524h800.670476c23.552 0 38.521905-12.824381 38.521905-22.625524V168.911238c0-9.752381-14.969905-22.625524-38.521905-22.625524z m-431.542857 78.750476c250.148571-23.405714 396.921905 75.727238 396.921905 286.96381 0 209.92-145.017905 312.758857-394.48381 297.74019A73.142857 73.142857 0 0 1 487.619048 736.792381v-438.857143a73.142857 73.142857 0 0 1 66.31619-72.850286zM316.952381 219.428571a73.142857 73.142857 0 0 1 72.801524 66.121143L390.095238 292.571429v438.857142a73.142857 73.142857 0 0 1-145.944381 7.021715L243.809524 731.428571V292.571429a73.142857 73.142857 0 0 1 73.142857-73.142858zM633.904762 367.469714v297.057524l5.412571-0.195048c114.590476-6.534095 162.230857-52.370286 165.10781-143.36l0.146286-8.97219c0-95.865905-45.738667-141.897143-163.206096-144.432762L633.904762 367.469714z" fill="#2f2f2f" p-id="11690"></path></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1733384556641" class="icon" viewBox="0 0 1170 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11689" id="mx_n_1733384556642" xmlns:xlink="http://www.w3.org/1999/xlink" width="228.515625" height="200"><path d="M985.478095 0C1085.19619 0 1170.285714 72.899048 1170.285714 168.911238v686.177524C1170.285714 951.100952 1085.244952 1024 985.478095 1024H184.807619C85.089524 1024 0 951.100952 0 855.088762V168.911238C0 72.899048 85.040762 0 184.807619 0z m0 146.285714H184.807619c-23.552 0-38.521905 12.824381-38.521905 22.625524v686.177524c0 9.752381 14.969905 22.625524 38.521905 22.625524h800.670476c23.552 0 38.521905-12.824381 38.521905-22.625524V168.911238c0-9.752381-14.969905-22.625524-38.521905-22.625524z m-431.542857 78.750476c250.148571-23.405714 396.921905 75.727238 396.921905 286.96381 0 209.92-145.017905 312.758857-394.48381 297.74019A73.142857 73.142857 0 0 1 487.619048 736.792381v-438.857143a73.142857 73.142857 0 0 1 66.31619-72.850286zM316.952381 219.428571a73.142857 73.142857 0 0 1 72.801524 66.121143L390.095238 292.571429v438.857142a73.142857 73.142857 0 0 1-145.944381 7.021715L243.809524 731.428571V292.571429a73.142857 73.142857 0 0 1 73.142857-73.142858zM633.904762 367.469714v297.057524l5.412571-0.195048c114.590476-6.534095 162.230857-52.370286 165.10781-143.36l0.146286-8.97219c0-95.865905-45.738667-141.897143-163.206096-144.432762L633.904762 367.469714z" fill="#cfcfcf" p-id="11690"></path></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:silver;}</style></defs><path class="cls-1" d="M89.23,4.85h-28V9.51H5.3V43.08H89.23V4.85Z"/><path class="cls-2" d="M91.56.19H61.25A2.68,2.68,0,0,0,58.46,3V4.85h-55a2.69,2.69,0,0,0-2.8,2.8V44a2.69,2.69,0,0,0,2.8,2.79H91.56A2.69,2.69,0,0,0,94.36,44V3C93.89,1.12,93,.19,91.56.19Zm-2.8,38.23A2.69,2.69,0,0,1,86,41.22H66.85a2.69,2.69,0,0,1-2.8-2.8V8.58a2.69,2.69,0,0,1,2.8-2.8H86a2.69,2.69,0,0,1,2.79,2.8ZM55.19,30V13.71a2,2,0,0,0-1.86-1.87h-2.8a2,2,0,0,0-1.86,1.87V29.1L42.6,34.22,37,28.63V12.78a2,2,0,0,0-1.87-1.87H32.35a2,2,0,0,0-1.87,1.87V29.56c0,.93,0,1.87.47,1.87l9.32,9.32c.47.47,2.33.47,2.33.47s1.87,0,2.34-.47l9.32-9.32C54.26,31,55.19,30.49,55.19,30Zm-28.9,9.79a2,2,0,0,1-1.87,1.86H8.1a2,2,0,0,1-1.86-1.86v-27A2,2,0,0,1,8.1,10.91h2.8a2,2,0,0,1,1.86,1.87V34.69H24a2,2,0,0,1,1.87,1.87v3.26ZM72.44,12.31H79.9a2,2,0,0,1,1.87,1.86V32.83a2,2,0,0,1-1.87,1.86H72.44a2,2,0,0,1-1.86-1.86V14.64A2.13,2.13,0,0,1,72.44,12.31Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1,.cls-3{fill:#fff;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:silver;}</style></defs><path class="cls-1" d="M89.63,3.49H63.43V8.64H6.36V40H89.63V8.64h0Z"/><path class="cls-2" d="M62,.22A2.7,2.7,0,0,0,59.18,3V4.9H4A2.7,2.7,0,0,0,1.17,7.71V44.19A2.7,2.7,0,0,0,4,47H91.92a2.7,2.7,0,0,0,2.81-2.81V3c.47-1.4-.94-2.81-2.34-2.81ZM54.26,29.69c.47-.47.47-.94.47-1.87V11.45a2,2,0,0,0-1.87-1.87H50.05a2,2,0,0,0-1.87,1.87V26.88L42.1,32.5l-5.61-5.62V11a2,2,0,0,0-1.87-1.87H31.81A2,2,0,0,0,29.94,11V27.82c0,.93,0,1.87.47,1.87l9.35,9.36c.47.46,2.34.46,2.34.46s1.87,0,2.34-.46ZM25,40H8.66a2,2,0,0,1-1.87-1.87V11A2,2,0,0,1,8.66,9.11h2.8A2,2,0,0,1,13.33,11V33H24.56a2,2,0,0,1,1.87,1.88v2.8A1.64,1.64,0,0,1,25,40Z"/><path class="cls-3" d="M72,7.45H82a.15.15,0,0,1,.15.15v5.85a0,0,0,0,1,0,0H72a.15.15,0,0,1-.15-.15V7.6A.15.15,0,0,1,72,7.45Z"/><rect class="cls-3" x="76.11" y="11.87" width="6.04" height="25.36"/><rect class="cls-3" x="70.97" y="32.57" width="16.34" height="7.41" rx="0.5"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#8bd29b;}</style></defs><path class="cls-1" d="M3.28,5.85h87.5V44.32H3.28Z"/><path class="cls-2" d="M92.09.49a2.38,2.38,0,0,1,2.36,2.69V43.83a2.65,2.65,0,0,1-2.62,2.68H3.19a2.66,2.66,0,0,1-2.7-2.6v-36a2.66,2.66,0,0,1,2.7-2.69H58.75v-2A2.66,2.66,0,0,1,61.44.49ZM35.19,10.9h-2.7a2.17,2.17,0,0,0-2,2V29.38c0,.76,0,1.8.34,2l9.42,9.41a4.49,4.49,0,0,0,4.72,0l10.1-9.41c.34-.33.34-1,.34-1.68V13.26a2.17,2.17,0,0,0-2-2H50.68a2.16,2.16,0,0,0-2,2V28.37l-5.73,5.71L37.2,28.37V12.92A2.16,2.16,0,0,0,35.19,10.9Zm-24.25,0H8.25a2.17,2.17,0,0,0-2,2V39.46a2.16,2.16,0,0,0,2,2H24.41a2.16,2.16,0,0,0,2-2V36.77a2.17,2.17,0,0,0-2-2H13V12.92A2.17,2.17,0,0,0,10.94,10.9Zm76.11-5H66.16a2.15,2.15,0,0,0-2,2v2.69a2.16,2.16,0,0,0,2,2H82.33v7.73H66.16a2.15,2.15,0,0,0-2,2V39.46a2.16,2.16,0,0,0,2,2H87.05a2.17,2.17,0,0,0,2-2V36.77a2.17,2.17,0,0,0-2-2H70.89V27H87.05a2.17,2.17,0,0,0,2-2V7.88A2.16,2.16,0,0,0,87.05,5.87Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:#7bcdef;}</style></defs><path class="cls-1" d="M88.64,5.45H62.72v5.09H6.27v31H88.64v-31h0Z"/><path class="cls-2" d="M58.56,3.14A2.67,2.67,0,0,1,61.34.36H91.41c1.39,0,2.78,1.39,2.32,2.78V43.86A2.67,2.67,0,0,1,91,46.64H4a2.67,2.67,0,0,1-2.78-2.78V7.77A2.67,2.67,0,0,1,4,5h54.6ZM86.32,41.55a2,2,0,0,0,1.85-1.85V7.77a2,2,0,0,0-1.85-1.85H66a2,2,0,0,0-1.85,1.85v2.77A2,2,0,0,0,66,12.39H81.7v7.87H66a2,2,0,0,0-1.85,1.85v2.78A2,2,0,0,0,66,26.74H81.7v7.87H66a2,2,0,0,0-1.85,1.85v2.77A2,2,0,0,0,66,41.08H86.32ZM55.32,30a2.79,2.79,0,0,1-.46,1.85l-9.72,9.25c-.46.47-2.31.47-2.31.47s-1.85,0-2.32-.47l-9.25-9.25c-.46,0-.46-1.39-.46-1.85V13.32a2,2,0,0,1,1.85-1.85h2.77a2,2,0,0,1,1.85,1.85V29.05l5.56,5.56,5.55-5.56V13.78a2,2,0,0,1,1.85-1.85H53a2,2,0,0,1,1.85,1.85V30ZM8.59,41.55H24.32a2,2,0,0,0,1.85-1.85V36.92a2,2,0,0,0-1.85-1.85H13.68V13.32a2,2,0,0,0-1.86-1.85H8.59a2,2,0,0,0-1.86,1.85V40.16A2.08,2.08,0,0,0,8.59,41.55Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:#febb8b;}</style></defs><path class="cls-1" d="M89.11,5.43H62.9v5.09H5.8V41.57H89.11v-31h0Z"/><path class="cls-2" d="M58.69,3.11A2.68,2.68,0,0,1,61.49.33H91.91c1.41,0,2.81,1.39,2.34,2.78V43.89a2.68,2.68,0,0,1-2.8,2.78h-88a2.68,2.68,0,0,1-2.8-2.78V7.74A2.68,2.68,0,0,1,3.46,5H58.69ZM86.77,41.57a2,2,0,0,0,1.87-1.85v-32a2,2,0,0,0-1.87-1.85H84a2,2,0,0,0-1.87,1.85V20.26H70.85V7.74A2,2,0,0,0,69,5.89H66.17A2,2,0,0,0,64.3,7.74V24.89a2,2,0,0,0,1.87,1.85H82.09V39.26A2,2,0,0,0,84,41.11h2.81ZM55.41,30a2.75,2.75,0,0,1-.47,1.85l-9.83,9.27c-.46.46-2.34.46-2.34.46s-1.87,0-2.34-.46l-9.36-9.27A2.79,2.79,0,0,1,30.61,30V13.3a2,2,0,0,1,1.87-1.85h2.81a2,2,0,0,1,1.87,1.85V29.06l5.61,5.56,5.62-5.56V13.77a2,2,0,0,1,1.87-1.86h2.81a2,2,0,0,1,1.87,1.86V30ZM8.14,41.57H24.05a2,2,0,0,0,1.88-1.85V36.94a2,2,0,0,0-1.88-1.85H13.29V13.3a2,2,0,0,0-1.87-1.85H8.14A2,2,0,0,0,6.27,13.3V40.18A2.08,2.08,0,0,0,8.14,41.57Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#ee672a;}</style></defs><path class="cls-1" d="M4.26,4.07H91.7V42.5H4.26Z"/><path class="cls-2" d="M92.54.82A2.39,2.39,0,0,1,94.9,3.51V44.12a2.64,2.64,0,0,1-2.63,2.68H3.69A2.64,2.64,0,0,1,1,44.2V8.2A2.65,2.65,0,0,1,3.69,5.52H59.22v-2A2.65,2.65,0,0,1,61.91.82H92.54ZM35.67,11.22H33a2.17,2.17,0,0,0-2,2V29.69c0,.68,0,1.69.33,2l9.42,9.4a4.07,4.07,0,0,0,2.31.67h0a4.17,4.17,0,0,0,2.36-.67l10.09-9.4A2.49,2.49,0,0,0,55.86,30V13.57a2.17,2.17,0,0,0-2-2H51.15a2.17,2.17,0,0,0-2,2V28.68l-5.72,5.7-5.72-5.7V13.24A2.17,2.17,0,0,0,35.67,11.22Zm-24.23,0H8.75a2.17,2.17,0,0,0-2,2V39.76a2.17,2.17,0,0,0,2,2H24.9a2.17,2.17,0,0,0,2-2V37.07a2.16,2.16,0,0,0-2-2H13.46V13.24A2.17,2.17,0,0,0,11.44,11.22Zm76.05-5H66.63a2.16,2.16,0,0,0-2,2V25.32a2.16,2.16,0,0,0,2,2H82.78v7.73H66.63a2.16,2.16,0,0,0-2,2v2.68a2.17,2.17,0,0,0,2,2H87.49a2.17,2.17,0,0,0,2-2V22.64a2.17,2.17,0,0,0-2-2H71.35V13.24H87.49a2.17,2.17,0,0,0,2-2v-3A2.16,2.16,0,0,0,87.49,6.19Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;}.cls-1,.cls-2{fill-rule:evenodd;}.cls-2{fill:#f04c49;}</style></defs><path class="cls-1" d="M88.83,5.37h-26v5.11H6.08V41.63H88.83V10.48h0Z"/><path class="cls-2" d="M61.4.26A2.68,2.68,0,0,0,58.61,3V4.9H3.75A2.68,2.68,0,0,0,1,7.69V44a2.67,2.67,0,0,0,2.78,2.78h87.4A2.68,2.68,0,0,0,93.94,44V3C94.41,1.65,93,.26,91.62.26ZM88.36,11a2,2,0,0,1-1.85,1.86H70.7v7.44H86.51a2,2,0,0,1,1.85,1.86v17.2a2,2,0,0,1-1.85,1.86H66.05a2,2,0,0,1-1.86-1.86V7.69a2,2,0,0,1,1.86-1.86H86.51a2,2,0,0,1,1.85,1.86ZM54.89,31.4c.47-.46.47-.93.47-1.86V13.27a2,2,0,0,0-1.86-1.86H50.71a2,2,0,0,0-1.86,1.86V28.61l-6,5.58-5.58-5.58V12.81A2,2,0,0,0,35.37,11H32.58a2,2,0,0,0-1.86,1.86V29.54c0,.93,0,1.86.46,1.86l9.3,9.3c.47.47,2.33.47,2.33.47s1.86,0,2.32-.47ZM24.67,41.63H8.4a2,2,0,0,1-1.86-1.86v-27A2,2,0,0,1,8.4,11h2.79a2,2,0,0,1,1.86,1.86V34.66H24.21a2,2,0,0,1,1.86,1.86v2.79A1.63,1.63,0,0,1,24.67,41.63Zm57.19-7H70.7V26.75H81.86Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 47"><defs><style>.cls-1{fill:#fff;fill-rule:evenodd;}.cls-2{fill:#f04c49;}</style></defs><path class="cls-1" d="M65,10.53H46.15v3.71H5.06V36.8H65V14.24h0Z"/><path class="cls-2" d="M4.05,41.52H91a3.61,3.61,0,0,0,2-.34c.34-.33.67-.33.67-.67.34-.34.34-1,.34-2v-30a3.61,3.61,0,0,0-.34-2c-.33-.34-.33-.67-.67-.67-.34-.34-1-.34-2-.34H42.45a3.61,3.61,0,0,0-2,.34c-.34.33-.68.33-.68.67-.33.34-.33,1-.33,2v2.36H4.05a3.61,3.61,0,0,0-2,.34c-.34.33-.67.67-.67,1-.34.33-.34,1-.34,2V38.83a3.63,3.63,0,0,0,.34,2c.33.33.33.67.67.67Z"/><path class="cls-1" d="M69.39,25.69,79.83,11.21a1.11,1.11,0,0,1,2,.67l-1,8.08h6.73a1.14,1.14,0,0,1,1,1.69L78.15,36.13a1.11,1.11,0,0,1-2-.67l1-8.09H70.4C69.39,27.37,68.72,26.36,69.39,25.69Z"/><path class="cls-1" d="M43.79,12.22a1.45,1.45,0,0,1,1.35-1.35H59.29a1.45,1.45,0,0,1,1.35,1.35V13.9a1.46,1.46,0,0,1-1.35,1.35H48.51v6.06H59.63A1.44,1.44,0,0,1,61,22.66V35.12a1.45,1.45,0,0,1-1.34,1.35H45.14a1.46,1.46,0,0,1-1.35-1.35ZM48.51,26v6.06h7.75V26Z"/><path class="cls-1" d="M25.61,15.92A1.45,1.45,0,0,1,27,17.27V27.71l3.37,3,3.37-3V17.27A1.45,1.45,0,0,1,35,15.92h1.68a1.45,1.45,0,0,1,1.35,1.35V29.39a1.22,1.22,0,0,1-.34,1L31,36.47a1.28,1.28,0,0,1-2,0L22.24,30.4a1.22,1.22,0,0,1-.34-1V17.27a1.46,1.46,0,0,1,1.35-1.35Z"/><path class="cls-1" d="M8.43,15.92a1.46,1.46,0,0,1,1.35,1.35V31.75H18.2a1.45,1.45,0,0,1,1.34,1.35v1.68a1.44,1.44,0,0,1-1.34,1.35H6.74A1.44,1.44,0,0,1,5.4,34.78V16.93a1.45,1.45,0,0,1,1.34-1.35H8.43Z"/></svg>
@@ -0,0 +1,6 @@
1
+ <svg t="1636093575017" class="icon" viewBox="0 0 1024 1024" version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg" p-id="3323" width="75" height="75">
3
+ <path
4
+ d="M594.176 151.168a34.048 34.048 0 0 0-29.184 10.816c-11.264 13.184-15.872 24.064-21.504 40.064l-1.92 5.632c-5.632 16.128-12.8 36.864-27.648 63.232-25.408 44.928-50.304 74.432-86.208 97.024-23.04 14.528-43.648 26.368-65.024 32.576v419.648a4569.408 4569.408 0 0 0 339.072-4.672c38.72-2.048 72-21.12 88.96-52.032 21.504-39.36 47.168-95.744 63.552-163.008a782.72 782.72 0 0 0 22.528-163.008c0.448-16.832-13.44-32.256-35.328-32.256h-197.312a32 32 0 0 1-28.608-46.336l0.192-0.32 0.64-1.344 2.56-5.504c2.112-4.8 5.12-11.776 8.32-20.16 6.592-17.088 13.568-39.04 16.768-60.416 4.992-33.344 3.776-60.16-9.344-84.992-14.08-26.688-30.016-33.728-40.512-34.944zM691.84 341.12h149.568c52.736 0 100.864 40.192 99.328 98.048a845.888 845.888 0 0 1-24.32 176.384 742.336 742.336 0 0 1-69.632 178.56c-29.184 53.44-84.48 82.304-141.76 85.248-55.68 2.88-138.304 5.952-235.712 5.952-96 0-183.552-3.008-244.672-5.76-66.432-3.136-123.392-51.392-131.008-119.872a1380.672 1380.672 0 0 1-0.768-296.704c7.68-72.768 70.4-121.792 140.032-121.792h97.728c13.76 0 28.16-5.504 62.976-27.456 24.064-15.104 42.432-35.2 64.512-74.24 11.904-21.184 17.408-36.928 22.912-52.8l2.048-5.888c6.656-18.88 14.4-38.4 33.28-60.416a97.984 97.984 0 0 1 85.12-32.768c35.264 4.096 67.776 26.88 89.792 68.608 22.208 42.176 21.888 84.864 16 124.352a342.464 342.464 0 0 1-15.424 60.544z m-393.216 477.248V405.184H232.96c-40.448 0-72.448 27.712-76.352 64.512a1318.912 1318.912 0 0 0 0.64 282.88c3.904 34.752 32.96 61.248 70.4 62.976 20.8 0.96 44.8 1.92 71.04 2.816z"
5
+ p-id="3324" fill="#2f2f2f"></path>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg t="1636093575017" class="icon" viewBox="0 0 1024 1024" version="1.1"
2
+ xmlns="http://www.w3.org/2000/svg" p-id="3323" width="75" height="75">
3
+ <path
4
+ d="M594.176 151.168a34.048 34.048 0 0 0-29.184 10.816c-11.264 13.184-15.872 24.064-21.504 40.064l-1.92 5.632c-5.632 16.128-12.8 36.864-27.648 63.232-25.408 44.928-50.304 74.432-86.208 97.024-23.04 14.528-43.648 26.368-65.024 32.576v419.648a4569.408 4569.408 0 0 0 339.072-4.672c38.72-2.048 72-21.12 88.96-52.032 21.504-39.36 47.168-95.744 63.552-163.008a782.72 782.72 0 0 0 22.528-163.008c0.448-16.832-13.44-32.256-35.328-32.256h-197.312a32 32 0 0 1-28.608-46.336l0.192-0.32 0.64-1.344 2.56-5.504c2.112-4.8 5.12-11.776 8.32-20.16 6.592-17.088 13.568-39.04 16.768-60.416 4.992-33.344 3.776-60.16-9.344-84.992-14.08-26.688-30.016-33.728-40.512-34.944zM691.84 341.12h149.568c52.736 0 100.864 40.192 99.328 98.048a845.888 845.888 0 0 1-24.32 176.384 742.336 742.336 0 0 1-69.632 178.56c-29.184 53.44-84.48 82.304-141.76 85.248-55.68 2.88-138.304 5.952-235.712 5.952-96 0-183.552-3.008-244.672-5.76-66.432-3.136-123.392-51.392-131.008-119.872a1380.672 1380.672 0 0 1-0.768-296.704c7.68-72.768 70.4-121.792 140.032-121.792h97.728c13.76 0 28.16-5.504 62.976-27.456 24.064-15.104 42.432-35.2 64.512-74.24 11.904-21.184 17.408-36.928 22.912-52.8l2.048-5.888c6.656-18.88 14.4-38.4 33.28-60.416a97.984 97.984 0 0 1 85.12-32.768c35.264 4.096 67.776 26.88 89.792 68.608 22.208 42.176 21.888 84.864 16 124.352a342.464 342.464 0 0 1-15.424 60.544z m-393.216 477.248V405.184H232.96c-40.448 0-72.448 27.712-76.352 64.512a1318.912 1318.912 0 0 0 0.64 282.88c3.904 34.752 32.96 61.248 70.4 62.976 20.8 0.96 44.8 1.92 71.04 2.816z"
5
+ p-id="3324" fill="#cfcfcf"></path>
6
+ </svg>