@open-wa/wa-automate 4.52.0 → 4.52.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.
- package/dist/controllers/browser.js +26 -8
- package/package.json +1 -1
@@ -51,7 +51,7 @@ const tools_1 = require("../utils/tools");
|
|
51
51
|
const script_preloader_1 = require("./script_preloader");
|
52
52
|
const patch_manager_1 = require("./patch_manager");
|
53
53
|
const init_patch_1 = require("./init_patch");
|
54
|
-
let browser, wapiInjected = false,
|
54
|
+
let browser, wapiInjected = false, pageCache = undefined, wapiAttempts = 1;
|
55
55
|
exports.BROWSER_START_TS = 0;
|
56
56
|
function initPage(sessionId, config, qrManager, customUserAgent, spinner, _page, skipAuth) {
|
57
57
|
var _a, _b, _c, _d, _e;
|
@@ -132,32 +132,50 @@ function initPage(sessionId, config, qrManager, customUserAgent, spinner, _page,
|
|
132
132
|
if (proxyAddr) {
|
133
133
|
proxy = (yield Promise.resolve().then(() => __importStar(require('smashah-puppeteer-page-proxy')))).default;
|
134
134
|
}
|
135
|
+
/**
|
136
|
+
* Detect a locally cached page
|
137
|
+
*/
|
138
|
+
if (process.env.WA_LOCAL_PAGE_CACHE) {
|
139
|
+
const localPageCacheExists = yield (0, tools_1.pathExists)(process.env.WA_LOCAL_PAGE_CACHE, true);
|
140
|
+
logging_1.log.info(`Local page cache env var set: ${process.env.WA_LOCAL_PAGE_CACHE} ${localPageCacheExists}`);
|
141
|
+
if (localPageCacheExists) {
|
142
|
+
logging_1.log.info(`Local page cache file exists. Loading...`);
|
143
|
+
pageCache = yield fs.readFile(process.env.WA_LOCAL_PAGE_CACHE, "utf8");
|
144
|
+
}
|
145
|
+
}
|
135
146
|
if (interceptAuthentication || proxyAddr || blockCrashLogs || true) {
|
136
147
|
yield waPage.setRequestInterception(true);
|
137
148
|
waPage.on('response', (response) => __awaiter(this, void 0, void 0, function* () {
|
138
149
|
try {
|
139
150
|
if (response.request().url() == "https://web.whatsapp.com/") {
|
140
151
|
const t = yield response.text();
|
141
|
-
if (t.includes(`class="no-js"`) && t.includes(`self.`) && !
|
152
|
+
if (t.includes(`class="no-js"`) && t.includes(`self.`) && !pageCache) {
|
142
153
|
//this is a valid response, save it for later
|
143
|
-
|
154
|
+
pageCache = t;
|
144
155
|
logging_1.log.info("saving valid page to dumb cache");
|
156
|
+
/**
|
157
|
+
* Save locally
|
158
|
+
*/
|
159
|
+
if (process.env.WA_LOCAL_PAGE_CACHE) {
|
160
|
+
logging_1.log.info(`Writing page cache to local file: ${process.env.WA_LOCAL_PAGE_CACHE}`);
|
161
|
+
yield fs.writeFile(process.env.WA_LOCAL_PAGE_CACHE, pageCache);
|
162
|
+
}
|
145
163
|
}
|
146
164
|
}
|
147
165
|
}
|
148
166
|
catch (error) {
|
149
|
-
logging_1.log.error("
|
167
|
+
logging_1.log.error("page cache error", error);
|
150
168
|
}
|
151
169
|
}));
|
152
170
|
const authCompleteEv = new events_1.EvEmitter(sessionId, 'AUTH');
|
153
171
|
waPage.on('request', (request) => __awaiter(this, void 0, void 0, function* () {
|
154
172
|
//local refresh cache:
|
155
|
-
if (request.url() === "https://web.whatsapp.com/" &&
|
156
|
-
//if the
|
157
|
-
logging_1.log.info("reviving page from
|
173
|
+
if (request.url() === "https://web.whatsapp.com/" && pageCache) {
|
174
|
+
//if the pageCache isn't set and this response includes
|
175
|
+
logging_1.log.info("reviving page from page cache");
|
158
176
|
return yield request.respond({
|
159
177
|
status: 200,
|
160
|
-
body:
|
178
|
+
body: pageCache
|
161
179
|
});
|
162
180
|
}
|
163
181
|
if (interceptAuthentication &&
|
package/package.json
CHANGED