@waline/vercel 1.13.2 → 1.13.5

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,14 +1,14 @@
1
1
  {
2
2
  "name": "@waline/vercel",
3
- "version": "1.13.2",
3
+ "version": "1.13.5",
4
4
  "description": "vercel server for waline comment system",
5
5
  "repository": "https://github.com/walinejs/waline",
6
6
  "license": "MIT",
7
7
  "author": "lizheming <i@imnerd.org>",
8
8
  "dependencies": {
9
9
  "@cloudbase/node-sdk": "^2.9.0",
10
- "@koa/cors": "^3.2.0",
11
- "akismet": "^2.0.6",
10
+ "@koa/cors": "^3.3.0",
11
+ "akismet": "^2.0.7",
12
12
  "deta": "^1.1.0",
13
13
  "dompurify": "^2.3.6",
14
14
  "fast-csv": "^4.3.6",
@@ -32,7 +32,7 @@
32
32
  "think-model": "^1.5.4",
33
33
  "think-model-mysql": "^1.1.7",
34
34
  "think-model-postgresql": "1.1.6",
35
- "think-model-sqlite": "^1.2.2",
35
+ "think-model-sqlite": "^1.2.3",
36
36
  "think-mongo": "^2.1.2",
37
37
  "think-router-rest": "^1.0.5",
38
38
  "thinkjs": "^3.2.14",
@@ -5,6 +5,17 @@ module.exports = [
5
5
  Model(think.app),
6
6
  Mongo(think.app),
7
7
  {
8
+ context: {
9
+ get serverURL() {
10
+ const { SERVER_URL } = process.env;
11
+ if (SERVER_URL) {
12
+ return SERVER_URL;
13
+ }
14
+
15
+ const { protocol, host, path, controller } = this;
16
+ return `${protocol}://${host}${path.slice(0, -controller.length)}`;
17
+ },
18
+ },
8
19
  controller: {
9
20
  fail(...args) {
10
21
  if (this.ctx.status === 200) {
@@ -375,10 +375,9 @@ module.exports = class extends BaseRest {
375
375
  think.logger.debug(`Comment initial status is ${data.status}`);
376
376
 
377
377
  if (data.status === 'approved') {
378
- const spam = await akismet(
379
- data,
380
- this.ctx.protocol + '://' + this.ctx.host
381
- ).catch((e) => console.log(e)); // ignore akismet error
378
+ const spam = await akismet(data, this.ctx.serverURL).catch((e) =>
379
+ console.log(e)
380
+ ); // ignore akismet error
382
381
 
383
382
  if (spam === true) {
384
383
  data.status = 'spam';
@@ -18,8 +18,8 @@ module.exports = class extends think.Controller {
18
18
  const hasCode =
19
19
  type === 'twitter' ? oauth_token && oauth_verifier : Boolean(code);
20
20
  if (!hasCode) {
21
- const { protocol, host } = this.ctx;
22
- const redirectUrl = `${protocol}://${host}/oauth?${qs.stringify({
21
+ const { serverURL } = this.ctx;
22
+ const redirectUrl = `${serverURL}/oauth?${qs.stringify({
23
23
  redirect,
24
24
  type,
25
25
  })}`;
@@ -36,8 +36,8 @@ module.exports = class extends think.Controller {
36
36
  */
37
37
  const params = { code, oauth_verifier, oauth_token };
38
38
  if (type === 'facebook') {
39
- const { protocol, host } = this.ctx;
40
- const redirectUrl = `${protocol}://${host}/oauth?${qs.stringify({
39
+ const { serverURL } = this.ctx;
40
+ const redirectUrl = `${serverURL}/oauth?${qs.stringify({
41
41
  redirect,
42
42
  type,
43
43
  })}`;
@@ -27,9 +27,8 @@ module.exports = class extends BaseRest {
27
27
  }
28
28
 
29
29
  const notify = this.service('notify');
30
- const { protocol, host } = this.ctx;
31
30
  const token = jwt.sign(user[0].email, this.config('jwtKey'));
32
- const profileUrl = `${protocol}://${host}/ui/profile?token=${token}`;
31
+ const profileUrl = `${this.ctx.serverURL}/ui/profile?token=${token}`;
33
32
 
34
33
  await notify.transporter.sendMail({
35
34
  from:
@@ -58,9 +58,7 @@ module.exports = class extends BaseRest {
58
58
 
59
59
  const notify = this.service('notify');
60
60
  const apiUrl =
61
- this.ctx.protocol +
62
- '://' +
63
- this.ctx.host +
61
+ this.ctx.serverURL +
64
62
  '/verification?' +
65
63
  qs.stringify({ token, email: data.email });
66
64
 
@@ -354,7 +354,7 @@ module.exports = class extends think.Service {
354
354
  }
355
355
 
356
356
  async run(comment, parent, disableAuthorNotify = false) {
357
- const { AUTHOR_EMAIL, BLOGGER_EMAIL } = process.env;
357
+ const { AUTHOR_EMAIL, BLOGGER_EMAIL, DISABLE_AUTHOR_NOTIFY } = process.env;
358
358
  const { mailSubject, mailTemplate, mailSubjectAdmin, mailTemplateAdmin } =
359
359
  think.config();
360
360
  const AUTHOR = AUTHOR_EMAIL || BLOGGER_EMAIL;
@@ -383,7 +383,7 @@ module.exports = class extends think.Service {
383
383
  <br/>
384
384
  </div>`;
385
385
 
386
- if (!isAuthorComment && !disableAuthorNotify) {
386
+ if (!DISABLE_AUTHOR_NOTIFY && !isAuthorComment && !disableAuthorNotify) {
387
387
  const wechat = await this.wechat({ title, content }, comment, parent);
388
388
  const qywxAmWechat = await this.qywxAmWechat(
389
389
  { title, content },