File size: 19,803 Bytes
597492e
 
 
 
33fc82c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
597492e
 
 
 
 
 
 
 
 
 
 
33fc82c
 
597492e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
# API 文档

本文档详细描述了饭否 MCP 服务器提供的所有工具函数。

## 认证方式

### 环境变量方式(PyPI 包)
使用环境变量传递认证信息:
- `FANFOU_API_KEY` - 饭否应用的 API Key
- `FANFOU_API_SECRET` - 饭否应用的 API Secret  
- `FANFOU_OAUTH_TOKEN` - OAuth Token(推荐)
- `FANFOU_OAUTH_TOKEN_SECRET` - OAuth Token Secret(推荐)
- `FANFOU_USERNAME` - 饭否用户名(首次使用)
- `FANFOU_PASSWORD` - 饭否密码(首次使用)

### HTTP 头方式(SSE 服务)
使用 HTTP 头传递认证信息,支持多用户隔离:
- `X-Fanfou-Api-Key` - 饭否应用的 API Key
- `X-Fanfou-Api-Secret` - 饭否应用的 API Secret
- `X-Fanfou-OAuth-Token` - OAuth Token(推荐)
- `X-Fanfou-OAuth-Token-Secret` - OAuth Token Secret(推荐)
- `X-Fanfou-Username` - 饭否用户名(首次使用)
- `X-Fanfou-Password` - 饭否密码(首次使用)

## 认证相关

### generate_oauth_token

生成 OAuth Token

**功能:**
- 使用用户名密码生成 OAuth Token
- 用于后续免密登录,避免重复输入用户名密码

**前提条件:**
- 环境变量方式:需要设置 `FANFOU_USERNAME``FANFOU_PASSWORD` 环境变量
- HTTP 头方式:需要传递 `X-Fanfou-Username``X-Fanfou-Password` 头部

**返回:**
- 包含 OAuth Token 信息的字典
- 控制台会显示详细的 Token 信息和使用说明

## 时间线相关

### get_home_timeline

获取当前用户首页关注用户及自己的饭否时间线

**功能:**
- 调用饭否 API 的 /statuses/home_timeline.json 接口获取当前用户的首页时间线
- 包含用户关注的所有人的最新消息
- 注:通常用户询问「我的饭否」时,指的是该时间线,除非用户明确指出「某个用户的饭否」

**参数:**
- `count` (int, 可选): 获取数量,默认 5 条
- `max_id` (str, 可选): 返回列表中内容最新 ID,用于分页获取更早的内容

**返回:**
- 首页时间线列表,包含以下字段:
  - `饭否内容`: 饭否消息内容(HTML 格式)
    - 转发:以「转@」开头,后跟用户链接,如 `转@<a href="https://fanfou.com/~FgPOFSnmkW8" class="former">kingcos</a>`,其中 href 中的是用户 ID,inner Text 是被转发用户的显示名称,一条饭否可能有多个转发
    - 话题:以「#」包围,如 `#<a href="/q/%E6%AD%A3%E5%9C%A8%E6%92%AD%E6%94%BE">正在播放</a>#`,其中 q/ 后面的是话题名,一条饭否可能有多个话题
    - 审核状态:如果内容末尾显示「【审核中】」,表示该内容正在审核中
  - `发布 ID`: 消息的唯一标识符
  - `发布时间`: 消息发布时间
  - `发布者`: 发布者的用户名
  - `发布者 ID`: 发布者的用户 ID
  - `图片链接`: 如果包含图片,则提供图片链接

### get_user_timeline

根据用户 ID 获取某个用户发表内容的时间线

**功能:**
- 调用饭否 API 的 /statuses/user_timeline.json 接口获取指定用户的时间线
- 当提供搜索关键词时,会调用 /search/user_timeline.json 接口进行搜索

**参数:**
- `user_id` (str, 可选): 用户 ID,如果为空则获取当前用户时间线
- `max_id` (str, 可选): 返回列表中内容最新 ID,用于分页获取更早的内容
- `count` (int, 可选): 获取数量,默认 5 条
- `q` (str, 可选): 搜索关键词,如果为空则获取普通用户时间线;如果不为空则搜索该用户包含该关键词的消息

**返回:**
- 用户时间线列表,包含以下字段:
  - `饭否内容`: 饭否消息内容(HTML 格式)
    - 转发:以「转@」开头,后跟用户链接,如 `转@<a href="https://fanfou.com/~FgPOFSnmkW8" class="former">kingcos</a>`,其中 href 中的是用户 ID,inner Text 是被转发用户的显示名称,一条饭否可能有多个转发
    - 话题:以「#」包围,如 `#<a href="/q/%E6%AD%A3%E5%9C%A8%E6%92%AD%E6%94%BE">正在播放</a>#`,其中 q/ 后面的是话题名,一条饭否可能有多个话题
    - 审核状态:如果内容末尾显示「【审核中】」,表示该内容正在审核中
  - `发布 ID`: 消息的唯一标识符
  - `发布时间`: 消息发布时间
  - `发布者`: 发布者的用户名
  - `发布者 ID`: 发布者的用户 ID
  - `图片链接`: 如果包含图片,则提供图片链接

### get_public_timeline

获取公开时间线

**功能:**
- 调用饭否 API 的 /statuses/public_timeline.json 接口获取饭否全站最新的公开消息
- 这些是所有用户可见的公开饭否内容
- 当提供搜索关键词时,会调用 /search/public_timeline.json 接口进行搜索

**参数:**
- `count` (int, 可选): 获取数量,默认 5 条
- `max_id` (str, 可选): 返回列表中内容最新 ID,用于分页获取更早的内容
- `q` (str, 可选): 搜索关键词,如果为空则获取普通公开时间线;如果不为空则搜索包含该关键词的公开消息

**返回:**
- 公开时间线列表,包含以下字段:
  - `饭否内容`: 饭否消息内容(HTML 格式)
    - 转发:以「转@」开头,后跟用户链接,如 `转@<a href="https://fanfou.com/~FgPOFSnmkW8" class="former">kingcos</a>`,其中 href 中的是用户 ID,inner Text 是被转发用户的显示名称,一条饭否可能有多个转发
    - 话题:以「#」包围,如 `#<a href="/q/%E6%AD%A3%E5%9C%A8%E6%92%AD%E6%94%BE">正在播放</a>#`,其中 q/ 后面的是话题名,一条饭否可能有多个话题
    - 审核状态:如果内容末尾显示「【审核中】」,表示该内容正在审核中
  - `发布 ID`: 消息的唯一标识符
  - `发布时间`: 消息发布时间
  - `发布者`: 发布者的用户名
  - `发布者 ID`: 发布者的用户 ID
  - `图片链接`: 如果包含图片,则提供图片链接

## 用户和内容相关

### get_user_info

获取用户信息

**功能:**
- 调用饭否 API 的 /users/show.json 接口获取指定用户的详细信息
- 如果 user_id 为空,则获取当前登录用户的信息

**参数:**
- `user_id` (str, 可选): 用户 ID,如果为空则获取当前用户信息

**返回:**
- 用户信息字典,包含以下字段:
  - `用户 ID`: 用户的唯一标识符
  - `用户名`: 用户名
  - `位置`: 用户所在位置
  - `性别`: 用户性别
  - `生日`: 用户生日
  - `描述`: 用户个人描述
  - `头像`: 用户头像链接
  - `链接`: 用户个人网站链接
  - `是否加锁`: 账号是否受保护
  - `粉丝数`: 被关注数量
  - `朋友数`: 互相关注数量
  - `收藏数`: 收藏的消息数量
  - `发布数`: 发布的消息数量
  - `照片数`: 发布的照片数量
  - `是否关注`: 当前用户是否关注该用户
  - `注册时间`: 账号注册时间
  - `最新状态`: 用户最新发布的消息信息(包含发布时间、发布 ID、发布内容)

### get_status_info

获取某条饭否内容的具体信息

**功能:**
- 调用饭否 API 的 /statuses/show/id.json 接口获取指定饭否内容的详细信息

**参数:**
- `status_id` (str, 必需): 饭否内容的 ID

**返回:**
- 饭否内容的详细信息字典,包含以下字段:
  - `饭否内容`: 消息文本内容(HTML 格式)
    - 转发:以「转@」开头,后跟用户链接,如 `转@<a href="https://fanfou.com/~FgPOFSnmkW8" class="former">kingcos</a>`,其中 href 中的是用户 ID,inner Text 是被转发用户的显示名称,一条饭否可能有多个转发
    - 话题:以「#」包围,如 `#<a href="/q/%E6%AD%A3%E5%9C%A8%E6%92%AD%E6%94%BE">正在播放</a>#`,其中 q/ 后面的是话题名,一条饭否可能有多个话题
    - 审核状态:如果内容末尾显示「【审核中】」,表示该内容正在审核中
  - `发布 ID`: 消息的唯一标识符
  - `发布时间`: 消息发布时间
  - `发布者`: 发布者的显示名称
  - `发布者 ID`: 发布者的用户 ID
  - `是否收藏`: 当前用户是否收藏了该消息
  - `是否是自己`: 是否是当前用户发布的消息
  - `发布位置`: 消息发布的地理位置
  - `回复信息`: 如果是回复消息,包含被回复的状态 ID、用户 ID 和用户名
  - `图片链接`: 如果包含图片,则提供图片链接

## 互动相关

### manage_favorite

管理饭否内容的收藏状态

**功能:**
- 调用饭否 API 的 /favorites/create/id.json 或 /favorites/destroy/id.json 接口
- 可以收藏或取消收藏指定的饭否内容
- 内置二次确认机制,防止误操作
- **重要:AI助手不能自动确认操作,必须等待用户明确指示**

**参数:**
- `status_id` (str, 必需): 饭否内容的 ID
- `action` (str, 必需): 操作类型,"create" 表示收藏,"destroy" 表示取消收藏
- `confirm` (bool, 可选): 是否确认操作,默认为 False

**返回:**
**首次调用时(confirm=False):**
- 确认信息字典,包含以下字段:
  - `需要确认`: 是否需要用户确认
  - `内容预览`: 要操作的内容预览(最多50字)
  - `发布时间`: 内容的发布时间
  - `发布 ID`: 内容的 ID
  - `发布者`: 内容的发布者
  - `当前收藏状态`: 当前的收藏状态
  - `操作类型`: 要执行的操作(收藏/取消收藏)
  - `⚠️ 重要提示`: 操作的提醒信息
  - `确认提示`: 如何进行确认的说明
  - `🚫 绝对禁止`: AI助手不能自动确认的提醒

**确认操作时(confirm=True):**
- 操作结果字典,包含以下字段:
  - `是否收藏`: 操作后的收藏状态
  - `操作结果`: 操作是否成功的描述信息
  - `操作类型`: 执行的具体操作(收藏/取消收藏)

**使用流程:**
1. 首次调用:`manage_favorite("status_id", "action")` - 显示内容预览和确认提示
2. **用户必须明确表示要操作**:用户看到预览后,必须明确说"确认收藏"或"确认取消收藏"
3. 确认操作:只有在用户明确确认后,AI才会调用 `manage_favorite("status_id", "action", confirm=True)`

**安全机制:**
- 🛡️ **双重保护**:首次调用只显示预览,不执行操作
- 🚫 **AI限制**:AI助手被明确禁止自动确认操作
- 👤 **用户控制**:只有用户明确表示要操作时,AI才会执行
- ⚠️ **状态检查**:自动检查当前收藏状态,避免重复操作

### manage_friendship

管理用户关注状态

**功能:**
- 调用饭否 API 的 /friendships/create.json 或 /friendships/destroy.json 接口
- 可以关注或取消关注指定用户
- 在执行关注操作前,会先调用 get_user_info 查询目标用户信息
- 智能处理受保护账号的关注申请
- 内置二次确认机制,防止误操作
- **重要:AI助手不能自动确认操作,必须等待用户明确指示**

**参数:**
- `user_id` (str, 必需): 目标用户的 ID
- `action` (str, 必需): 操作类型,"create" 表示关注,"destroy" 表示取消关注
- `confirm` (bool, 可选): 是否确认操作,默认为 False

**返回:**
**首次调用时(confirm=False):**
- 确认信息字典,包含以下字段:
  - `需要确认`: 是否需要用户确认
  - `用户预览`: 要操作的用户预览信息(用户名、用户ID、是否受保护、粉丝数、发布数、个人描述)
  - `当前关注状态`: 当前的关注状态
  - `操作类型`: 要执行的操作(关注/取消关注)
  - `⚠️ 重要提示`: 操作的提醒信息
  - `特殊情况`: 如果是受保护账号,会包含相关提示
  - `确认提示`: 如何进行确认的说明
  - `🚫 绝对禁止`: AI助手不能自动确认的提醒

**确认操作时(confirm=True):**
- 操作结果字典,包含以下字段:
  - `是否关注`: 操作后的关注状态
  - `操作结果`: 操作是否成功的描述信息
  - `操作类型`: 执行的具体操作(关注/取消关注/关注申请)
  - `用户信息`: 目标用户的基本信息(用户名、用户ID、是否受保护)
  - `特殊情况`: 如果是受保护账号的关注申请,会包含相关提示

**使用流程:**
1. 首次调用:`manage_friendship("user_id", "action")` - 显示用户预览和确认提示
2. **用户必须明确表示要操作**:用户看到预览后,必须明确说"确认关注"或"确认取消关注"
3. 确认操作:只有在用户明确确认后,AI才会调用 `manage_friendship("user_id", "action", confirm=True)`

**安全机制:**
- 🛡️ **双重保护**:首次调用只显示预览,不执行操作
- 🚫 **AI限制**:AI助手被明确禁止自动确认操作
- 👤 **用户控制**:只有用户明确表示要操作时,AI才会执行
- ⚠️ **状态检查**:自动检查当前关注状态,避免重复操作

**特殊情况:**
- 当目标用户账号受保护(protected)时,关注操作将变为申请关注
- 系统会自动检测并处理这种情况,返回相应的提示信息
- 申请关注需要对方确认后才能生效

## 发布相关

### publish_status

发布饭否内容(仅文字)

**功能:**
- 调用饭否 API 的 /statuses/update.json 接口发布纯文字内容
- 支持最多140字的文字内容发布
- 内置二次确认机制,防止误发布
- **重要:AI助手不能自动确认发布,必须等待用户明确指示**

**参数:**
- `status` (str, 必需): 要发布的文字内容(最多140字)
- `confirm` (bool, 可选): 是否确认发布,默认为 False

**返回:**
**首次调用时(confirm=False):**
- 确认信息字典,包含以下字段:
  - `需要确认`: 是否需要用户确认
  - `内容预览`: 要发布的内容预览
  - `字数统计`: 当前字数和限制(如:50/140)
  - `操作类型`: 发布饭否
  - `⚠️ 重要提示`: 发布的提醒信息
  - `确认提示`: 如何进行确认的说明
  - `🚫 绝对禁止`: AI助手不能自动确认的提醒

**确认发布时(confirm=True):**
- 发布结果字典,包含以下字段:
  - `发布 ID`: 新发布消息的唯一标识符
  - `发布时间`: 消息发布时间
  - `发布结果`: 发布是否成功的描述信息
  - `重要提示`: 关于审核的提醒信息

**使用流程:**
1. 首次调用:`publish_status("内容")` - 显示内容预览和确认提示
2. **用户必须明确表示要发布**:用户看到预览后,必须明确说"确认发布"或类似的话
3. 确认发布:只有在用户明确确认后,AI才会调用 `publish_status("内容", confirm=True)`

**安全机制:**
- 🛡️ **双重保护**:首次调用只显示预览,不执行发布
- 🚫 **AI限制**:AI助手被明确禁止自动确认发布
- 👤 **用户控制**:只有用户明确表示要发布时,AI才会执行
- ⚠️ **内容验证**:自动进行字数统计和内容验证

**注意事项:**
- 发布成功后需要等待审核才能在时间线中显示
- 内容不能为空且不能超过140字
- 系统会自动进行内容验证
- **AI助手绝对不会自动执行发布操作**

### publish_photo

发布饭否内容(文字+图片)

**功能:**
- 调用饭否 API 的 /photos/upload.json 接口发布带图片的内容
- 支持文字+单张图片的组合发布(最多一张图片)
- 支持从网络 URL 自动下载图片
- 内置二次确认机制,防止误发布
- **重要:AI助手不能自动确认发布,必须等待用户明确指示**

**参数:**
- `status` (str, 必需): 要发布的文字内容(最多140字)
- `photo_url` (str, 必需): 图片的网络 URL 地址
- `confirm` (bool, 可选): 是否确认发布,默认为 False

**返回:**
**首次调用时(confirm=False):**
- 确认信息字典,包含以下字段:
  - `需要确认`: 是否需要用户确认
  - `内容预览`: 要发布的内容预览
  - `字数统计`: 当前字数和限制(如:50/140)
  - `图片链接`: 图片的 URL 地址
  - `操作类型`: 发布带图片的饭否
  - `⚠️ 重要提示`: 发布的提醒信息
  - `URL 提示`: 图片 URL 格式检查结果
  - `确认提示`: 如何进行确认的说明
  - `🚫 绝对禁止`: AI助手不能自动确认的提醒

**确认发布时(confirm=True):**
- 发布结果字典,包含以下字段:
  - `发布 ID`: 新发布消息的唯一标识符
  - `发布时间`: 消息发布时间
  - `发布结果`: 发布是否成功的描述信息
  - `重要提示`: 关于审核的提醒信息

**使用流程:**
1. 首次调用:`publish_photo("内容", "图片URL")` - 显示内容和图片预览以及确认提示
2. **用户必须明确表示要发布**:用户看到预览后,必须明确说"确认发布"或类似的话
3. 确认发布:只有在用户明确确认后,AI才会调用 `publish_photo("内容", "图片URL", confirm=True)`

**安全机制:**
- 🛡️ **双重保护**:首次调用只显示预览,不执行发布
- 🚫 **AI限制**:AI助手被明确禁止自动确认发布
- 👤 **用户控制**:只有用户明确表示要发布时,AI才会执行
- ⚠️ **内容验证**:自动进行字数统计、内容验证和图片URL检查

**支持的图片格式:**
- JPEG: `https://example.com/image.jpg`
- PNG: `https://example.com/image.png`
- GIF: `https://example.com/image.gif`
- BMP: `https://example.com/image.bmp`
- WebP: `https://example.com/image.webp`

**注意事项:**
- 发布成功后需要等待审核才能在时间线中显示
- 文字内容不能为空且不能超过140字
- 图片下载后大小不能超过5MB
- 系统会自动从 URL 下载图片并上传到饭否
- 支持 HTTP 和 HTTPS 协议
- 下载超时时间为30秒
- 系统会自动检测图片的 MIME 类型
- **AI助手绝对不会自动执行发布操作**

### delete_status

删除饭否内容

**功能:**
- 调用饭否 API 的 /statuses/destroy.json 接口删除指定的饭否内容
- 只能删除自己发布的内容
- 内置二次确认机制,防止误删
- **重要:AI助手不能自动确认删除,必须等待用户明确指示**

**参数:**
- `status_id` (str, 必需): 要删除的饭否内容的 ID
- `confirm` (bool, 可选): 是否确认删除,默认为 False

**返回:**
**首次调用时(confirm=False):**
- 确认信息字典,包含以下字段:
  - `需要确认`: 是否需要用户确认
  - `内容预览`: 要删除的内容预览(最多50字)
  - `发布时间`: 内容的发布时间
  - `发布 ID`: 内容的 ID
  - `⚠️ 重要警告`: 删除操作的警告信息
  - `确认提示`: 如何进行确认的说明
  - `🚫 绝对禁止`: AI助手不能自动确认的提醒

**确认删除时(confirm=True):**
- 删除结果字典,包含以下字段:
  - `删除 ID`: 被删除消息的 ID
  - `删除结果`: 删除是否成功的描述信息
  - `重要提示`: 关于删除操作的提醒信息

**使用流程:**
1. 首次调用:`delete_status("status_id")` - 显示内容预览和确认提示
2. **用户必须明确表示要删除**:用户看到预览后,必须明确说"确认删除"或类似的话
3. 确认删除:只有在用户明确确认后,AI才会调用 `delete_status("status_id", confirm=True)`

**安全机制:**
- 🛡️ **双重保护**:首次调用只显示预览,不执行删除
- 🚫 **AI限制**:AI助手被明确禁止自动确认删除操作
- 👤 **用户控制**:只有用户明确表示要删除时,AI才会执行删除
- ⚠️ **警告提示**:每次都会显示删除不可逆的警告

**注意事项:**
- 只能删除自己发布的饭否内容
- 删除操作不可逆,请谨慎操作
- 删除成功后,内容将立即从时间线中消失
- 需要提供准确的饭否内容 ID
- 系统会自动检查内容所有权,非本人内容无法删除
- 内容预览会自动移除HTML标签,便于阅读
- **AI助手绝对不会自动执行删除操作**