vtb-appit 0.0.21 → 0.0.22
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/appit-base-transformer.js +70 -0
- package/appit.js +6 -1
- package/package.json +1 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
const https = require('https');
|
|
2
2
|
const fs = require("fs");
|
|
3
3
|
const pth = require("path");
|
|
4
|
+
const { resolve } = require('path');
|
|
4
5
|
|
|
5
6
|
class AppitBaseTransformer {
|
|
6
7
|
constructor()
|
|
7
8
|
{
|
|
8
9
|
const data = JSON.parse(fs.readFileSync(pth.join(__dirname, '../../assets/travelplan.json'), {encoding: 'utf8' }));
|
|
9
10
|
this.travelplan = JSON.parse(JSON.stringify(data));
|
|
11
|
+
|
|
12
|
+
this.token = JSON.parse(fs.readFileSync(pth.join(__dirname, '../../assets/token.json'), {encoding: 'utf8' }));
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
labels()
|
|
@@ -105,6 +108,73 @@ class AppitBaseTransformer {
|
|
|
105
108
|
return result;
|
|
106
109
|
}
|
|
107
110
|
|
|
111
|
+
async tsData()
|
|
112
|
+
{
|
|
113
|
+
return new Promise(resolve => {
|
|
114
|
+
const jwt = await this.fetchTSJWT();
|
|
115
|
+
const tokenDecodablePart = jwt.split('.')[1];
|
|
116
|
+
const decoded = JSON.parse(Buffer.from(tokenDecodablePart, 'base64').toString());
|
|
117
|
+
const endPath = '/dynamicdata/';
|
|
118
|
+
|
|
119
|
+
let req = https.request({
|
|
120
|
+
headers: {
|
|
121
|
+
'Authorization': jwt
|
|
122
|
+
},
|
|
123
|
+
hostname: decoded['https://visualtourbuilder.com/app_metadata'].baseUrl.replace('https://', '').replace(/.app\/.*/, '.app'),
|
|
124
|
+
path: decoded['https://visualtourbuilder.com/app_metadata'].baseUrl.replace(/.*?.app/, '') + endPath,
|
|
125
|
+
method: 'GET'
|
|
126
|
+
}, (r) => {
|
|
127
|
+
let data = '';
|
|
128
|
+
|
|
129
|
+
r.on('data', (d) => { data += d; });
|
|
130
|
+
|
|
131
|
+
r.on('end', () => {
|
|
132
|
+
let res = JSON.parse(data);
|
|
133
|
+
resolve(res);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
req.end();
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
fetchTSJWT()
|
|
141
|
+
{
|
|
142
|
+
return new Promise(resolve => {
|
|
143
|
+
const data = JSON.stringify({
|
|
144
|
+
query: `{
|
|
145
|
+
tsJWT {
|
|
146
|
+
jwt
|
|
147
|
+
}
|
|
148
|
+
}`,
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
const options = {
|
|
152
|
+
hostname: 'vtb-global-vtb-gateway-z7stqwbrxa-ew.a.run.app',
|
|
153
|
+
path: '/graphql',
|
|
154
|
+
port: 443,
|
|
155
|
+
method: 'POST',
|
|
156
|
+
headers: {
|
|
157
|
+
'Content-Type': 'application/json',
|
|
158
|
+
'Content-Length': data.length,
|
|
159
|
+
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2dGJDb25maWciOnsiYXV0b1JlY2FsYyI6ZmFsc2UsImNsaWVudElkIjoidHNnaXR0ZXN0IiwiY29tcGFjdEdsdWVTZWdtZW50Ijp0cnVlLCJjdXN0b21HbHVlSWRlbnRpZmllcnMiOiJbOV0iLCJkZWZhdWx0Rm9sZFNlZ21lbnRzIjpmYWxzZSwiZGVmYXVsdFNlZ21lbnQiOiJEZWZhdWx0IiwiZGVmYXVsdFN1YnRpdGxlU29ydCI6ImFzYztwcmljZWFzYyIsImRpc2FibGVBZGRFbGVtZW50IjpmYWxzZSwiZGlzYWJsZUNvY2twaXRWaWV3IjpmYWxzZSwiZGlzYWJsZURvY3VtZW50VmlldyI6ZmFsc2UsImRpc2FibGVFeHRyYUZpZWxkc092ZXJyaWRlIjpmYWxzZSwiZGlzYWJsZUdpYXRhIjpmYWxzZSwiZGlzYWJsZUl0aW5lcmFyeU5pZ2h0c0VkaXQiOnRydWUsImRpc2FibGVKc29uVmlldyI6ZmFsc2UsImRpc2FibGVNYXBWaWV3IjpmYWxzZSwiZGlzYWJsZVBhcnRpY2lwYW50TW9kaWZpY2F0aW9uIjpmYWxzZSwiZGlzYWJsZVNlZ21lbnROaWdodHNFZGl0Ijp0cnVlLCJkaXNhYmxlVGVtcGxhdGVWaWV3IjpmYWxzZSwiZGlzYWJsZVVuYWxsb2NhdGVkTmlnaHRzV2FybmluZyI6ZmFsc2UsImRpc2FibGVVbml0RWRpdCI6ZmFsc2UsImRpc2FibGVVcGRhdGVDdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6ZmFsc2UsImVuYWJsZUFpcnRyYWRlSW1wb3J0UE5SIjp0cnVlLCJlbmFibGVBbml4ZSI6dHJ1ZSwiZW5hYmxlQXV0b1NhdmUiOmZhbHNlLCJlbmFibGVEYXlUZXh0cyI6dHJ1ZSwiZW5hYmxlRGVzdHkiOnRydWUsImVuYWJsZU1vdmVNdWx0aXBsZVBhcnRpY2lwYW50c0RpYWxvZyI6ZmFsc2UsImVuYWJsZU92ZXJ3cml0ZUdlbmVyYWxJbmZvVGVtcGxhdGUiOnRydWUsImVuYWJsZVByZWZpbGxEZXBhcnRtZW50U2VhcmNoIjpmYWxzZSwiZm9vdGVyQ29udGVudCI6IiIsImdyaWRWaWV3U2V0dGluZ3MiOnsiY29sdW1uVmlzaWJpbGl0eSI6eyJDb3N0IjoiYWx3YXlzIiwiQ29zdCBFVVIiOiJhbHdheXMiLCJDb3N0IEVVUiBQYXJ0aWNpcGFudHMiOiJhZHZhbmNlZCIsIkNvc3QgRVVSIFBlciBVbml0IjoiYWR2YW5jZWQiLCJDb3N0IFBhcnRpY2lwYW50cyI6ImFkdmFuY2VkIiwiQ29zdCBQZXIgVW5pdCI6ImFkdmFuY2VkIiwiQ3VyIjoiYWx3YXlzIiwiRXhjaCBSYXRlIjoiYWx3YXlzIiwiTWFyZ2luICUiOiJhbHdheXMiLCJTYWxlcyBFVVIgUGFydGljaXBhbnRzIjoiYWx3YXlzIiwiU2FsZXMgRVVSIFBlciBVbml0IjoiYWR2YW5jZWQiLCJTYWxlc3ByaWNlIEVVUiI6ImFsd2F5cyIsIlN1YnRpdGxlIjoiYWR2YW5jZWQiLCJUZXN0IjoiYWx3YXlzIn0sImV4dHJhIjp7ImhlYWRlck5hbWUiOiJEaXQgSXMgRWVuIFRlc3QiLCJ2YXJpYWJsZU5hbWUiOiJ0ZXN0TmFtZSJ9fSwibG9ja0RlcGFydG1lbnQiOmZhbHNlLCJsb2dnaW5nIjpmYWxzZSwibG9nbyI6IiIsIm1hbnVhbENhbGNCeURlZmF1bHQiOmZhbHNlLCJuaWNlVXJsIjoicmVpc3Zvb3JzdGVsLnRyYXZlbHNwaXJpdC5ubCIsIm5pZ2h0c09ubHkiOmZhbHNlLCJvdmVyd3JpdGVHZW5lcmFsSW5mb1RlbXBsYXRlIjpmYWxzZSwicHJvZHVjdGlvbiI6dHJ1ZSwicHJvdmlkZXJOYW1lcyI6WyJFUFMiLCJIT1RFTEJFRFMiXSwicXVpY2tFeHRyYUZpZWxkRWRpdCI6eyI3Ijp7IjE0Ijp7IjQwIjp7IndpZHRoIjoiMjAwcHgifSwiNDEiOnsid2lkdGgiOiIyMDBweCJ9LCI1NiI6eyJ3aWR0aCI6IjIwMHB4In0sIjU3Ijp7IndpZHRoIjoiMjAwcHgifSwiNTgiOnsid2lkdGgiOiIyMDBweCJ9LCI2MCI6eyJ3aWR0aCI6IjIwMHB4In0sIjk4Ijp7IndpZHRoIjoiMjAwcHgifX0sImFsbCI6eyI5OCI6eyJ3aWR0aCI6IjIwMHB4In19fSwiYWxsIjp7ImFsbCI6eyI0MCI6eyJ3aWR0aCI6IjIwMHB4In0sIjc1Ijp7IndpZHRoIjoiMjAwcHgifX19fSwic21hcnRNb2RlIjp0cnVlLCJzdHJpa2luZyI6eyJPcHZhbGxlbmQiOiIycHggZGFzaGVkICMwMDAwZmYiLCJWVEIgVGVzdCI6IjJweCBkYXNoZWQgI2ZmMDAwMCJ9fSwidnRiSWQiOiI3Njg1MzQ3MDg3ODA0OTg5NDUiLCJlbnYiOiJ1c2VmdWwtY29yYWwtdmlyZ2llIiwiaWF0IjoxNjU0NjA4Nzc3LCJleHAiOjE2NTQ2NTE5NzcsImF1ZCI6IlZUQiIsImlzcyI6InVzZWZ1bC1jb3JhbC12aXJnaWUifQ.nZKDKxFdPJYWt3DWpH8T-uhOucmr4Fk96UVKgsnu8Ik',
|
|
160
|
+
'User-Agent': 'Node',
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
const req = https.request(options, (res) => {
|
|
165
|
+
let data = '';
|
|
166
|
+
|
|
167
|
+
res.on('data', (d) => {
|
|
168
|
+
data += d;
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
res.on('end', () => {
|
|
172
|
+
resolve(JSON.parse(data).data.tsJWT.jwt);
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
})
|
|
176
|
+
}
|
|
177
|
+
|
|
108
178
|
async mediaToBase64(media)
|
|
109
179
|
{
|
|
110
180
|
let promises = [];
|
package/appit.js
CHANGED
|
@@ -4,9 +4,10 @@ const https = require('https');
|
|
|
4
4
|
|
|
5
5
|
class Appit {
|
|
6
6
|
|
|
7
|
-
constructor(transformer)
|
|
7
|
+
constructor(transformer, options)
|
|
8
8
|
{
|
|
9
9
|
this.transformer = transformer;
|
|
10
|
+
this.options = options;
|
|
10
11
|
|
|
11
12
|
this.historyPath = pth.join(__dirname, '../../assets/history.json');
|
|
12
13
|
|
|
@@ -48,6 +49,10 @@ class Appit {
|
|
|
48
49
|
{
|
|
49
50
|
if(!await this.login()) return false;
|
|
50
51
|
|
|
52
|
+
if(this.options && this.options.tsData) {
|
|
53
|
+
this.transformer.tsData = this.transformer.tsData();
|
|
54
|
+
}
|
|
55
|
+
|
|
51
56
|
await this.excursion();
|
|
52
57
|
await this.labels();
|
|
53
58
|
await this.places();
|