gologin-commonjs 2.1.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/babel.config.json +17 -0
- package/dist/README.md +163 -0
- package/dist/example.js +35 -0
- package/dist/examples/example-amazon-cloud-browser.js +52 -0
- package/dist/examples/example-amazon-headless.js +56 -0
- package/dist/examples/example-amazon.js +53 -0
- package/dist/examples/example-create-custom-profile.js +42 -0
- package/dist/examples/example-create-profile.js +43 -0
- package/dist/examples/example-custom-args.js +34 -0
- package/dist/examples/example-fast-profile-settings.js +59 -0
- package/dist/examples/example-gmail.js +82 -0
- package/dist/examples/example-iphey.js +19 -0
- package/dist/examples/example-local-profile.js +28 -0
- package/dist/examples/example-login-walmart.js +38 -0
- package/dist/examples/example-startremote.js +29 -0
- package/dist/examples/example-stopremote.js +22 -0
- package/dist/examples/example-timezone.js +51 -0
- package/dist/fonts.js +3339 -0
- package/dist/fonts_config +104 -0
- package/dist/gologin-browser-ext.zip +0 -0
- package/dist/gologin_zeroprofile.b64 +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/profile_export_example.csv +2 -0
- package/dist/run.sh +1 -0
- package/dist/src/bookmarks/utils.js +23 -0
- package/dist/src/browser/browser-api.js +106 -0
- package/dist/src/browser/browser-checker.js +336 -0
- package/dist/src/browser/browser-user-data-manager.js +306 -0
- package/dist/src/cookies/cookies-manager.js +164 -0
- package/dist/src/extensions/extensions-extractor.js +50 -0
- package/dist/src/extensions/extensions-manager.js +301 -0
- package/dist/src/extensions/user-extensions-manager.js +246 -0
- package/dist/src/gologin-api.js +103 -0
- package/dist/src/gologin.js +1319 -0
- package/dist/src/profile/profile-archiver.js +68 -0
- package/dist/src/profile/profile-directories-to-remove.js +71 -0
- package/dist/src/utils/browser.js +59 -0
- package/dist/src/utils/common.js +60 -0
- package/dist/src/utils/constants.js +7 -0
- package/dist/src/utils/utils.js +53 -0
- package/dist/test.html +1 -0
- package/dist/zero_profile.zip +0 -0
- package/gologin/.eslintrc.json +290 -0
- package/gologin/.sentry-native/a65389b2-9a7d-41ed-7de5-95c4570f0d3d.run.lock +0 -0
- package/gologin/README.md +163 -0
- package/gologin/example.js +36 -0
- package/gologin/examples/example-amazon-cloud-browser.js +44 -0
- package/gologin/examples/example-amazon-headless.js +50 -0
- package/gologin/examples/example-amazon.js +47 -0
- package/gologin/examples/example-create-custom-profile.js +39 -0
- package/gologin/examples/example-create-profile.js +40 -0
- package/gologin/examples/example-custom-args.js +34 -0
- package/gologin/examples/example-fast-profile-settings.js +69 -0
- package/gologin/examples/example-gmail.js +67 -0
- package/gologin/examples/example-iphey.js +17 -0
- package/gologin/examples/example-local-profile.js +26 -0
- package/gologin/examples/example-login-walmart.js +35 -0
- package/gologin/examples/example-startremote.js +25 -0
- package/gologin/examples/example-stopremote.js +20 -0
- package/gologin/examples/example-timezone.js +44 -0
- package/gologin/fonts.js +3339 -0
- package/gologin/fonts_config +104 -0
- package/gologin/gologin-browser-ext.zip +0 -0
- package/gologin/gologin_zeroprofile.b64 +1 -0
- package/gologin/index.d.ts +61 -0
- package/gologin/package.json +49 -0
- package/gologin/profile_export_example.csv +2 -0
- package/gologin/run.sh +1 -0
- package/gologin/src/bookmarks/utils.js +16 -0
- package/gologin/src/browser/browser-api.js +95 -0
- package/gologin/src/browser/browser-checker.js +392 -0
- package/gologin/src/browser/browser-user-data-manager.js +335 -0
- package/gologin/src/cookies/cookies-manager.js +189 -0
- package/gologin/src/extensions/extensions-extractor.js +56 -0
- package/gologin/src/extensions/extensions-manager.js +384 -0
- package/gologin/src/extensions/user-extensions-manager.js +295 -0
- package/gologin/src/gologin-api.js +110 -0
- package/gologin/src/gologin.js +1553 -0
- package/gologin/src/profile/profile-archiver.js +86 -0
- package/gologin/src/profile/profile-directories-to-remove.js +75 -0
- package/gologin/src/utils/browser.js +62 -0
- package/gologin/src/utils/common.js +76 -0
- package/gologin/src/utils/constants.js +1 -0
- package/gologin/src/utils/utils.js +49 -0
- package/gologin/test.html +1 -0
- package/gologin/zero_profile.zip +0 -0
- package/package.json +46 -0
- package/tes.js +35 -0
package/dist/README.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# class GoLogin - class for working with <a href="https://gologin.com" target="_blank">gologin.com</a> API
|
|
2
|
+
# Official Package
|
|
3
|
+
|
|
4
|
+
## Getting Started
|
|
5
|
+
|
|
6
|
+
GoLogin supports Linux, MacOS and Windows platforms.
|
|
7
|
+
|
|
8
|
+
### Installation
|
|
9
|
+
|
|
10
|
+
`npm i gologin`
|
|
11
|
+
|
|
12
|
+
for running example.js install puppeteer-core
|
|
13
|
+
|
|
14
|
+
`npm i puppeteer-core`
|
|
15
|
+
|
|
16
|
+
### Usage
|
|
17
|
+
|
|
18
|
+
Where is token? API token is <a href="https://app.gologin.com/#/personalArea/TokenApi" target="_blank">here</a>.
|
|
19
|
+
To have an access to the page below you need <a href="https://app.gologin.com/#/createUser" target="_blank">register</a> GoLogin account.
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
### Example
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
import puppeteer from 'puppeteer-core';
|
|
27
|
+
|
|
28
|
+
import GoLogin from '../src/gologin.js';
|
|
29
|
+
|
|
30
|
+
const { connect } = puppeteer;
|
|
31
|
+
|
|
32
|
+
(async () => {
|
|
33
|
+
const GL = new GoLogin({
|
|
34
|
+
token: 'yU0token',
|
|
35
|
+
profile_id: 'yU0Pr0f1leiD',
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const { status, wsUrl } = await GL.start().catch((e) => {
|
|
39
|
+
console.trace(e);
|
|
40
|
+
|
|
41
|
+
return { status: 'failure' };
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
if (status !== 'success') {
|
|
45
|
+
console.log('Invalid status');
|
|
46
|
+
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const browser = await connect({
|
|
51
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
52
|
+
ignoreHTTPSErrors: true,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const page = await browser.newPage();
|
|
56
|
+
await page.goto('https://myip.link/mini');
|
|
57
|
+
console.log(await page.content());
|
|
58
|
+
await browser.close();
|
|
59
|
+
await GL.stop();
|
|
60
|
+
})();
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Running example:
|
|
64
|
+
|
|
65
|
+
`DEBUG=gologin* node example.js`
|
|
66
|
+
|
|
67
|
+
###
|
|
68
|
+
### Methods
|
|
69
|
+
#### constructor
|
|
70
|
+
|
|
71
|
+
- `options` <[Object]> Options for profile
|
|
72
|
+
- `autoUpdateBrowser` <[boolean]> do not ask whether download new browser version (default false)
|
|
73
|
+
- `token` <[string]> your API <a href="https://gologin.com/#/personalArea/TokenApi" target="_blank">token</a>
|
|
74
|
+
- `profile_id` <[string]> profile ID
|
|
75
|
+
- `executablePath` <[string]> path to executable Orbita file. Orbita will be downloaded automatically if not specified.
|
|
76
|
+
- `remote_debugging_port` <[int]> port for remote debugging
|
|
77
|
+
- `vncPort` <[integer]> port of VNC server if you using it
|
|
78
|
+
- `tmpdir` <[string]> path to temporary directore for saving profiles
|
|
79
|
+
- `extra_params` arrayof <[string]> extra params for browser orbita (ex. extentions etc.)
|
|
80
|
+
- `uploadCookiesToServer` <[boolean]> upload cookies to server after profile stopping (default false)
|
|
81
|
+
- `writeCookesFromServer` <[boolean]> download cookies from server and write to profile cookies file (default true)
|
|
82
|
+
- `skipOrbitaHashChecking` <[boolean]> skip hash checking for Orbita after downloading process (default false)
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
import GoLogin from '../src/gologin.js';
|
|
86
|
+
const GL = new GoLogin({
|
|
87
|
+
token: 'yU0token',
|
|
88
|
+
profile_id: 'yU0Pr0f1leiD',
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### start()
|
|
93
|
+
|
|
94
|
+
- returns: <[object]> { status, wsUrl }
|
|
95
|
+
|
|
96
|
+
start browser with profile id, returning WebSocket url for puppeteer
|
|
97
|
+
|
|
98
|
+
#### stop()
|
|
99
|
+
|
|
100
|
+
stop browser with profile id
|
|
101
|
+
|
|
102
|
+
### DEBUG
|
|
103
|
+
|
|
104
|
+
For debugging use `DEBUG=* node example.js` command
|
|
105
|
+
|
|
106
|
+
### Selenium
|
|
107
|
+
|
|
108
|
+
To use GoLogin with Selenium see `selenium/example.js`
|
|
109
|
+
|
|
110
|
+
## Full GoLogin API
|
|
111
|
+
**Swagger:** <a href="https://api.gologin.com/docs" target="_blank">link here</a>
|
|
112
|
+
|
|
113
|
+
**Postman:** <a href="https://documenter.getpostman.com/view/21126834/Uz5GnvaL" target="_blank">link here</a>
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## For local profiles
|
|
117
|
+
|
|
118
|
+
#### startLocal()
|
|
119
|
+
|
|
120
|
+
- returns: string
|
|
121
|
+
|
|
122
|
+
start browser with profile id, return WebSocket url for puppeteer. Extracted profile folder should be in specified temp directory.
|
|
123
|
+
|
|
124
|
+
#### stopLocal()
|
|
125
|
+
|
|
126
|
+
stop current browser without removing archived profile
|
|
127
|
+
|
|
128
|
+
### example-local-profile.js
|
|
129
|
+
|
|
130
|
+
```js
|
|
131
|
+
import puppeteer from 'puppeteer-core';
|
|
132
|
+
|
|
133
|
+
import GoLogin from '../src/gologin.js';
|
|
134
|
+
|
|
135
|
+
const { connect } = puppeteer;
|
|
136
|
+
|
|
137
|
+
(async () => {
|
|
138
|
+
const GL = new GoLogin({
|
|
139
|
+
token: 'yU0token',
|
|
140
|
+
profile_id: 'yU0Pr0f1leiD',
|
|
141
|
+
executablePath: '/usr/bin/orbita-browser/chrome',
|
|
142
|
+
tmpdir: '/my/tmp/dir',
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const wsUrl = await GL.startLocal();
|
|
146
|
+
const browser = await connect({
|
|
147
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
148
|
+
ignoreHTTPSErrors: true,
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
const page = await browser.newPage();
|
|
152
|
+
await page.goto('https://myip.link');
|
|
153
|
+
console.log(await page.content());
|
|
154
|
+
await browser.close();
|
|
155
|
+
await GL.stopLocal({ posting: false });
|
|
156
|
+
})();
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Python support
|
|
160
|
+
|
|
161
|
+
<a href="https://github.com/pyppeteer/pyppeteer" target="_blank">pyppeteer</a> (recommend) and <a href="https://www.selenium.dev" target="_blank">Selenium</a> supported (see file gologin.py)
|
|
162
|
+
|
|
163
|
+
for Selenium may need download <a href="https://chromedriver.chromium.org/downloads" target="_blank">webdriver</a>
|
package/dist/example.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
4
|
+
var _gologin = _interopRequireDefault(require("./src/gologin.js"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
const token = 'yU0token';
|
|
7
|
+
const profile_id = 'yU0Pr0f1leiD';
|
|
8
|
+
(async () => {
|
|
9
|
+
const GL = new _gologin.default({
|
|
10
|
+
token,
|
|
11
|
+
profile_id
|
|
12
|
+
});
|
|
13
|
+
const {
|
|
14
|
+
status,
|
|
15
|
+
wsUrl
|
|
16
|
+
} = await GL.start().catch(e => {
|
|
17
|
+
console.trace(e);
|
|
18
|
+
return {
|
|
19
|
+
status: 'failure'
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
if (status !== 'success') {
|
|
23
|
+
console.log('Invalid status');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const browser = await _puppeteerCore.default.connect({
|
|
27
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
28
|
+
ignoreHTTPSErrors: true
|
|
29
|
+
});
|
|
30
|
+
const page = await browser.newPage();
|
|
31
|
+
await page.goto('https://myip.link/mini');
|
|
32
|
+
console.log(await page.content());
|
|
33
|
+
await browser.close();
|
|
34
|
+
await GL.stop();
|
|
35
|
+
})();
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _gologin = _interopRequireDefault(require("gologin"));
|
|
4
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
// Usage example: in the terminal enter
|
|
7
|
+
// node example-amazon-cloud-browser.js yU0token yU0Pr0f1leiD
|
|
8
|
+
|
|
9
|
+
// your token api (located in the settings, api)
|
|
10
|
+
// https://github.com/gologinapp/gologin#usage
|
|
11
|
+
|
|
12
|
+
const [_execPath, _filePath, GOLOGIN_API_TOKEN, GOLOGIN_PROFILE_ID] = process.argv;
|
|
13
|
+
(async () => {
|
|
14
|
+
const GL = new _gologin.default({
|
|
15
|
+
token: GOLOGIN_API_TOKEN,
|
|
16
|
+
profile_id: GOLOGIN_PROFILE_ID
|
|
17
|
+
});
|
|
18
|
+
const {
|
|
19
|
+
_status,
|
|
20
|
+
wsUrl
|
|
21
|
+
} = await GL.startRemote();
|
|
22
|
+
const browser = await _puppeteerCore.default.connect({
|
|
23
|
+
browserWSEndpoint: wsUrl,
|
|
24
|
+
ignoreHTTPSErrors: true
|
|
25
|
+
});
|
|
26
|
+
const page = await browser.newPage();
|
|
27
|
+
const viewPort = GL.getViewPort();
|
|
28
|
+
await page.setViewport({
|
|
29
|
+
width: Math.round(viewPort.width * 0.994),
|
|
30
|
+
height: Math.round(viewPort.height * 0.92)
|
|
31
|
+
});
|
|
32
|
+
const session = await page.target().createCDPSession();
|
|
33
|
+
const {
|
|
34
|
+
windowId
|
|
35
|
+
} = await session.send('Browser.getWindowForTarget');
|
|
36
|
+
await session.send('Browser.setWindowBounds', {
|
|
37
|
+
windowId,
|
|
38
|
+
bounds: viewPort
|
|
39
|
+
});
|
|
40
|
+
await session.detach();
|
|
41
|
+
await page.goto('https://www.amazon.com/-/dp/B0771V1JZX');
|
|
42
|
+
const content = await page.content();
|
|
43
|
+
const matchData = content.match(/'initial': (.*)}/);
|
|
44
|
+
if (matchData === null || matchData.length === 0) {
|
|
45
|
+
console.log('no images found');
|
|
46
|
+
} else {
|
|
47
|
+
const data = JSON.parse(matchData[1]);
|
|
48
|
+
const images = data.map(e => e.hiRes);
|
|
49
|
+
console.log('images=', images);
|
|
50
|
+
}
|
|
51
|
+
await GL.stopRemote();
|
|
52
|
+
})();
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _gologin = _interopRequireDefault(require("gologin"));
|
|
4
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
// Usage example: in the terminal enter
|
|
7
|
+
// node example-amazon-headless.js yU0token yU0Pr0f1leiD
|
|
8
|
+
|
|
9
|
+
// your token api (located in the settings, api)
|
|
10
|
+
// https://github.com/gologinapp/gologin#usage
|
|
11
|
+
|
|
12
|
+
const [_execPath, _filePath, GOLOGIN_API_TOKEN, GOLOGIN_PROFILE_ID] = process.argv;
|
|
13
|
+
const delay = time => new Promise(resolve => setTimeout(resolve, time));
|
|
14
|
+
(async () => {
|
|
15
|
+
const GL = new _gologin.default({
|
|
16
|
+
token: GOLOGIN_API_TOKEN,
|
|
17
|
+
profile_id: GOLOGIN_PROFILE_ID,
|
|
18
|
+
extra_params: ['--headless', '--no-sandbox']
|
|
19
|
+
});
|
|
20
|
+
const {
|
|
21
|
+
_status,
|
|
22
|
+
wsUrl
|
|
23
|
+
} = await GL.start();
|
|
24
|
+
const browser = await _puppeteerCore.default.connect({
|
|
25
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
26
|
+
ignoreHTTPSErrors: true
|
|
27
|
+
});
|
|
28
|
+
const page = await browser.newPage();
|
|
29
|
+
await delay(300);
|
|
30
|
+
const viewPort = GL.getViewPort();
|
|
31
|
+
await page.setViewport({
|
|
32
|
+
width: Math.round(viewPort.width * 0.994),
|
|
33
|
+
height: Math.round(viewPort.height * 0.92)
|
|
34
|
+
});
|
|
35
|
+
const session = await page.target().createCDPSession();
|
|
36
|
+
const {
|
|
37
|
+
windowId
|
|
38
|
+
} = await session.send('Browser.getWindowForTarget');
|
|
39
|
+
await session.send('Browser.setWindowBounds', {
|
|
40
|
+
windowId,
|
|
41
|
+
bounds: viewPort
|
|
42
|
+
});
|
|
43
|
+
await session.detach();
|
|
44
|
+
await page.goto('https://www.amazon.com/-/dp/B0771V1JZX');
|
|
45
|
+
const content = await page.content();
|
|
46
|
+
const matchData = content.match(/'initial': (.*)}/);
|
|
47
|
+
if (matchData === null || matchData.length === 0) {
|
|
48
|
+
console.log('no images found');
|
|
49
|
+
} else {
|
|
50
|
+
const data = JSON.parse(matchData[1]);
|
|
51
|
+
const images = data.map(e => e.hiRes);
|
|
52
|
+
console.log('images=', images);
|
|
53
|
+
}
|
|
54
|
+
await browser.close();
|
|
55
|
+
await GL.stop();
|
|
56
|
+
})();
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _gologin = _interopRequireDefault(require("gologin"));
|
|
4
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
// Usage example: in the terminal enter
|
|
7
|
+
// node example-amazon.js yU0token yU0Pr0f1leiD
|
|
8
|
+
|
|
9
|
+
// your token api (located in the settings, api)
|
|
10
|
+
// https://github.com/gologinapp/gologin#usage
|
|
11
|
+
|
|
12
|
+
const [_execPath, _filePath, GOLOGIN_API_TOKEN, GOLOGIN_PROFILE_ID] = process.argv;
|
|
13
|
+
(async () => {
|
|
14
|
+
const GL = new _gologin.default({
|
|
15
|
+
token: GOLOGIN_API_TOKEN,
|
|
16
|
+
profile_id: GOLOGIN_PROFILE_ID
|
|
17
|
+
});
|
|
18
|
+
const {
|
|
19
|
+
_status,
|
|
20
|
+
wsUrl
|
|
21
|
+
} = await GL.start();
|
|
22
|
+
const browser = await _puppeteerCore.default.connect({
|
|
23
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
24
|
+
ignoreHTTPSErrors: true
|
|
25
|
+
});
|
|
26
|
+
const page = await browser.newPage();
|
|
27
|
+
const viewPort = GL.getViewPort();
|
|
28
|
+
await page.setViewport({
|
|
29
|
+
width: Math.round(viewPort.width * 0.994),
|
|
30
|
+
height: Math.round(viewPort.height * 0.92)
|
|
31
|
+
});
|
|
32
|
+
const session = await page.target().createCDPSession();
|
|
33
|
+
const {
|
|
34
|
+
windowId
|
|
35
|
+
} = await session.send('Browser.getWindowForTarget');
|
|
36
|
+
await session.send('Browser.setWindowBounds', {
|
|
37
|
+
windowId,
|
|
38
|
+
bounds: viewPort
|
|
39
|
+
});
|
|
40
|
+
await session.detach();
|
|
41
|
+
await page.goto('https://www.amazon.com/-/dp/B0771V1JZX');
|
|
42
|
+
const content = await page.content();
|
|
43
|
+
const matchData = content.match(/'initial': (.*)}/);
|
|
44
|
+
if (matchData == null || matchData.length == 0) {
|
|
45
|
+
console.log('no images found');
|
|
46
|
+
} else {
|
|
47
|
+
const data = JSON.parse(matchData[1]);
|
|
48
|
+
const images = data.map(e => e.hiRes);
|
|
49
|
+
console.log('images=', images);
|
|
50
|
+
}
|
|
51
|
+
await browser.close();
|
|
52
|
+
await GL.stop();
|
|
53
|
+
})();
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _gologin = _interopRequireDefault(require("gologin"));
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
// Usage example: in the terminal enter
|
|
6
|
+
// node example-create-custom-profile.js yU0token
|
|
7
|
+
|
|
8
|
+
// your token api (located in the settings, api)
|
|
9
|
+
// https://github.com/gologinapp/gologin#usage
|
|
10
|
+
|
|
11
|
+
const [_execPath, _filePath, GOLOGIN_API_TOKEN] = process.argv;
|
|
12
|
+
(async () => {
|
|
13
|
+
const GL = new _gologin.default({
|
|
14
|
+
token: GOLOGIN_API_TOKEN
|
|
15
|
+
});
|
|
16
|
+
const profileId = await GL.createCustom({
|
|
17
|
+
os: 'win',
|
|
18
|
+
// required param ('lin', 'mac', 'win', 'android'), for macM1 write (os: 'mac') and add property 'isM1'
|
|
19
|
+
// isM1: true,
|
|
20
|
+
name: 'testName',
|
|
21
|
+
fingerprint: {
|
|
22
|
+
autoLang: true,
|
|
23
|
+
resolution: '800x400',
|
|
24
|
+
language: 'de',
|
|
25
|
+
dns: 'testDNS',
|
|
26
|
+
hardwareConcurrency: 8,
|
|
27
|
+
deviceMemory: 4,
|
|
28
|
+
// 0.5, 1, 2, 4, 6, 8
|
|
29
|
+
startUrl: 'https://testurl.com',
|
|
30
|
+
googleServicesEnabled: true,
|
|
31
|
+
lockEnabled: true
|
|
32
|
+
// proxy: { // uncomment and check input if you need to use proxy
|
|
33
|
+
// mode: 'http', // 'socks4', 'socks5'
|
|
34
|
+
// host: '123.12.123.12',
|
|
35
|
+
// port: 1234,
|
|
36
|
+
// username: 'user',
|
|
37
|
+
// password: 'password',
|
|
38
|
+
// },
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
console.log('profile id=', profileId);
|
|
42
|
+
})();
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _gologin = _interopRequireDefault(require("gologin"));
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
// Usage example: in the terminal enter
|
|
6
|
+
// node example-create-profile.js yU0token
|
|
7
|
+
|
|
8
|
+
// your token api (located in the settings, api)
|
|
9
|
+
// https://github.com/gologinapp/gologin#usage
|
|
10
|
+
|
|
11
|
+
const [_execPath, _filePath, GOLOGIN_API_TOKEN] = process.argv;
|
|
12
|
+
(async () => {
|
|
13
|
+
const GL = new _gologin.default({
|
|
14
|
+
token: GOLOGIN_API_TOKEN
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// the following parameters are required for profile creation
|
|
18
|
+
const profile_id = await GL.create({
|
|
19
|
+
name: 'profile_mac',
|
|
20
|
+
os: 'mac',
|
|
21
|
+
// 'win', 'lin', 'android'
|
|
22
|
+
// isM1: true, // for Mac M1
|
|
23
|
+
navigator: {
|
|
24
|
+
language: 'en-US,en;q=0.9',
|
|
25
|
+
userAgent: 'random',
|
|
26
|
+
// get random user agent for selected os
|
|
27
|
+
resolution: '1024x768'
|
|
28
|
+
},
|
|
29
|
+
proxyEnabled: false,
|
|
30
|
+
proxy: {
|
|
31
|
+
mode: 'none'
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
console.log('profile id=', profile_id);
|
|
35
|
+
await GL.update({
|
|
36
|
+
id: profile_id,
|
|
37
|
+
name: 'profile_mac2'
|
|
38
|
+
});
|
|
39
|
+
const profile = await GL.getProfile(profile_id);
|
|
40
|
+
console.log('new profile name=', profile.name);
|
|
41
|
+
|
|
42
|
+
// await GL.delete(profile_id);
|
|
43
|
+
})();
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
4
|
+
var _gologin = _interopRequireDefault(require("../src/gologin.js"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
(async () => {
|
|
7
|
+
const GL = new _gologin.default({
|
|
8
|
+
profile_id: 'yU0Pr0f1leiD',
|
|
9
|
+
token: 'yU0token',
|
|
10
|
+
args: ['--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows', '--disable-renderer-backgrounding']
|
|
11
|
+
});
|
|
12
|
+
const {
|
|
13
|
+
status,
|
|
14
|
+
wsUrl
|
|
15
|
+
} = await GL.start().catch(e => {
|
|
16
|
+
console.trace(e);
|
|
17
|
+
return {
|
|
18
|
+
status: 'failure'
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
if (status !== 'success') {
|
|
22
|
+
console.log('Invalid status');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const browser = await _puppeteerCore.default.connect({
|
|
26
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
27
|
+
ignoreHTTPSErrors: true
|
|
28
|
+
});
|
|
29
|
+
const page = await browser.newPage();
|
|
30
|
+
await page.goto('https://myip.link/mini');
|
|
31
|
+
console.log(await page.content());
|
|
32
|
+
await browser.close();
|
|
33
|
+
await GL.stop();
|
|
34
|
+
})();
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
4
|
+
var _browserApi = require("../src/browser/browser-api.js");
|
|
5
|
+
var _gologin = _interopRequireDefault(require("../src/gologin.js"));
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
const token = 'yU0token';
|
|
8
|
+
const profile_id = 'yU0Pr0f1leiD';
|
|
9
|
+
(async () => {
|
|
10
|
+
const GL = new _gologin.default({
|
|
11
|
+
token,
|
|
12
|
+
profile_id
|
|
13
|
+
});
|
|
14
|
+
const {
|
|
15
|
+
status,
|
|
16
|
+
wsUrl
|
|
17
|
+
} = await GL.start().catch(e => {
|
|
18
|
+
console.trace(e);
|
|
19
|
+
return {
|
|
20
|
+
status: 'failure'
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
if (status !== 'success') {
|
|
24
|
+
console.log('Invalid status');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const browser = await _puppeteerCore.default.connect({
|
|
28
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
29
|
+
ignoreHTTPSErrors: true
|
|
30
|
+
});
|
|
31
|
+
const page = await browser.newPage();
|
|
32
|
+
await page.goto('https://myip.link/mini');
|
|
33
|
+
console.log(await page.content());
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @see updateProfileProxy
|
|
37
|
+
*/
|
|
38
|
+
const proxyData = {
|
|
39
|
+
mode: 'none'
|
|
40
|
+
};
|
|
41
|
+
await GL.changeProfileProxy(proxyData);
|
|
42
|
+
await GL.changeProfileResolution('1920x1080');
|
|
43
|
+
const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.71 Safari/537.36';
|
|
44
|
+
await GL.changeProfileUserAgent(userAgent);
|
|
45
|
+
await browser.close();
|
|
46
|
+
await GL.stop();
|
|
47
|
+
})();
|
|
48
|
+
(async () => {
|
|
49
|
+
/**
|
|
50
|
+
* @see updateProfileProxy
|
|
51
|
+
*/
|
|
52
|
+
const proxyData = {
|
|
53
|
+
mode: 'none'
|
|
54
|
+
};
|
|
55
|
+
await (0, _browserApi.updateProfileProxy)(profile_id, token, proxyData);
|
|
56
|
+
await (0, _browserApi.updateProfileResolution)(profile_id, token, '1920x1080');
|
|
57
|
+
const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.71 Safari/537.36';
|
|
58
|
+
await (0, _browserApi.updateProfileUserAgent)(profile_id, token, userAgent);
|
|
59
|
+
})();
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
4
|
+
var _gologin = _interopRequireDefault(require("../src/gologin.js"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
const {
|
|
7
|
+
connect
|
|
8
|
+
} = _puppeteerCore.default;
|
|
9
|
+
const delay = ms => new Promise(res => setTimeout(res, ms));
|
|
10
|
+
(async () => {
|
|
11
|
+
const GL = new _gologin.default({
|
|
12
|
+
token: 'yU0token'
|
|
13
|
+
});
|
|
14
|
+
const profile_id = await GL.create({
|
|
15
|
+
name: 'profile_gmail',
|
|
16
|
+
os: 'lin',
|
|
17
|
+
navigator: {
|
|
18
|
+
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36',
|
|
19
|
+
resolution: '1280x720',
|
|
20
|
+
language: 'en-GB,en-US;q=0.9,en;q=0.8',
|
|
21
|
+
platform: 'Linux x86_64',
|
|
22
|
+
hardwareConcurrency: 8,
|
|
23
|
+
deviceMemory: 8,
|
|
24
|
+
maxTouchPoints: 5
|
|
25
|
+
},
|
|
26
|
+
proxy: {
|
|
27
|
+
mode: 'http',
|
|
28
|
+
host: 'proxy_host',
|
|
29
|
+
port: 'proxy_port',
|
|
30
|
+
username: 'proxy_username',
|
|
31
|
+
password: 'proxy_password'
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
console.log('profile id=', profile_id);
|
|
35
|
+
GL.setProfileId(profile_id);
|
|
36
|
+
const {
|
|
37
|
+
status,
|
|
38
|
+
wsUrl
|
|
39
|
+
} = await GL.start();
|
|
40
|
+
const browser = await connect({
|
|
41
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
42
|
+
ignoreHTTPSErrors: true
|
|
43
|
+
});
|
|
44
|
+
const page = await browser.newPage();
|
|
45
|
+
const viewPort = GL.getViewPort();
|
|
46
|
+
await page.setViewport({
|
|
47
|
+
width: Math.round(viewPort.width * 0.994),
|
|
48
|
+
height: Math.round(viewPort.height * 0.92)
|
|
49
|
+
});
|
|
50
|
+
const session = await page.target().createCDPSession();
|
|
51
|
+
const {
|
|
52
|
+
windowId
|
|
53
|
+
} = await session.send('Browser.getWindowForTarget');
|
|
54
|
+
await session.send('Browser.setWindowBounds', {
|
|
55
|
+
windowId,
|
|
56
|
+
bounds: viewPort
|
|
57
|
+
});
|
|
58
|
+
await session.detach();
|
|
59
|
+
await page.goto('https://gmail.com');
|
|
60
|
+
await delay(1000);
|
|
61
|
+
await page.goto('https://accounts.google.com/signup/v2?service=mail&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&flowName=GlifWebSignIn&flowEntry=SignUp');
|
|
62
|
+
await delay(3000);
|
|
63
|
+
await page.type('#firstName', 'first_name', {
|
|
64
|
+
delay: 100
|
|
65
|
+
});
|
|
66
|
+
await page.type('#lastName', 'last_name', {
|
|
67
|
+
delay: 100
|
|
68
|
+
});
|
|
69
|
+
await page.type('#username', 'username', {
|
|
70
|
+
delay: 100
|
|
71
|
+
});
|
|
72
|
+
await page.type('[name=Passwd]', 'pa$$w0rd', {
|
|
73
|
+
delay: 100
|
|
74
|
+
});
|
|
75
|
+
await page.type('[name=ConfirmPasswd]', 'pa$$w0rd', {
|
|
76
|
+
delay: 100
|
|
77
|
+
});
|
|
78
|
+
await page.click('#accountDetailsNext > div > button');
|
|
79
|
+
await delay(60000);
|
|
80
|
+
await browser.close();
|
|
81
|
+
await GL.stop();
|
|
82
|
+
})();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _gologinApi = require("../src/gologin-api.js");
|
|
4
|
+
const token = process.env.GOLOGIN_API_TOKEN; // get token https://app.gologin.com/personalArea/TokenApi
|
|
5
|
+
const gologin = (0, _gologinApi.GologinApi)({
|
|
6
|
+
token
|
|
7
|
+
});
|
|
8
|
+
async function main() {
|
|
9
|
+
const {
|
|
10
|
+
browser
|
|
11
|
+
} = await gologin.launch();
|
|
12
|
+
const page = await browser.newPage();
|
|
13
|
+
await page.goto('https://iphey.com/', {
|
|
14
|
+
waitUntil: 'networkidle2'
|
|
15
|
+
});
|
|
16
|
+
const status = await page.$eval('.trustworthy-status:not(.hide)', elt => elt?.innerText?.trim());
|
|
17
|
+
return status; // Expecting 'Trustworthy'
|
|
18
|
+
}
|
|
19
|
+
main().catch(console.error).then(console.info).finally(_gologinApi.exitAll);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _puppeteerCore = _interopRequireDefault(require("puppeteer-core"));
|
|
4
|
+
var _gologin = _interopRequireDefault(require("../src/gologin.js"));
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
const {
|
|
7
|
+
connect
|
|
8
|
+
} = _puppeteerCore.default;
|
|
9
|
+
(async () => {
|
|
10
|
+
const GL = new _gologin.default({
|
|
11
|
+
token: 'yU0token',
|
|
12
|
+
profile_id: 'yU0Pr0f1leiD',
|
|
13
|
+
executablePath: '/usr/bin/orbita-browser/chrome',
|
|
14
|
+
tmpdir: '/my/tmp/dir'
|
|
15
|
+
});
|
|
16
|
+
const wsUrl = await GL.startLocal();
|
|
17
|
+
const browser = await connect({
|
|
18
|
+
browserWSEndpoint: wsUrl.toString(),
|
|
19
|
+
ignoreHTTPSErrors: true
|
|
20
|
+
});
|
|
21
|
+
const page = await browser.newPage();
|
|
22
|
+
await page.goto('https://myip.link');
|
|
23
|
+
console.log(await page.content());
|
|
24
|
+
await browser.close();
|
|
25
|
+
await GL.stopLocal({
|
|
26
|
+
posting: false
|
|
27
|
+
});
|
|
28
|
+
})();
|