diff --git a/puppet/example-config.json b/puppet/example-config.json index 341e7ee..85b1a28 100644 --- a/puppet/example-config.json +++ b/puppet/example-config.json @@ -4,6 +4,5 @@ "path": "/var/run/mautrix-amp/puppet.sock" }, "profile_dir": "./profiles", - "disable_debug": true, - "url": "https://messages.google.com/web/" + "url": "chrome-extension:///index.html" } diff --git a/puppet/src/main.js b/puppet/src/main.js index 71a8dac..88cee9f 100644 --- a/puppet/src/main.js +++ b/puppet/src/main.js @@ -1,5 +1,5 @@ -// mautrix-amp - A very hacky Matrix-SMS bridge based on using Android Messages for Web in Puppeteer -// Copyright (C) 2020 Tulir Asokan +// mautrix-amp - A very hacky Matrix-LINE bridge based on using LINE's Chrome Store Extension in Puppeteer +// Copyright (C) 2020 Tulir Asokan, Andrew Ferrazzutti // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by @@ -37,7 +37,7 @@ console.log("[Main] Reading config from", configPath) const config = JSON.parse(fs.readFileSync(configPath).toString()) MessagesPuppeteer.profileDir = config.profile_dir || MessagesPuppeteer.profileDir MessagesPuppeteer.disableDebug = !!config.disable_debug -MessagesPuppeteer.url = config.url || MessagesPuppeteer.url +MessagesPuppeteer.url = config.url const api = new PuppetAPI(config.listen) diff --git a/puppet/src/puppet.js b/puppet/src/puppet.js index 038b7ee..37428ed 100644 --- a/puppet/src/puppet.js +++ b/puppet/src/puppet.js @@ -28,7 +28,7 @@ export default class MessagesPuppeteer { static disableDebug = false static noSandbox = false static viewport = { width: 1920, height: 1080 } - static url = "https://messages.google.com/web/" + static url = undefined /** * @@ -63,11 +63,18 @@ export default class MessagesPuppeteer { */ async start(debug = false) { this.log("Launching browser") + + const pathToExtension = require('path').join(__dirname, 'extension_files'); + const extensionArgs = [ + `--disable-extensions-except=${pathToExtension}`, + `--load-extension=${pathToExtension}` + ]; + this.browser = await puppeteer.launch({ executablePath: MessagesPuppeteer.executablePath, userDataDir: this.profilePath, - args: MessagesPuppeteer.noSandbox ? ["--no-sandbox"] : undefined, - headless: MessagesPuppeteer.disableDebug || !debug, + args: MessagesPuppeteer.noSandbox ? extensionArgs.concat("--no-sandbox") : extensionArgs, + headless: false, // Needed to load extensions defaultViewport: MessagesPuppeteer.viewport, }) this.log("Opening new tab")