Acathur преди 3 години
родител
ревизия
75432d4f6f
променени са 3 файла, в които са добавени 19 реда и са изтрити 7 реда
  1. 10 3
      dist/lib/ids.js
  2. 1 1
      package.json
  3. 8 3
      src/lib/ids.ts

+ 10 - 3
dist/lib/ids.js

@@ -1,8 +1,12 @@
 "use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.Ids = exports.randomtail = exports.IdsSource = exports.IdsChannel = void 0;
 const request_1 = require("./request");
 const crypto_1 = require("crypto");
+const querystring_1 = __importDefault(require("querystring"));
 var IdsChannel;
 (function (IdsChannel) {
     IdsChannel[IdsChannel["Csdn"] = 1] = "Csdn";
@@ -29,10 +33,13 @@ class Ids {
     }
     async request(config) {
         const { endpoint, accessKeyId, accessKeySecret } = this.config;
+        const querystr = querystring_1.default.stringify({
+            nonce: genNonceString(),
+            ...config.params
+        });
         config.baseURL = endpoint;
-        config.url = config.url || '/';
-        config.params = config.params || {};
-        config.params.nonce = genNonceString();
+        config.url = (config.url || '/') + (querystr ? `?${querystr}` : '');
+        config.params = {};
         const timestamp = Math.floor(Date.now() / 1000);
         const data = config.url.toLowerCase() + timestamp;
         const signature = crypto_1.createHmac('sha256', accessKeySecret).update(data).digest('base64');

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "crawler-lib",
-  "version": "1.2.1",
+  "version": "1.2.2",
   "main": "dist/lib/index.js",
   "module": "dist/lib/index.js",
   "author": "Acathur",

+ 8 - 3
src/lib/ids.ts

@@ -1,5 +1,6 @@
 import { request, RequestConfig } from './request'
 import { createHmac, randomBytes } from 'crypto'
+import querystring from 'querystring'
 
 export interface IdsConfig {
   endpoint: string
@@ -121,10 +122,14 @@ export class Ids {
 
   private async request(config: RequestConfig) {
     const { endpoint, accessKeyId, accessKeySecret } = this.config
+    const querystr = querystring.stringify({
+      nonce: genNonceString(),
+      ...config.params
+    })
+
     config.baseURL = endpoint
-    config.url = config.url || '/'
-    config.params = config.params || {}
-    config.params.nonce = genNonceString()
+    config.url = (config.url || '/') + (querystr ? `?${querystr}` : '')
+    config.params = {}
 
     const timestamp = Math.floor(Date.now() / 1000)
     const data = config.url.toLowerCase() + timestamp