artalk 2.1.0 → 2.1.4

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 (45) hide show
  1. package/dist/Artalk.css +1 -1
  2. package/dist/Artalk.es.js +3895 -3106
  3. package/dist/Artalk.iife.js +1 -266
  4. package/dist/Artalk.js +1 -266
  5. package/package.json +19 -21
  6. package/src/api/index.ts +6 -7
  7. package/src/artalk.ts +11 -4
  8. package/src/components/action-btn.ts +1 -1
  9. package/src/components/comment.ts +102 -27
  10. package/src/components/editor-plugs/_example-plug.ts.txt +2 -7
  11. package/src/components/editor-plugs/editor-plug.ts +3 -3
  12. package/src/components/editor-plugs/emoticons-plug.less +21 -11
  13. package/src/components/editor-plugs/emoticons-plug.ts +199 -79
  14. package/src/components/editor-plugs/preview-plug.less +1 -1
  15. package/src/components/editor-plugs/preview-plug.ts +2 -7
  16. package/src/components/editor.ts +75 -34
  17. package/src/components/html/comment.html +6 -13
  18. package/src/components/html/editor.html +9 -10
  19. package/src/components/html/list.html +1 -1
  20. package/src/components/layer.ts +33 -14
  21. package/src/components/list-lite.ts +218 -235
  22. package/src/components/list.ts +11 -9
  23. package/src/components/pagination.ts +2 -2
  24. package/src/components/read-more-btn.ts +27 -10
  25. package/src/components/sidebar-views/comments-view.ts +12 -5
  26. package/src/components/sidebar-views/sites-view.ts +0 -6
  27. package/src/components/sidebar.ts +7 -2
  28. package/src/{default-conf.ts → defaults.ts} +7 -7
  29. package/src/lib/utils.ts +41 -12
  30. package/src/style/_color.less +19 -23
  31. package/src/style/_extend.less +3 -3
  32. package/src/style/_variables.less +0 -24
  33. package/src/style/comment.less +191 -197
  34. package/src/style/editor.less +78 -103
  35. package/src/style/item-text-editor.less +2 -2
  36. package/src/style/list.less +14 -13
  37. package/src/style/main.less +35 -31
  38. package/src/style/page-list.less +4 -4
  39. package/src/style/pagination.less +6 -6
  40. package/src/style/sidebar.less +35 -35
  41. package/src/style/site-list.less +13 -13
  42. package/types/artalk-config.d.ts +13 -10
  43. package/types/artalk-data.d.ts +10 -5
  44. package/types/event.d.ts +10 -1
  45. package/src/assets/emoticons.json +0 -100
@@ -9,7 +9,7 @@
9
9
  right: 0;
10
10
  width: @width;
11
11
  height: 100%;
12
- background: @color-bg;
12
+ background: var(--at-color-bg);
13
13
  transition: transform 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;
14
14
  transform: translate(@width, 0px);
15
15
 
@@ -28,7 +28,7 @@
28
28
  display: flex;
29
29
  flex-direction: row;
30
30
  align-items: center;
31
- border-bottom: 1px solid @color-border;
31
+ border-bottom: 1px solid var(--at-color-border);
32
32
 
33
33
  .atk-avatar {
34
34
  display: flex;
@@ -42,11 +42,11 @@
42
42
  height: @height;
43
43
  width: @header-height - 30px;
44
44
  border-radius: 2px;
45
- background: @color-meta;
45
+ background: var(--at-color-meta);
46
46
  text-align: center;
47
47
  line-height: @height;
48
48
  font-size: 13px;
49
- color: @color-bg;
49
+ color: var(--at-color-bg);
50
50
  }
51
51
 
52
52
  .atk-site-logo {
@@ -61,7 +61,7 @@
61
61
 
62
62
  .atk-item {
63
63
  position: relative;
64
- color: @color-sub;
64
+ color: var(--at-color-sub);
65
65
  font-size: 20px;
66
66
  // cursor: pointer;
67
67
  user-select: none;
@@ -71,7 +71,7 @@
71
71
  }
72
72
 
73
73
  &.atk-active {
74
- color: @color-font;
74
+ color: var(--at-color-font);
75
75
 
76
76
  &:after {
77
77
  content: ' ';
@@ -80,7 +80,7 @@
80
80
  left: 0;
81
81
  width: 100%;
82
82
  height: 6px;
83
- background: @color-main;
83
+ background: var(--at-color-main);
84
84
  opacity: .4;
85
85
  }
86
86
  }
@@ -108,14 +108,14 @@
108
108
  .atk-sidebar-nav {
109
109
  display: flex;
110
110
  flex-direction: row;
111
- border-bottom: 1px solid @color-border;
111
+ border-bottom: 1px solid var(--at-color-border);
112
112
  height: @nav-height + 1px;
113
113
 
114
114
  .akt-curt-view-btn {
115
115
  display: flex;
116
116
  align-items: center;
117
117
  padding: 0 20px;
118
- border-right: 1px solid @color-border;
118
+ border-right: 1px solid var(--at-color-border);
119
119
  cursor: pointer;
120
120
  user-select: none;
121
121
  height: @nav-height;
@@ -123,7 +123,7 @@
123
123
  white-space: nowrap;
124
124
 
125
125
  &:hover {
126
- background: @color-bg-grey;
126
+ background: var(--at-color-bg-grey);
127
127
  }
128
128
 
129
129
  .atk-icon {
@@ -135,7 +135,7 @@
135
135
  width: 14px;
136
136
  height: 1px;
137
137
  margin: 0 auto 4px;
138
- background: @color-deep;
138
+ background: var(--at-color-deep);
139
139
  transform-origin: 20px;
140
140
 
141
141
  &:last-child {
@@ -185,18 +185,18 @@
185
185
  .atk-tab-item {
186
186
  line-height: @nav-height;
187
187
  height: @nav-height;
188
- color: @color-sub;
188
+ color: var(--at-color-sub);
189
189
  cursor: pointer;
190
190
  user-select: none;
191
191
  padding: 0 20px;
192
192
  white-space: nowrap;
193
193
 
194
194
  &:hover {
195
- background: @color-bg-grey;
195
+ background: var(--at-color-bg-grey);
196
196
  }
197
197
 
198
198
  &.atk-active {
199
- color: @color-deep;
199
+ color: var(--at-color-deep);
200
200
  }
201
201
  }
202
202
  }
@@ -211,11 +211,11 @@
211
211
  top: 70px;
212
212
  transform: translateX(-50%);
213
213
  pointer-events: all;
214
- background: @color-bg;
214
+ background: var(--at-color-bg);
215
215
  width: 80%;
216
216
  max-height: 40%;
217
217
  margin: 0 auto;
218
- border: 1px solid @color-border;
218
+ border: 1px solid var(--at-color-border);
219
219
  border-radius: 4px;
220
220
  overflow-y: auto;
221
221
 
@@ -236,22 +236,22 @@
236
236
  width: 20px;
237
237
  height: 20px;
238
238
  line-height: 20px;
239
- background: @color-meta;
239
+ background: var(--at-color-meta);
240
240
  margin: 10px;
241
241
  border-radius: 3px;
242
242
  text-align: center;
243
- color: @color-bg;
243
+ color: var(--at-color-bg);
244
244
  font-size: 12px;
245
245
  }
246
246
 
247
247
  .atk-site-name {
248
- color: @color-font;
248
+ color: var(--at-color-font);
249
249
  font-size: 17px;
250
250
  margin-left: 7px;
251
251
  }
252
252
 
253
253
  &.atk-active, &:hover {
254
- background: @color-bg-grey;
254
+ background: var(--at-color-bg-grey);
255
255
  }
256
256
  }
257
257
  }
@@ -269,7 +269,7 @@
269
269
  right: 0;
270
270
  top: 0;
271
271
  font-size: 35px;
272
- color: @color-meta;
272
+ color: var(--at-color-meta);
273
273
  pointer-events: none;
274
274
  height: 100%;
275
275
  display: flex;
@@ -286,7 +286,7 @@
286
286
  .atk-label {
287
287
  font-size: 16px;
288
288
  margin-bottom: 12px;
289
- color: @color-font;
289
+ color: var(--at-color-font);
290
290
  }
291
291
 
292
292
  .atk-desc {
@@ -295,7 +295,7 @@
295
295
  margin-left: 15px;
296
296
  margin-bottom: 20px;
297
297
  display: block;
298
- color: @color-meta;
298
+ color: var(--at-color-meta);
299
299
 
300
300
  a {
301
301
  opacity: 0.8;
@@ -308,20 +308,20 @@
308
308
  padding: 0 10px;
309
309
  margin: 0;
310
310
  border: none;
311
- border-bottom: 2px solid @color-border;
311
+ border-bottom: 2px solid var(--at-color-border);
312
312
  outline: none;
313
313
  width: 100%;
314
314
  margin-bottom: 25px;
315
- background: @color-bg;
315
+ background: var(--at-color-bg);
316
316
 
317
317
  &:focus {
318
- border-bottom-color: @color-bg-light;
318
+ border-bottom-color: var(--at-color-bg-light);
319
319
  }
320
320
 
321
321
  &[type="file"] {
322
322
  border-radius: 2px;
323
323
  background: transparent;
324
- border-bottom: 2px solid @color-border;
324
+ border-bottom: 2px solid var(--at-color-border);
325
325
  cursor: pointer;
326
326
  position: relative;
327
327
  padding: 0 15px;
@@ -343,22 +343,22 @@
343
343
  padding: 5px 10px;
344
344
  width: 100%;
345
345
  border: none;
346
- border-bottom: 2px solid @color-border;
346
+ border-bottom: 2px solid var(--at-color-border);
347
347
  margin-bottom: 25px;
348
348
  -webkit-appearance: none;
349
349
  border-radius: 0;
350
- background: @color-bg;
350
+ background: var(--at-color-bg);
351
351
  }
352
352
 
353
353
  button {
354
354
  &:hover {
355
- background: @color-bg-light;
355
+ background: var(--at-color-bg-light);
356
356
  }
357
357
 
358
358
  text-align: center;
359
- color: @color-light;
359
+ color: var(--at-color-light);
360
360
  background: transparent;
361
- border: 2px solid @color-bg-light;
361
+ border: 2px solid var(--at-color-bg-light);
362
362
  line-height: @form-height;
363
363
  letter-spacing: 2em;
364
364
  text-indent: 2em; // center
@@ -381,7 +381,7 @@
381
381
  padding: 5px 33px;
382
382
  cursor: pointer;
383
383
  user-select: none;
384
- border-right: 1px solid @color-border;
384
+ border-right: 1px solid var(--at-color-border);
385
385
  border-left: 1px solid transparent;
386
386
  &:hover {
387
387
  background: #f4f4f4;
@@ -409,8 +409,8 @@
409
409
  width: 100%;
410
410
  bottom: 0;
411
411
  left: 0;
412
- background: @color-bg;
413
- border-top: 1px solid @color-border;
412
+ background: var(--at-color-bg);
413
+ border-top: 1px solid var(--at-color-border);
414
414
  }
415
415
 
416
416
  .atk-list-read-more {
@@ -25,7 +25,7 @@
25
25
  border-radius: 2px;
26
26
 
27
27
  &:hover {
28
- background: @color-bg-grey;
28
+ background: var(--at-color-bg-grey);
29
29
  }
30
30
  }
31
31
  }
@@ -58,7 +58,7 @@
58
58
  height: 65px;
59
59
  width: 65px;
60
60
  line-height: 65px;
61
- background: @color-quote;
61
+ background: #687a86;
62
62
  color: #fff;
63
63
  border-radius: 4px;
64
64
  }
@@ -66,25 +66,25 @@
66
66
  .atk-site-name {
67
67
  text-align: center;
68
68
  font-size: 15px;
69
- color: @color-sub;
69
+ color: var(--at-color-sub);
70
70
  padding: 0 17px;
71
71
  word-break: break-word;
72
72
  }
73
73
 
74
74
  &.atk-active {
75
- background-color: @color-bg-grey;
76
- border: 1px solid @color-border;
75
+ background-color: var(--at-color-bg-grey);
76
+ border: 1px solid var(--at-color-border);
77
77
  margin-top: -1px;
78
78
  border-radius: 0 0 4px 4px;
79
79
 
80
80
  .atk-site-name {
81
- color: @color-deep;
81
+ color: var(--at-color-deep);
82
82
  }
83
83
  }
84
84
 
85
85
  &:hover {
86
86
  .atk-site-name {
87
- color: @color-font;
87
+ color: var(--at-color-font);
88
88
  }
89
89
  }
90
90
  }
@@ -94,8 +94,8 @@
94
94
  position: relative;
95
95
  min-height: 120px;
96
96
  width: 100%;
97
- border-top: 1px solid @color-border;
98
- border-bottom: 1px solid @color-border;
97
+ border-top: 1px solid var(--at-color-border);
98
+ border-bottom: 1px solid var(--at-color-border);
99
99
  margin-bottom: -10px;
100
100
 
101
101
  .atk-header {
@@ -117,7 +117,7 @@
117
117
  position: absolute;
118
118
  width: 100%;
119
119
  height: 6px;
120
- background: @color-main;
120
+ background: var(--at-color-main);
121
121
  opacity: .4;
122
122
  left: 0;
123
123
  bottom: 6px;
@@ -132,8 +132,8 @@
132
132
  min-height: 23px;
133
133
 
134
134
  .atk-url-item {
135
- background: @color-bg-grey;
136
- color: @color-font;
135
+ background: var(--at-color-bg-grey);
136
+ color: var(--at-color-font);
137
137
  border-radius: 2px;
138
138
  padding: 0 8px;
139
139
  font-size: 13px;
@@ -156,7 +156,7 @@
156
156
  cursor: pointer;
157
157
 
158
158
  &:hover i {
159
- background-color: @color-red;
159
+ background-color: var(--at-color-red);
160
160
  }
161
161
  }
162
162
  }
@@ -2,15 +2,6 @@ export default interface ArtalkConfig {
2
2
  /** 装载元素 */
3
3
  el: string
4
4
 
5
- /** 评论框占位字符 */
6
- placeholder?: string
7
-
8
- /** 评论为空时显示字符 */
9
- noComment?: string
10
-
11
- /** 发送按钮文字 */
12
- sendBtn?: string
13
-
14
5
  /** 页面唯一标识(完整 URL) */
15
6
  pageKey: string
16
7
 
@@ -23,8 +14,20 @@ export default interface ArtalkConfig {
23
14
  /** 站点名 */
24
15
  site?: string
25
16
 
17
+ /** 评论框占位字符 */
18
+ placeholder?: string
19
+
20
+ /** 评论为空时显示字符 */
21
+ noComment?: string
22
+
23
+ /** 发送按钮文字 */
24
+ sendBtn?: string
25
+
26
+ /** 评论框旅行(显示在待回复评论后面) */
27
+ editorTravel?: boolean
28
+
26
29
  /** 表情包 */
27
- emoticons?: object|any
30
+ emoticons?: any
28
31
 
29
32
  /** Gravatar 头像 */
30
33
  gravatar?: {
@@ -47,9 +47,6 @@ export interface CommentData {
47
47
  /** 评论页面 url */
48
48
  page_url?: string
49
49
 
50
- /** 评论页面 title */
51
- page_title?: string
52
-
53
50
  /** 是否可见 */
54
51
  visible: boolean
55
52
 
@@ -67,8 +64,8 @@ export interface ListData {
67
64
  /** 评论数据 */
68
65
  comments: CommentData[]
69
66
 
70
- /** 父级评论总数 */
71
- total_parents: number
67
+ /** 根评论总数 */
68
+ total_roots: number
72
69
 
73
70
  /** 评论总数(包括所有子评论) */
74
71
  total: number
@@ -175,6 +172,14 @@ export interface NotifyData {
175
172
  read_link: string
176
173
  }
177
174
 
175
+ export type EmoticonGrpData = {
176
+ name: string,
177
+ type: 'emoticon'|'image'|'emoji'
178
+ items: {key: string, val: string}[]
179
+ }
180
+
181
+ export type EmoticonListData = EmoticonGrpData[]
182
+
178
183
  export interface ApiVersionData {
179
184
  /** API 程序名 */
180
185
  app: string
package/types/event.d.ts CHANGED
@@ -27,7 +27,10 @@ export interface EventPayloadMap {
27
27
  'editor-show-loading': undefined // 加载显示
28
28
  'editor-hide-loading': undefined // 加载隐藏
29
29
  'editor-notify': NotifyConf // 显示提示
30
- 'editor-reply': CommentData // 设置回复
30
+ 'editor-reply': EditorReplyPayload // 设置回复
31
+ 'editor-reply-cancel': undefined // 取消回复
32
+ 'editor-travel': HTMLElement
33
+ 'editor-travel-back': undefined
31
34
 
32
35
  // Notify
33
36
  'unread-update': UnreadUpdatePayload // 未读数据更新
@@ -59,6 +62,12 @@ export interface UnreadUpdatePayload {
59
62
 
60
63
  export type ListUpdatePayload = (data: ListData | undefined) => void
61
64
 
65
+ export interface EditorReplyPayload {
66
+ data: CommentData
67
+ $el: HTMLElement
68
+ scroll?: boolean
69
+ }
70
+
62
71
  // ============================================
63
72
  export interface Handler<P> {
64
73
  (payload: P): void
@@ -1,100 +0,0 @@
1
- {
2
- "颜表情": {
3
- "inputType": "emoticon",
4
- "container": {
5
- "Hi": "|´・ω・)ノ",
6
- "开心": "ヾ(≧∇≦*)ゝ",
7
- "星星眼": "(☆ω☆)",
8
- "掀桌": "(╯‵□′)╯︵┴─┴",
9
- "流口水": " ̄﹃ ̄",
10
- "捂脸": "(/ω\)",
11
- "给跪": "∠( ᐛ 」∠)_",
12
- "哈?": "(๑•̀ㅁ•́ฅ)",
13
- "斜眼": "→_→",
14
- "加油": "୧(๑•̀⌄•́๑)૭",
15
- "有木有WiFi": "٩(ˊᗜˋ*)و",
16
- "前方高能预警": "(ノ°ο°)ノ",
17
- "纳尼": "(´இ皿இ`)",
18
- "吓死惹": "⌇●﹏●⌇",
19
- "已阅留爪": "(ฅ´ω`ฅ)",
20
- "去吧大师球": "(╯°A°)╯︵○○○",
21
- "太萌惹": "φ( ̄∇ ̄o)",
22
- "咦咦咦": "ヾ(´・ ・`。)ノ\"",
23
- "气呼呼": "( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃",
24
- "我受到了惊吓": "(ó﹏ò。)",
25
- "什么鬼": "Σ(っ °Д °;)っ",
26
- "摸摸头": "( ,,´・ω・)ノ\"(´っω・`。)",
27
- "无奈": "╮(╯▽╰)╭ ",
28
- "脸红": "o(*////▽////*)q ",
29
- "悲哀": ">﹏<",
30
- "静静地看着你": "( ๑´•ω•) \"(ㆆᴗㆆ)",
31
- "不要哇": "(。•ˇ‸ˇ•。)"
32
- }
33
- },
34
- "Emoji": {
35
- "inputType": "emoji",
36
- "container": [
37
- "😀","😃","😄","😁","😆","😅","😂","😊","😉","👀","😌","😍","😘","😋","😜","😝","😎","😏","😒","😟","😕","😖","😫","😩","😠","😲","😵","😳","😱","😨","😢","😭","😷","✋","✌️","👊","👋","👏","👍","👎","❤️","🎉","🚀"
38
- ]
39
- },
40
- "滑稽": {
41
- "inputType": "image",
42
- "container": {
43
- "原味稽": "https://i.loli.net/2019/02/01/5c53d26b7ae13.png",
44
- "还是算了": "https://i.loli.net/2020/04/30/riySFlu75fJdG4p.png",
45
- "蓝纹稽": "https://i.loli.net/2020/04/30/jyh5IVzpqXsHuvU.jpg",
46
- "随稽应变": "https://i.loli.net/2017/02/05/5896e6ec1d528.jpg",
47
- "蠕动": "https://i.loli.net/2017/02/05/5896e9712a3c1.gif",
48
- "束手无稽": "https://i.loli.net/2020/04/30/dF8sTOpgomj7qf5.jpg",
49
- "微笑默叹以为妙绝": "https://i.loli.net/2019/02/01/5c53daa84f24a.png",
50
- "喝嘤料": "https://i.loli.net/2019/02/01/5c53d63d8c6af.jpg",
51
- "暗中观察": "https://i.loli.net/2019/02/01/5c53dd21a2e7b.jpg",
52
- "高兴": "https://i.loli.net/2019/02/01/5c53d1b9e5f38.jpg",
53
- "惊稽": "https://i.loli.net/2019/02/01/5c53d1e2ad89f.jpg",
54
- "可这和我的帅有什么关系": "https://i.loli.net/2017/02/05/5896ece29a8e0.jpg",
55
- "狱稽": "https://i.loli.net/2020/04/30/cUEQrVYGFiDjqhy.jpg",
56
- "梆": "https://i.loli.net/2020/04/30/TlAGjm6IvJSMVpq.jpg",
57
- "吃鱼摆摆": "https://i.loli.net/2017/02/05/5896ec2cb7f39.gif",
58
- "跃跃欲试 3": "https://i.loli.net/2017/02/05/5896ece2ac5a2.gif",
59
- "突然滑稽": "https://i.loli.net/2019/02/01/5c53cf2a457f1.jpg",
60
- "扶墙怂": "https://i.loli.net/2017/02/05/5896ece2ab57a.jpg",
61
- "阔以": "https://i.loli.net/2020/04/30/7EYyq1TcBKa3eQ2.jpg",
62
- "不得行": "https://i.loli.net/2020/04/30/KoqBGauX7TEfeyn.jpg",
63
- "少儿不宜": "https://i.loli.net/2020/04/30/nt2ZWRozUNjBxAK.jpg",
64
- "稽日可期": "https://i.loli.net/2020/04/30/FmfYcoMJesi2Ddq.jpg",
65
- "哎": "https://i.loli.net/2020/04/30/ps7PTIANgSErqnU.jpg",
66
- "别看丢人": "https://i.loli.net/2019/02/01/5c53d4f89ea29.jpg",
67
- "地稽 2": "https://i.loli.net/2019/02/01/5c53dbae85687.jpg",
68
- "地稽": "https://i.loli.net/2020/04/30/BnTMX35EPxleVmA.jpg",
69
- "老阔有点扣": "https://i.loli.net/2020/04/30/fhDXbA9T1zJPlKk.gif",
70
- "啊哈哈": "https://i.loli.net/2019/02/01/5c53dc2947d84.jpg",
71
- "无稽可奈": "https://i.loli.net/2020/04/30/UyxTzB2fS3LtH7Q.jpg",
72
- "老实巴交": "https://i.loli.net/2020/04/30/7DgSoyqwtYBxchE.jpg",
73
- "紧张": "https://i.loli.net/2017/02/05/5896e8a408253.jpg",
74
- "摇摆稽": "https://i.loli.net/2019/02/01/5c53d1904dcb2.gif",
75
- "又不是不能用": "https://i.loli.net/2019/02/01/5c53ce897ab55.jpg",
76
- "一时滑稽": "https://i.loli.net/2019/02/01/5c53d5d28e22c.jpg",
77
- "无法接受": "https://i.loli.net/2019/02/01/5c53cee8422fc.jpg",
78
- "嘤雄豪稽": "https://i.loli.net/2020/04/30/sbtw6o7iKaM4Nmq.jpg",
79
- "相视双稽": "https://i.loli.net/2019/02/01/5c53d5a093149.jpg",
80
- "稽皮发麻": "https://i.loli.net/2017/02/05/5896ece2a019f.jpg",
81
- "地稽 3": "https://i.loli.net/2019/02/01/5c53dbe510bcf.jpg",
82
- "地稽委屈": "https://i.loli.net/2019/02/01/5c53d76e250da.jpg",
83
- "地稽抚摸": "https://i.loli.net/2020/04/30/cavZ6nNzMPimLy7.gif",
84
- "地稽捶打": "https://i.loli.net/2020/04/30/vFVPynXaHR5sitk.gif",
85
- "绝望": "https://i.loli.net/2019/02/01/5c53dc0ba2303.jpg",
86
- "气稽败坏": "https://i.loli.net/2019/02/01/5c53d216f3c60.jpg",
87
- "当场去世": "https://i.loli.net/2020/04/30/sogxHMTFWbE2lrP.jpg",
88
- "喝酒": "https://i.loli.net/2019/02/01/5c53d78c3f4a5.jpg",
89
- "老衲摆摊算命": "https://i.loli.net/2017/02/05/5896ece29d8a5.gif",
90
- "老哥,稳": "https://i.loli.net/2017/02/05/5896ece29ebb0.jpg",
91
- "自闭稽": "https://i.loli.net/2019/02/01/5c53d6603ee24.jpg",
92
- "无话可说": "https://i.loli.net/2019/02/01/5c53d6a77b7e4.jpg",
93
- "跃跃欲试": "https://i.loli.net/2017/02/05/5896e9710dfd5.jpg",
94
- "跃跃欲试 2": "https://i.loli.net/2019/02/01/5c53dcc057350.jpg",
95
- "满脑子骚操作": "https://i.loli.net/2020/04/30/xJXcUtO2BryHAsa.gif",
96
- "稽之舞": "https://i.loli.net/2019/02/01/5c53de1a4d14d.gif",
97
- "将稽就稽": "https://i.loli.net/2020/04/30/KVwf8qCrZts6WOT.gif"
98
- }
99
- }
100
- }