@waline/vercel 1.17.1 → 1.17.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waline/vercel",
3
- "version": "1.17.1",
3
+ "version": "1.17.4",
4
4
  "description": "vercel server for waline comment system",
5
5
  "keywords": [
6
6
  "waline",
@@ -31,7 +31,7 @@
31
31
  "markdown-it-sub": "^1.0.0",
32
32
  "markdown-it-sup": "^1.0.0",
33
33
  "mathjax-full": "^3.2.0",
34
- "nodemailer": "^6.7.4",
34
+ "nodemailer": "^6.7.5",
35
35
  "nunjucks": "^3.2.3",
36
36
  "phpass": "^0.1.1",
37
37
  "prismjs": "^1.28.0",
@@ -365,7 +365,7 @@ module.exports = class extends BaseRest {
365
365
  });
366
366
  comments.forEach((cmt) => {
367
367
  const countItem = (counts || []).find(({ mail, user_id }) => {
368
- if (user_id) {
368
+ if (cmt.user_id) {
369
369
  return user_id === cmt.user_id;
370
370
  }
371
371
  return mail === cmt.mail;
@@ -47,13 +47,18 @@ module.exports = class extends BaseRest {
47
47
  }
48
48
  }
49
49
 
50
- let avatar = user[0].avatar;
51
- if (/(github)/i.test(avatar)) {
52
- avatar =
53
- this.config('avatarProxy') + '?url=' + encodeURIComponent(avatar);
50
+ let avatarUrl = user[0].avatar
51
+ ? user[0].avatar
52
+ : await think.service('avatar').stringify({
53
+ mail: user[0].email,
54
+ nick: user[0].display_name,
55
+ link: user[0].url,
56
+ });
57
+ const { avatarProxy } = think.config();
58
+ if (avatarProxy) {
59
+ avatarUrl = avatarProxy + '?url=' + encodeURIComponent(avatarUrl);
54
60
  }
55
- user[0].avatar = avatar;
56
-
61
+ user[0].avatar = avatarUrl;
57
62
  return this.success({
58
63
  ...user[0],
59
64
  password: null,
@@ -59,7 +59,11 @@ module.exports = {
59
59
 
60
60
  try {
61
61
  const search = helper.promisify(regionSearch.btreeSearch, regionSearch);
62
- const { region } = await search(ip);
62
+ const result = await search(ip);
63
+ if (!result) {
64
+ return '';
65
+ }
66
+ const { region } = result;
63
67
  const [, , province, city, isp] = region.split('|');
64
68
  const address = Array.from(new Set([province, city, isp]));
65
69
  return address.slice(0, depth).join(' ');
package/src/logic/base.js CHANGED
@@ -65,6 +65,7 @@ module.exports = class extends think.Logic {
65
65
  'qq',
66
66
  'avatar',
67
67
  '2fa',
68
+ 'label',
68
69
  ],
69
70
  }
70
71
  );
@@ -30,6 +30,7 @@ const CSV_HEADERS = {
30
30
  'type',
31
31
  'url',
32
32
  'avatar',
33
+ 'label',
33
34
  'github',
34
35
  'twitter',
35
36
  'facebook',
@@ -127,7 +127,11 @@ module.exports = class extends Base {
127
127
  }
128
128
 
129
129
  async _getCmtGroupByMailUserIdCache(key, where) {
130
- if (this.tableName !== 'Comment' || key !== 'user_id_mail') {
130
+ if (
131
+ this.tableName !== 'Comment' ||
132
+ key !== 'user_id_mail' ||
133
+ !think.isArray(think.config('levels'))
134
+ ) {
131
135
  return [];
132
136
  }
133
137
 
@@ -140,7 +144,11 @@ module.exports = class extends Base {
140
144
  }
141
145
 
142
146
  async _setCmtGroupByMailUserIdCache(key, data) {
143
- if (this.tableName !== 'Comment' || key !== 'user_id_mail') {
147
+ if (
148
+ this.tableName !== 'Comment' ||
149
+ key !== 'user_id_mail' ||
150
+ !think.isArray(think.config('levels'))
151
+ ) {
144
152
  return;
145
153
  }
146
154
 
@@ -161,7 +169,10 @@ module.exports = class extends Base {
161
169
  }
162
170
 
163
171
  async _updateCmtGroupByMailUserIdCache(data, method) {
164
- if (this.tableName !== 'Comment') {
172
+ if (
173
+ this.tableName !== 'Comment' ||
174
+ !think.isArray(think.config('levels'))
175
+ ) {
165
176
  return;
166
177
  }
167
178
 
@@ -204,7 +215,14 @@ module.exports = class extends Base {
204
215
 
205
216
  const currentTableName = this.tableName;
206
217
  this.tableName = cacheTableName;
207
- await this.update({ count }, { objectId: cacheData[0].objectId });
218
+ await this.update({ count }, { objectId: cacheData[0].objectId }).catch(
219
+ (e) => {
220
+ if (e.code === 101) {
221
+ return;
222
+ }
223
+ throw e;
224
+ }
225
+ );
208
226
  this.tableName = currentTableName;
209
227
  }
210
228
 
@@ -227,7 +245,7 @@ module.exports = class extends Base {
227
245
  const cacheDataMap = {};
228
246
  for (let i = 0; i < cacheData.length; i++) {
229
247
  const key = options.group
230
- .map((item) => cacheData[i][item] || null)
248
+ .map((item) => cacheData[i][item] || undefined)
231
249
  .join('_');
232
250
  cacheDataMap[key] = cacheData[i];
233
251
  }
@@ -242,7 +260,7 @@ module.exports = class extends Base {
242
260
 
243
261
  const groupFlatValue = {};
244
262
  options.group.slice(0, i).forEach((group) => {
245
- groupFlatValue[group] = null;
263
+ groupFlatValue[group] = undefined;
246
264
  });
247
265
 
248
266
  for (let j = 0; j < where._complex[groupName][1].length; j++) {
@@ -252,7 +270,7 @@ module.exports = class extends Base {
252
270
  ({
253
271
  ...groupFlatValue,
254
272
  [groupName]: where._complex[groupName][1][j],
255
- }[item] || null)
273
+ }[item] || undefined)
256
274
  )
257
275
  .join('_');
258
276
  if (cacheDataMap[cacheKey]) {