Explorar el Código

re-add webshot timeout

Signed-off-by: Mike L <cl.jeremy@qq.com>
Mike L hace 3 años
padre
commit
228c7b2489
Se han modificado 4 ficheros con 9 adiciones y 2 borrados
  1. 2 1
      dist/twitter.js
  2. 1 0
      dist/webshot.js
  3. 5 1
      src/twitter.ts
  4. 1 0
      src/webshot.ts

+ 2 - 1
dist/twitter.js

@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
 exports.sendPost = exports.getPostOwner = exports.WebshotHelpers = exports.ScreenNameNormalizer = exports.SessionManager = exports.urlSegmentToId = exports.idToUrlSegment = exports.isValidUrlSegment = exports.parseLink = exports.linkBuilder = void 0;
 const fs = require("fs");
 const path = require("path");
+const util_1 = require("util");
 const instagram_id_to_url_segment_1 = require("instagram-id-to-url-segment");
 Object.defineProperty(exports, "idToUrlSegment", { enumerable: true, get: function () { return instagram_id_to_url_segment_1.instagramIdToUrlSegment; } });
 Object.defineProperty(exports, "urlSegmentToId", { enumerable: true, get: function () { return instagram_id_to_url_segment_1.urlSegmentToInstagramId; } });
@@ -214,7 +215,7 @@ class default_1 {
                             else
                                 logger.warn(`navigation timed out at ${getTimerTime()} ms`);
                             return [];
-                        }).then(itemIds => itemIds.map(id => this.lazyGetMediaById(id)));
+                        }).then(itemIds => util_1.promisify(setTimeout)(getTimeout()).then(() => itemIds.map(id => this.lazyGetMediaById(id))));
                     }).finally(() => { page.close(); });
                 });
                 setTimeout(this.work, this.workInterval * 1000);

+ 1 - 0
dist/webshot.js

@@ -115,6 +115,7 @@ class Webshot extends CallableInstance {
                         }
                     }))
                         .then(() => utils_1.chainPromises(morePostProcessings.map(func => () => func(page))))
+                        .then(() => util_1.promisify(setTimeout)(getTimeout()))
                         .then(() => page.screenshot())
                         .then(screenshot => {
                         new pngjs_1.PNG({

+ 5 - 1
src/twitter.ts

@@ -1,5 +1,7 @@
 import * as fs from 'fs';
 import * as path from 'path';
+import { promisify } from 'util';
+
 import {
   instagramIdToUrlSegment as idToUrlSegment,
   urlSegmentToInstagramId as urlSegmentToId
@@ -345,7 +347,9 @@ export default class {
                   logger.warn(`error while fetching tweets for ${userName}: ${err.message}`);
                 } else logger.warn(`navigation timed out at ${getTimerTime()} ms`);
                 return [] as string[];
-              }).then(itemIds => itemIds.map(id => this.lazyGetMediaById(id)));
+              }).then(itemIds => promisify(setTimeout)(getTimeout()).then(() =>
+                itemIds.map(id => this.lazyGetMediaById(id))
+              ));
           }).finally(() => { page.close(); });
         });
         setTimeout(this.work, this.workInterval * 1000);

+ 1 - 0
src/webshot.ts

@@ -153,6 +153,7 @@ class Webshot extends CallableInstance<[LazyMediaItem[], (...args) => void, numb
               }
             }))
             .then(() => chainPromises(morePostProcessings.map(func => () => func(page))))
+            .then(() => promisify(setTimeout)(getTimeout()))
             .then(() => page.screenshot())
             .then(screenshot => {
               new PNG({