Browse Source

:ambulance: critical bugfix

Signed-off-by: LI JIAHAO <lijiahao99131@gmail.com>
LI JIAHAO 6 years ago
parent
commit
588ae702b9
3 changed files with 20 additions and 6 deletions
  1. 10 3
      dist/webshot.js
  2. 9 3
      src/webshot.ts
  3. 1 0
      tslint.json

+ 10 - 3
dist/webshot.js

@@ -1,6 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-const http = require("http");
+const https = require("https");
 const log4js = require("log4js");
 const pngjs_1 = require("pngjs");
 const read = require("read-all-stream");
@@ -65,13 +65,20 @@ function renderWebshot(url, height, webshotDelay) {
 function fetchImage(url) {
     return new Promise(resolve => {
         logger.info(`fetching ${url}`);
-        http.get(url, res => {
+        https.get(url, res => {
             if (res.statusCode === 200) {
                 read(res, 'base64').then(data => {
                     logger.info(`successfully fetched ${url}`);
-                    return data;
+                    resolve(data);
                 });
             }
+            else {
+                logger.error(`failed to fetch ${url}: ${res.statusCode}`);
+                resolve();
+            }
+        }).on('error', (err) => {
+            logger.error(`failed to fetch ${url}: ${err.message}`);
+            resolve();
         });
     });
 }

+ 9 - 3
src/webshot.ts

@@ -1,4 +1,4 @@
-import * as http from 'http';
+import * as https from 'https';
 import * as log4js from 'log4js';
 import { PNG } from 'pngjs';
 import * as read from 'read-all-stream';
@@ -62,13 +62,19 @@ function renderWebshot(url: string, height: number, webshotDelay: number): Promi
 function fetchImage(url: string): Promise<string> {
   return new Promise<string>(resolve => {
     logger.info(`fetching ${url}`);
-    http.get(url, res => {
+    https.get(url, res => {
       if (res.statusCode === 200) {
         read(res, 'base64').then(data => {
           logger.info(`successfully fetched ${url}`);
-          return data;
+          resolve(data);
         });
+      } else {
+        logger.error(`failed to fetch ${url}: ${res.statusCode}`);
+        resolve();
       }
+    }).on('error', (err) => {
+      logger.error(`failed to fetch ${url}: ${err.message}`);
+      resolve();
     });
   });
 }

+ 1 - 0
tslint.json

@@ -24,6 +24,7 @@
     "comment-format": [true, "check-lowercase", {"ignore-words": ["TODO", "HACK", "BUG"]}],
     "no-require-imports": true,
     "no-var-requires": false,
+    "no-unused-variable": true,
     "no-bitwise": false,
     "prefer-const": true,
     "prefer-method-signature": true,