koishi-plugin-chat-patch 3.0.2 → 5.0.1

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 (237) hide show
  1. package/client/vue/index.vue +60 -634
  2. package/client/web/dist/assets/AppIcon-DIku6-h0.png +0 -0
  3. package/client/web/dist/assets/AppIconDark-BYymN71t.png +0 -0
  4. package/client/web/dist/assets/CapacitorAppIcon-CSZwNhvi.png +0 -0
  5. package/client/web/dist/assets/CapacitorAppIconDark-BMvMOzsg.png +0 -0
  6. package/client/web/dist/assets/Chat-CTdyeaX2.css +1 -0
  7. package/client/web/dist/assets/Chat-DkZvD7d8.js +28 -0
  8. package/client/web/dist/assets/MealHungryPan-Beos3lRI.js +1 -0
  9. package/client/web/dist/assets/MsgBody-aZ4_aija.js +1 -0
  10. package/client/web/dist/assets/MsgBody.vue_vue_type_script_setup_true_lang-CPZjRLp6.js +67 -0
  11. package/client/web/dist/assets/NapcatAppIcon-C7VOAkW9.png +0 -0
  12. package/client/web/dist/assets/Vue-lEhHouxB.png +0 -0
  13. package/client/web/dist/assets/append_darwin-CqBNU62J.css +1 -0
  14. package/client/web/dist/assets/append_full_vibrancy-j0D2LM9m.css +1 -0
  15. package/client/web/dist/assets/append_linux-uhxeBqeC.css +1 -0
  16. package/client/web/dist/assets/append_linux_vibrancy-COiZq8MS.css +1 -0
  17. package/client/web/dist/assets/append_napcat-DV8CAyAd.css +1 -0
  18. package/client/web/dist/assets/append_new-407Lo5_V.css +1 -0
  19. package/client/web/dist/assets/append_vibrancy-6FHctkOY.css +1 -0
  20. package/client/web/dist/assets/append_win32-srmD-78y.css +1 -0
  21. package/client/web/dist/assets/cakes-CxTVKdnK.svg +189 -0
  22. package/client/web/dist/assets/core-DhEqZVGG.js +1 -0
  23. package/client/web/dist/assets/event-Cadp6m6J.js +1 -0
  24. package/client/web/dist/assets/index-CPTXiemn.js +4045 -0
  25. package/client/web/dist/assets/index-Cg_esKB0.js +1 -0
  26. package/client/web/dist/assets/index-Cln012sP.css +1 -0
  27. package/client/web/dist/assets//346/226/271/346/255/243/345/226/265/345/221/234/344/275/223-CJKIKBn3.ttf +0 -0
  28. package/client/web/dist/assets//346/234/237/345/276/205-C90_OY60.png +0 -0
  29. package/client/web/dist/bcui/css/color-dark.css +35 -0
  30. package/client/web/dist/bcui/css/color-light.css +35 -0
  31. package/client/web/dist/bcui/css/style.css +468 -0
  32. package/client/web/dist/bcui/js/main.js +193 -0
  33. package/client/web/dist/css/append-dark.css +13 -0
  34. package/client/web/dist/css/append-light.css +13 -0
  35. package/client/web/dist/css/append-napcat-dark.css +14 -0
  36. package/client/web/dist/css/append-napcat-light.css +14 -0
  37. package/client/web/dist/favicon.ico +0 -0
  38. package/client/web/dist/img/icons/icon-for-fuck-apple.png +0 -0
  39. package/client/web/dist/img/icons/icon-maskable.png +0 -0
  40. package/client/web/dist/img/icons/icon.png +0 -0
  41. package/client/web/dist/img/icons/icon.svg +10 -0
  42. package/client/web/dist/index.html +22 -0
  43. package/client/web/dist/robots.txt +2 -0
  44. package/client/web/dist/sw.js +58 -0
  45. package/client/web/env.d.ts +56 -0
  46. package/client/web/index.html +21 -0
  47. package/client/web/package-lock.json +3419 -0
  48. package/client/web/package.json +62 -0
  49. package/client/web/public/bcui/css/color-dark.css +35 -0
  50. package/client/web/public/bcui/css/color-light.css +35 -0
  51. package/client/web/public/bcui/css/style.css +468 -0
  52. package/client/web/public/bcui/js/main.js +193 -0
  53. package/client/web/public/css/append-dark.css +13 -0
  54. package/client/web/public/css/append-light.css +13 -0
  55. package/client/web/public/css/append-napcat-dark.css +14 -0
  56. package/client/web/public/css/append-napcat-light.css +14 -0
  57. package/client/web/public/favicon.ico +0 -0
  58. package/client/web/public/img/icons/icon-for-fuck-apple.png +0 -0
  59. package/client/web/public/img/icons/icon-maskable.png +0 -0
  60. package/client/web/public/img/icons/icon.png +0 -0
  61. package/client/web/public/img/icons/icon.svg +10 -0
  62. package/client/web/public/robots.txt +2 -0
  63. package/client/web/public/sw.js +58 -0
  64. package/client/web/scripts/copy-bcui.mjs +17 -0
  65. package/client/web/src/App.vue +1127 -0
  66. package/client/web/src/assets/css/append/append_darwin.css +68 -0
  67. package/client/web/src/assets/css/append/append_full_vibrancy.css +290 -0
  68. package/client/web/src/assets/css/append/append_linux.css +125 -0
  69. package/client/web/src/assets/css/append/append_linux_vibrancy.css +22 -0
  70. package/client/web/src/assets/css/append/append_napcat.css +35 -0
  71. package/client/web/src/assets/css/append/append_new.css +843 -0
  72. package/client/web/src/assets/css/append/append_vibrancy.css +113 -0
  73. package/client/web/src/assets/css/append/append_win32.css +109 -0
  74. package/client/web/src/assets/css/append/mobile/append_mobile_horizontal.css +349 -0
  75. package/client/web/src/assets/css/append/mobile/append_mobile_vertical.css +96 -0
  76. package/client/web/src/assets/css/chat.css +2104 -0
  77. package/client/web/src/assets/css/msg.css +941 -0
  78. package/client/web/src/assets/css/options.css +811 -0
  79. package/client/web/src/assets/css/sys_notice.css +62 -0
  80. package/client/web/src/assets/css/view.css +2105 -0
  81. package/client/web/src/assets/font//346/226/271/346/255/243/345/226/265/345/221/234/344/275/223.ttf +0 -0
  82. package/client/web/src/assets/img/Vue.png +0 -0
  83. package/client/web/src/assets/img/cakes.svg +189 -0
  84. package/client/web/src/assets/img/icons/AppIcon.png +0 -0
  85. package/client/web/src/assets/img/icons/AppIconDark.png +0 -0
  86. package/client/web/src/assets/img/icons/CapacitorAppIcon.png +0 -0
  87. package/client/web/src/assets/img/icons/CapacitorAppIconDark.png +0 -0
  88. package/client/web/src/assets/img/icons/NapcatAppIcon.png +0 -0
  89. package/client/web/src/assets/img/icons/NapcatAppIconDark.png +0 -0
  90. package/client/web/src/assets/img/icons/exit.png +0 -0
  91. package/client/web/src/assets/img/icons/pen.png +0 -0
  92. package/client/web/src/assets/img/stars.svg +89 -0
  93. package/client/web/src/assets/img//346/234/237/345/276/205.png +0 -0
  94. package/client/web/src/assets/l10n/_About I10n.md +35 -0
  95. package/client/web/src/assets/l10n/_l10nconfig.json +7 -0
  96. package/client/web/src/assets/l10n/zh-CN.po +1941 -0
  97. package/client/web/src/assets/logo.png +0 -0
  98. package/client/web/src/assets/pathMap/LLOneBot.yaml +2 -0
  99. package/client/web/src/assets/pathMap/Lagrange.OneBot.yaml +180 -0
  100. package/client/web/src/assets/pathMap/NapCat.Onebot.yaml +224 -0
  101. package/client/web/src/assets/pathMap/SnowLuma.yaml +80 -0
  102. package/client/web/src/assets/qed.txt +1 -0
  103. package/client/web/src/components/AboutPan.vue +197 -0
  104. package/client/web/src/components/BulletinBody.vue +129 -0
  105. package/client/web/src/components/DepPan.vue +310 -0
  106. package/client/web/src/components/EmojiFace.vue +32 -0
  107. package/client/web/src/components/FacePan.vue +461 -0
  108. package/client/web/src/components/FileBody.vue +129 -0
  109. package/client/web/src/components/FileManager.vue +532 -0
  110. package/client/web/src/components/FriendBody.vue +54 -0
  111. package/client/web/src/components/GlobalSessionSearchBar.vue +301 -0
  112. package/client/web/src/components/History.vue +49 -0
  113. package/client/web/src/components/LazyLottie.vue +82 -0
  114. package/client/web/src/components/MergePan.vue +127 -0
  115. package/client/web/src/components/MsgBody.vue +1478 -0
  116. package/client/web/src/components/MusicPlayer.vue +549 -0
  117. package/client/web/src/components/NoticeBody.vue +168 -0
  118. package/client/web/src/components/QzonePermissionPan.vue +150 -0
  119. package/client/web/src/components/RawMsgRenderPreviewPan.vue +190 -0
  120. package/client/web/src/components/ThemeColorPickerPan.vue +420 -0
  121. package/client/web/src/components/TinySessionBody.vue +51 -0
  122. package/client/web/src/components/UmamiInfoPan.vue +1549 -0
  123. package/client/web/src/components/UpdatePan.vue +263 -0
  124. package/client/web/src/components/ViewerCom.vue +1360 -0
  125. package/client/web/src/components/VoiceMsg.vue +626 -0
  126. package/client/web/src/components/WelPan.vue +894 -0
  127. package/client/web/src/components/msg-body/.gitkeep +0 -0
  128. package/client/web/src/components/msg-component/JsonSegComp.vue +138 -0
  129. package/client/web/src/components/msg-component/XmlSegComp.vue +132 -0
  130. package/client/web/src/components/msg-component/jsonComp/AutoReply.vue +97 -0
  131. package/client/web/src/components/msg-component/jsonComp/Contact.lua.vue +129 -0
  132. package/client/web/src/components/msg-component/jsonComp/Feed.lua.vue +94 -0
  133. package/client/web/src/components/msg-component/jsonComp/Forum.vue +84 -0
  134. package/client/web/src/components/msg-component/jsonComp/Mannounce.vue +111 -0
  135. package/client/web/src/components/msg-component/jsonComp/Map.vue +52 -0
  136. package/client/web/src/components/msg-component/jsonComp/Miniapp.lua.vue +53 -0
  137. package/client/web/src/components/msg-component/jsonComp/Miniapp.vue +69 -0
  138. package/client/web/src/components/msg-component/jsonComp/Music.lua.vue +135 -0
  139. package/client/web/src/components/msg-component/jsonComp/Tuwen.lua.vue +56 -0
  140. package/client/web/src/components/notice-component/.gitkeep +0 -0
  141. package/client/web/src/components/notice-component/MealHungryPan.vue +119 -0
  142. package/client/web/src/components/tooltip/CustomFaceTooltip.vue +22 -0
  143. package/client/web/src/components/tooltip/Tooltip.vue +50 -0
  144. package/client/web/src/components/tooltip/Tooltips.vue +14 -0
  145. package/client/web/src/components/tooltip/UserInfoTooltip.vue +69 -0
  146. package/client/web/src/function/base.ts +238 -0
  147. package/client/web/src/function/connect.ts +2042 -0
  148. package/client/web/src/function/debug.ts +10 -0
  149. package/client/web/src/function/elements/information.ts +141 -0
  150. package/client/web/src/function/elements/system.ts +101 -0
  151. package/client/web/src/function/elements/vueComp.ts +62 -0
  152. package/client/web/src/function/favicon.ts +76 -0
  153. package/client/web/src/function/input.ts +69 -0
  154. package/client/web/src/function/model/emoji.ts +127 -0
  155. package/client/web/src/function/model/img.ts +150 -0
  156. package/client/web/src/function/model/msg-body.ts +51 -0
  157. package/client/web/src/function/msg.ts +2674 -0
  158. package/client/web/src/function/notify.ts +225 -0
  159. package/client/web/src/function/option.ts +749 -0
  160. package/client/web/src/function/satori-model.ts +818 -0
  161. package/client/web/src/function/satori.ts +325 -0
  162. package/client/web/src/function/sender.ts +178 -0
  163. package/client/web/src/function/tooltip.ts +49 -0
  164. package/client/web/src/function/utils/appUtil.ts +2288 -0
  165. package/client/web/src/function/utils/avatarUtil.ts +31 -0
  166. package/client/web/src/function/utils/backgroundUtil.ts +110 -0
  167. package/client/web/src/function/utils/linkViewUtil.ts +101 -0
  168. package/client/web/src/function/utils/localHistoryUtil.ts +517 -0
  169. package/client/web/src/function/utils/msgUtil.ts +1242 -0
  170. package/client/web/src/function/utils/pinyin.ts +141 -0
  171. package/client/web/src/function/utils/recordUtil.ts +187 -0
  172. package/client/web/src/function/utils/sessionUtil.ts +114 -0
  173. package/client/web/src/function/utils/systemUtil.ts +664 -0
  174. package/client/web/src/main.ts +91 -0
  175. package/client/web/src/pages/Chat.vue +3453 -0
  176. package/client/web/src/pages/Friends.vue +636 -0
  177. package/client/web/src/pages/Info.vue +717 -0
  178. package/client/web/src/pages/Messages.vue +875 -0
  179. package/client/web/src/pages/Options.vue +82 -0
  180. package/client/web/src/pages/Qzone.vue +1178 -0
  181. package/client/web/src/pages/chat-view/ChatDanmaku.vue +759 -0
  182. package/client/web/src/pages/chat-view/ChatGlagame.vue +642 -0
  183. package/client/web/src/pages/chat-view/ChatTerminal.vue +1044 -0
  184. package/client/web/src/pages/chat-view/SystemNotice.vue +171 -0
  185. package/client/web/src/pages/options/OptAccount.vue +107 -0
  186. package/client/web/src/pages/options/OptAddon.vue +185 -0
  187. package/client/web/src/pages/options/OptDev.vue +704 -0
  188. package/client/web/src/pages/options/OptFunction.vue +403 -0
  189. package/client/web/src/pages/options/OptInfo.vue +165 -0
  190. package/client/web/src/pages/options/OptView.vue +846 -0
  191. package/client/web/src/runtime/backend.ts +310 -0
  192. package/client/web/src/state/auth.ts +14 -0
  193. package/client/web/src/state/chat.ts +36 -0
  194. package/client/web/src/state/connection.ts +20 -0
  195. package/client/web/src/state/contact.ts +37 -0
  196. package/client/web/src/state/qzone.ts +18 -0
  197. package/client/web/src/state/sessionHistory.ts +25 -0
  198. package/client/web/src/state/settings.ts +18 -0
  199. package/client/web/src/state/sticker.ts +10 -0
  200. package/client/web/src/state/ui.ts +56 -0
  201. package/client/web/tsconfig.json +27 -0
  202. package/client/web/tsconfig.tsbuildinfo +1 -0
  203. package/client/web/vite.config.ts +33 -0
  204. package/dist/index.js +1 -12
  205. package/dist/style.css +1 -1
  206. package/lib/index.js +2070 -2077
  207. package/package.json +15 -2
  208. package/readme.md +0 -22
  209. package/src/bootstrap.ts +71 -0
  210. package/src/cache.ts +319 -0
  211. package/src/config.ts +23 -35
  212. package/src/database.ts +650 -0
  213. package/src/index.ts +27 -59
  214. package/src/media.ts +302 -0
  215. package/src/recorder.ts +175 -0
  216. package/src/self-message.ts +456 -0
  217. package/src/server.d.ts +26 -0
  218. package/src/types.ts +108 -48
  219. package/src/web.ts +712 -0
  220. package/client/vue/chat-logic.ts +0 -683
  221. package/client/vue/composables/useChatActions.ts +0 -61
  222. package/client/vue/composables/useChatData.ts +0 -185
  223. package/client/vue/composables/useImageCache.ts +0 -281
  224. package/client/vue/composables/useVideoCache.ts +0 -125
  225. package/client/vue/types.ts +0 -72
  226. package/lib/api-handlers.d.ts +0 -25
  227. package/lib/config.d.ts +0 -14
  228. package/lib/file-manager.d.ts +0 -124
  229. package/lib/index.d.ts +0 -17
  230. package/lib/logger.d.ts +0 -9
  231. package/lib/message-handler.d.ts +0 -35
  232. package/lib/types.d.ts +0 -57
  233. package/lib/utils.d.ts +0 -18
  234. package/src/api-handlers.ts +0 -646
  235. package/src/file-manager.ts +0 -1436
  236. package/src/message-handler.ts +0 -507
  237. package/src/utils.ts +0 -189
@@ -1,72 +0,0 @@
1
- // 定义通用的聊天相关类型
2
-
3
- export interface BotInfo {
4
- selfId: string
5
- platform: string
6
- username: string
7
- avatar?: string
8
- status: 'online' | 'offline'
9
- }
10
-
11
- export interface ChannelInfo {
12
- id: string
13
- name: string
14
- type: number | string
15
- channelId?: string
16
- guildName?: string
17
- isDirect?: boolean
18
- }
19
-
20
- export interface MessageElement {
21
- type: string
22
- attrs: Record<string, any>
23
- children: MessageElement[]
24
- }
25
-
26
- export interface QuoteInfo {
27
- messageId: string
28
- id: string
29
- content: string
30
- elements?: MessageElement[]
31
- user: {
32
- id: string
33
- name: string
34
- userId: string
35
- avatar?: string
36
- username: string
37
- }
38
- timestamp: number
39
- }
40
-
41
- export interface MessageInfo {
42
- id: string
43
- content: string
44
- userId: string
45
- username: string
46
- avatar?: string
47
- timestamp: number
48
- channelId: string
49
- selfId: string
50
- elements?: MessageElement[]
51
- isBot?: boolean
52
- quote?: QuoteInfo
53
- sending?: boolean
54
- realId?: string
55
- }
56
-
57
- export interface ChatData {
58
- bots: Record<string, BotInfo>
59
- channels: Record<string, Record<string, ChannelInfo>>
60
- messages: Record<string, MessageInfo[]>
61
- }
62
-
63
- export interface PluginConfig {
64
- maxMessagesPerChannel: number
65
- loggerinfo: boolean
66
- blockedPlatforms: Array<{
67
- platformName: string
68
- exactMatch: boolean
69
- }>
70
- chatContainerHeight: number
71
- clearIndexedDBOnStart: boolean
72
- }
@@ -1,25 +0,0 @@
1
- import { FileManager } from './file-manager';
2
- import { MessageHandler } from './message-handler';
3
- import { Context } from 'koishi';
4
- import { Config } from './config';
5
- import { PluginLogger } from './logger';
6
- export declare class ApiHandlers {
7
- private ctx;
8
- private config;
9
- private fileManager;
10
- private messageHandler;
11
- private logger;
12
- private currentTempVideo;
13
- constructor(ctx: Context, config: Config, fileManager: FileManager, messageHandler: MessageHandler, logger: PluginLogger);
14
- registerApiHandlers(): void;
15
- private isFileUrl;
16
- private createFileUrl;
17
- private handleLocalFileRequest;
18
- private setupTempFileCleanup;
19
- private cleanupMediaCache;
20
- private logInfo;
21
- private fileExists;
22
- private safeReadDir;
23
- private cleanupMediaCacheDir;
24
- private getClientErrorMessage;
25
- }
package/lib/config.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { Schema } from 'koishi';
2
- export interface Config {
3
- loggerinfo: boolean;
4
- clearIndexedDBOnStart: boolean;
5
- maxMessagesPerChannel: number;
6
- messageChunkSize: number;
7
- channelCacheLimit: number;
8
- maxPersistImages: number;
9
- blockedPlatforms: Array<{
10
- platformName: string;
11
- exactMatch: boolean;
12
- }>;
13
- }
14
- export declare const Config: Schema<Config>;
@@ -1,124 +0,0 @@
1
- import { BotInfo, ChannelInfo, ChatData, MessageInfo } from './types';
2
- import { Context } from 'koishi';
3
- import { Config } from './config';
4
- import { PluginLogger } from './logger';
5
- export declare class FileManager {
6
- private ctx;
7
- private config;
8
- private logger;
9
- private storageBaseDir;
10
- private chatHistoryDir;
11
- private metadataFilePath;
12
- private utils;
13
- private memoryCache;
14
- private channelMessagesCache;
15
- private recentMessageIdsCache;
16
- private pendingBotMessageIds;
17
- private messageChunkLocationCache;
18
- private dirtyChannelKeys;
19
- private pendingMessages;
20
- private writeTimers;
21
- private metadataLoadPromise;
22
- private channelLoadPromises;
23
- private writeQueue;
24
- private disposed;
25
- private readonly WRITE_DEBOUNCE_MS;
26
- private readonly RECENT_MESSAGE_ID_CACHE_SIZE;
27
- constructor(ctx: Context, config: Config, logger: PluginLogger);
28
- initialize(): Promise<void>;
29
- readChatDataFromFile(): ChatData;
30
- getCachedChannelInfo(selfId: string, channelId: string): ChannelInfo | undefined;
31
- readMetadataOnly(): Promise<Omit<ChatData, 'messages'>>;
32
- upsertBotInfo(botInfo: BotInfo): Promise<void>;
33
- upsertChannelInfo(selfId: string, channelId: string, channelInfo: ChannelInfo): Promise<void>;
34
- setPinnedBots(pinnedBots: string[]): Promise<void>;
35
- setPinnedChannels(pinnedChannels: string[]): Promise<void>;
36
- private cleanupLegacyStorage;
37
- private ensureDir;
38
- readChannelMessages(selfId: string, channelId: string): Promise<MessageInfo[]>;
39
- readChannelMessagesPage(selfId: string, channelId: string, limit: number, offset?: number): Promise<{
40
- messages: MessageInfo[];
41
- total: number;
42
- }>;
43
- findChannelMessageById(selfId: string, channelId: string, messageId: string): Promise<MessageInfo | null>;
44
- private readMetadata;
45
- private writeMetadata;
46
- private scheduleWrite;
47
- private flushPendingMessages;
48
- cleanExcessMessages(data: ChatData): ChatData;
49
- addMessageToFile(messageInfo: MessageInfo): Promise<void>;
50
- cleanupExcessMessagesInStorage(): Promise<void>;
51
- getAllChannelMessageCounts(): Promise<Record<string, number>>;
52
- deleteChannelData(selfId: string, channelId: string): Promise<{
53
- deletedMessages: number;
54
- }>;
55
- deleteBotData(selfId: string): Promise<{
56
- deletedChannels: number;
57
- deletedMessages: number;
58
- }>;
59
- updateUserProfileInBotData(selfId: string, userId: string, userName?: string, avatar?: string): Promise<boolean>;
60
- markLatestBotMessageAsSent(selfId: string, channelId: string, realId: string): Promise<MessageInfo | undefined>;
61
- dispose(): Promise<void>;
62
- private createEmptyChatData;
63
- private ensureMetadataLoaded;
64
- private loadMetadataIntoCache;
65
- private loadChannelMessages;
66
- private loadChannelMessagesNoCache;
67
- private scheduleMetadataWrite;
68
- private enqueueWrite;
69
- private listStoredChannels;
70
- private listBotChannels;
71
- private scanStoredChannels;
72
- private createStoredChannelEntry;
73
- private resolveStoredChannelId;
74
- private getBotDirPath;
75
- private getEncodedChannelId;
76
- private decodeChannelId;
77
- private normalizeDirentName;
78
- private getChannelDirPath;
79
- private getChannelIndexPath;
80
- private getChunkFilePath;
81
- private createEmptyChannelIndex;
82
- private createChunkFileName;
83
- private loadOrCreateChannelIndex;
84
- private normalizeChannelIndex;
85
- private writeChannelIndex;
86
- private readChunkMessages;
87
- private writeChunkMessages;
88
- private writeMessagesToChunks;
89
- private appendMessagesToChannel;
90
- private trimChannelToLimit;
91
- private countChannelMessages;
92
- private removeChannelStorage;
93
- private updateUserProfileInChannel;
94
- private findAndUpdateLatestBotMessage;
95
- private findAndUpdateBotMessageByTempId;
96
- private deduplicateMessages;
97
- private getCachedChannelMessages;
98
- private peekCachedChannelMessages;
99
- private setCachedChannelMessages;
100
- private deleteCachedChannelMessages;
101
- private getChannelMessagesCacheSnapshot;
102
- private mergeChannelMessages;
103
- private limitChannelMessages;
104
- private channelMessageExists;
105
- private syncDirtyChannelState;
106
- private registerPendingBotMessage;
107
- private peekLatestPendingBotMessageId;
108
- private consumePendingBotMessageId;
109
- private deletePendingBotMessages;
110
- private getRecentMessageIdCacheLimit;
111
- private rememberRecentMessageIds;
112
- private forgetRecentMessageIds;
113
- private hasRecentMessageId;
114
- private deleteRecentMessageIds;
115
- private rememberMessageChunkLocation;
116
- private forgetMessageChunkLocation;
117
- private getMessageChunkLocation;
118
- private deleteMessageChunkLocations;
119
- private isSameBotInfo;
120
- private isSameChannelInfo;
121
- private isFileMissingError;
122
- private atomicWriteTextFile;
123
- private isAtomicRenameReplaceError;
124
- }
package/lib/index.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import { Console } from '@koishijs/console';
2
- import { Context } from 'koishi';
3
- import { Config } from './config';
4
- export declare const name = "chat-patch";
5
- export declare const reusable = false;
6
- export declare const filter = true;
7
- export declare const inject: {
8
- required: string[];
9
- };
10
- declare module 'koishi' {
11
- interface Context {
12
- console: Console;
13
- }
14
- }
15
- export declare const usage = "\n\n---\n\n\u5F00\u542F\u540E\uFF0C\u5373\u53EF\u5728koishi\u63A7\u5236\u53F0\u64CD\u4F5C\u673A\u5668\u4EBA\u6536\u53D1\u6D88\u606F\u5566\n\n\u6682\u65F6\u53EA\u652F\u6301\u63A5\u53D7\u56FE\u6587\u6D88\u606F / \u53D1\u9001\u6587\u5B57\u6D88\u606F\n\n---\n";
16
- export { Config } from './config';
17
- export declare function apply(ctx: Context, config: Config): Promise<void>;
package/lib/logger.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { Logger } from 'koishi';
2
- import { Config } from './config';
3
- export interface PluginLogger {
4
- logInfo(...args: unknown[]): void;
5
- info(...args: unknown[]): void;
6
- warn(...args: unknown[]): void;
7
- error(...args: unknown[]): void;
8
- }
9
- export declare function createPluginLogger(logger: Logger, config: Pick<Config, 'loggerinfo'>): PluginLogger;
@@ -1,35 +0,0 @@
1
- import { Context, Session } from 'koishi';
2
- import { FileManager } from './file-manager';
3
- import { Config } from './config';
4
- import { PluginLogger } from './logger';
5
- export declare class MessageHandler {
6
- private ctx;
7
- private config;
8
- private fileManager;
9
- private logger;
10
- private utils;
11
- private correctChannelIds;
12
- private scheduledTasks;
13
- private channelRefreshInFlight;
14
- private lastChannelRefreshAt;
15
- private readonly CHANNEL_REFRESH_TTL_MS;
16
- constructor(ctx: Context, config: Config, fileManager: FileManager, logger: PluginLogger);
17
- recordUserMessage(session: Session, timestamp: number): void;
18
- recordBotMessage(session: Session, timestamp: number): void;
19
- setCorrectChannelId(selfId: string, channelId: string): void;
20
- getCorrectChannelId(selfId: string): string | undefined;
21
- updateBotInfoToFile(session: Session): void;
22
- updateChannelInfoToFile(session: Session): string;
23
- downloadAndCacheMedia(url: string, type: 'image' | 'media' | 'avatar'): Promise<string>;
24
- private processMediaElementsAsync;
25
- private processUserMessage;
26
- private processBotMessage;
27
- dispose(): void;
28
- private scheduleTask;
29
- private shouldRefreshChannelInfo;
30
- private refreshChannelInfo;
31
- private resolveGuildName;
32
- private buildChannelName;
33
- private processMediaElements;
34
- private fileExists;
35
- }
package/lib/types.d.ts DELETED
@@ -1,57 +0,0 @@
1
- import { h } from 'koishi';
2
- export interface BotInfo {
3
- selfId: string;
4
- platform: string;
5
- username: string;
6
- avatar?: string;
7
- status: 'online' | 'offline';
8
- }
9
- export interface ChannelInfo {
10
- id: string;
11
- name: string;
12
- type: number | string;
13
- channelId?: string;
14
- guildName?: string;
15
- isDirect?: boolean;
16
- }
17
- export interface QuoteInfo {
18
- messageId: string;
19
- id: string;
20
- content: string;
21
- elements?: h[];
22
- user: {
23
- id: string;
24
- name: string;
25
- userId: string;
26
- avatar?: string;
27
- username: string;
28
- };
29
- timestamp: number;
30
- }
31
- export interface MessageInfo {
32
- id: string;
33
- content: string;
34
- userId: string;
35
- username: string;
36
- avatar?: string;
37
- timestamp: number;
38
- channelId: string;
39
- selfId: string;
40
- elements?: h[];
41
- type: 'user' | 'bot';
42
- guildId?: string;
43
- guildName?: string;
44
- platform: string;
45
- quote?: QuoteInfo;
46
- isDirect?: boolean;
47
- sending?: boolean;
48
- realId?: string;
49
- }
50
- export interface ChatData {
51
- bots: Record<string, BotInfo>;
52
- channels: Record<string, Record<string, ChannelInfo>>;
53
- messages: Record<string, MessageInfo[]>;
54
- pinnedBots: string[];
55
- pinnedChannels: string[];
56
- lastSaveTime?: number;
57
- }
package/lib/utils.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import { Config } from './config';
2
- import { Context } from 'koishi';
3
- export declare class Utils {
4
- private config;
5
- private ctx?;
6
- private persistImageWriteCount;
7
- private pendingTasks;
8
- constructor(config: Config, ctx?: Context);
9
- isPlatformBlocked(platform: string): boolean;
10
- extractTextContent(elements: any[]): string;
11
- private isBase64;
12
- persistBase64ImageAsync(base64Data: string): Promise<string>;
13
- private cleanupPersistImagesAsync;
14
- cleanBase64ContentAsync<T>(obj: T, isBotMessage?: boolean): Promise<T>;
15
- dispose(): Promise<void>;
16
- private trackTask;
17
- private fileExists;
18
- }