tkserver 1.7.0 → 1.7.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 (3) hide show
  1. package/index.js +32 -2
  2. package/mongo.js +12 -1
  3. package/package.json +2 -2
package/index.js CHANGED
@@ -31,6 +31,7 @@ const {
31
31
  isQQ,
32
32
  addQQMailSuffix,
33
33
  getQQAvatar,
34
+ getQQNick,
34
35
  getPasswordStatus,
35
36
  preCheckSpam,
36
37
  checkTurnstileCaptcha,
@@ -143,6 +144,9 @@ module.exports = async (request, response) => {
143
144
  case 'UPLOAD_IMAGE': // >= 1.5.0
144
145
  res = await uploadImage(event, config)
145
146
  break
147
+ case 'GET_QQ_NICK': // >= 1.7.0
148
+ res = await qqNickGet(event)
149
+ break
146
150
  case 'COMMENT_EXPORT_FOR_ADMIN': // >= 1.6.13
147
151
  res = await commentExportForAdmin(event)
148
152
  break
@@ -749,18 +753,20 @@ async function limitFilter (request) {
749
753
 
750
754
  async function checkCaptcha (comment, request) {
751
755
  logger.log('验证码配置:', {
756
+ CAPTCHA_PROVIDER: config.CAPTCHA_PROVIDER,
752
757
  TURNSTILE_SITE_KEY: config.TURNSTILE_SITE_KEY,
753
758
  GEETEST_CAPTCHA_ID: config.GEETEST_CAPTCHA_ID,
754
759
  GEETEST_CAPTCHA_KEY: config.GEETEST_CAPTCHA_KEY ? '***' : undefined
755
760
  })
756
- if (config.TURNSTILE_SITE_KEY && config.TURNSTILE_SECRET_KEY) {
761
+ const provider = config.CAPTCHA_PROVIDER
762
+ if ((!provider || provider === 'Turnstile') && config.TURNSTILE_SITE_KEY && config.TURNSTILE_SECRET_KEY) {
757
763
  await checkTurnstileCaptcha({
758
764
  ip: getIp(request),
759
765
  turnstileToken: comment.turnstileToken,
760
766
  turnstileTokenSecretKey: config.TURNSTILE_SECRET_KEY
761
767
  })
762
768
  }
763
- if (config.GEETEST_CAPTCHA_ID && config.GEETEST_CAPTCHA_KEY) {
769
+ if ((!provider || provider === 'Geetest') && config.GEETEST_CAPTCHA_ID && config.GEETEST_CAPTCHA_KEY) {
764
770
  await checkGeeTestCaptcha({
765
771
  geeTestCaptchaId: config.GEETEST_CAPTCHA_ID,
766
772
  geeTestCaptchaKey: config.GEETEST_CAPTCHA_KEY,
@@ -769,6 +775,15 @@ async function checkCaptcha (comment, request) {
769
775
  geeTestPassToken: comment.geeTestPassToken,
770
776
  geeTestGenTime: comment.geeTestGenTime
771
777
  })
778
+ } else if (config.TURNSTILE_SITE_KEY) {
779
+ if (!config.TURNSTILE_SECRET_KEY) {
780
+ throw new Error('Turnstile 验证码配置不完整,缺少 TURNSTILE_SECRET_KEY')
781
+ }
782
+ await checkTurnstileCaptcha({
783
+ ip: getIp(request),
784
+ turnstileToken: comment.turnstileToken,
785
+ turnstileTokenSecretKey: config.TURNSTILE_SECRET_KEY
786
+ })
772
787
  }
773
788
  }
774
789
 
@@ -908,6 +923,21 @@ async function getRecentComments (event) {
908
923
  return res
909
924
  }
910
925
 
926
+ // 获取 QQ 昵称
927
+ async function qqNickGet (event) {
928
+ const res = {}
929
+ try {
930
+ validate(event, ['qq'])
931
+ const nick = await getQQNick(event.qq, config.QQ_API_KEY)
932
+ res.code = RES_CODE.SUCCESS
933
+ res.nick = nick
934
+ } catch (e) {
935
+ res.code = RES_CODE.FAIL
936
+ res.message = e.message
937
+ }
938
+ return res
939
+ }
940
+
911
941
  // 修改配置
912
942
  async function setConfig (event) {
913
943
  const isAdminUser = isAdmin(event.accessToken)
package/mongo.js CHANGED
@@ -32,6 +32,7 @@ const {
32
32
  getPasswordStatus,
33
33
  preCheckSpam,
34
34
  checkTurnstileCaptcha,
35
+ checkGeeTestCaptcha,
35
36
  getConfig,
36
37
  getConfigForAdmin,
37
38
  validate
@@ -735,12 +736,22 @@ async function limitFilter (request) {
735
736
  }
736
737
 
737
738
  async function checkCaptcha (comment, request) {
738
- if (config.TURNSTILE_SITE_KEY && config.TURNSTILE_SECRET_KEY) {
739
+ const provider = config.CAPTCHA_PROVIDER
740
+ if ((!provider || provider === 'Turnstile') && config.TURNSTILE_SITE_KEY && config.TURNSTILE_SECRET_KEY) {
739
741
  await checkTurnstileCaptcha({
740
742
  ip: getIp(request),
741
743
  turnstileToken: comment.turnstileToken,
742
744
  turnstileTokenSecretKey: config.TURNSTILE_SECRET_KEY
743
745
  })
746
+ } else if (provider === 'Geetest' && config.GEETEST_CAPTCHA_ID && config.GEETEST_CAPTCHA_KEY) {
747
+ await checkGeeTestCaptcha({
748
+ geeTestCaptchaId: config.GEETEST_CAPTCHA_ID,
749
+ geeTestCaptchaKey: config.GEETEST_CAPTCHA_KEY,
750
+ geeTestLotNumber: comment.geeTestLotNumber,
751
+ geeTestCaptchaOutput: comment.geeTestCaptchaOutput,
752
+ geeTestPassToken: comment.geeTestPassToken,
753
+ geeTestGenTime: comment.geeTestGenTime
754
+ })
744
755
  }
745
756
  }
746
757
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tkserver",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "A simple comment system.",
5
5
  "keywords": [
6
6
  "twikoo",
@@ -31,7 +31,7 @@
31
31
  "get-user-ip": "^1.0.1",
32
32
  "lokijs": "^1.5.12",
33
33
  "mongodb": "^6.3.0",
34
- "twikoo-func": "1.7.0",
34
+ "twikoo-func": "1.7.1",
35
35
  "uuid": "^8.3.2"
36
36
  }
37
37
  }