103 lines
3.2 KiB
JavaScript
103 lines
3.2 KiB
JavaScript
const cookies = require('/Users/asciidisco/.alexis/cookies.json')
|
|
const request = require('request')
|
|
const WebSocket = require('faye-websocket')
|
|
|
|
let DEVICE_SERIAL = ''
|
|
let DEVICE_TYPE = null
|
|
let data = ''
|
|
let is_connected = false
|
|
|
|
const do_connect = (url, device_type, headers) => {
|
|
is_connected = true
|
|
let ws = new WebSocket.Client(url)
|
|
|
|
ws.on('open', function(event) {
|
|
console.log('open');
|
|
});
|
|
|
|
ws.on('message', function(event) {
|
|
console.log('message', event.data.toString())
|
|
});
|
|
|
|
ws.on('close', function(event) {
|
|
console.log('close', event.code, event.reason)
|
|
ws = null;
|
|
});
|
|
}
|
|
|
|
|
|
cookies.forEach(cookie => {
|
|
if (cookie.name === 'ubid-acbde') DEVICE_SERIAL = cookie.value
|
|
Object.keys(cookie).forEach(key => {
|
|
if (key == 'name') return
|
|
data += key == 'value' ? cookie.name + '=' + cookie.value : key + '=' + cookie[key]
|
|
data += ';'
|
|
})
|
|
})
|
|
|
|
DEVICE_SERIAL += '-' + Date.now()
|
|
|
|
let http_headers = {
|
|
'Pragma': 'no-cache',
|
|
'Accept-Encoding': 'identity',
|
|
'Accept-Language': 'de',
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0',
|
|
'Accept': 'application/json, text/javascript, */*; q=0.01',
|
|
'Cache-Control': 'no-cache',
|
|
'X-Requested-With': 'XMLHttpRequest',
|
|
'Connection': 'keep-alive',
|
|
'Referer': 'https://layla.amazon.de/spa/index.html',
|
|
'Cookie': data,
|
|
}
|
|
|
|
let ws_headers = {
|
|
'Accept-Language': 'de',
|
|
'Referer': 'https://layla.amazon.de/spa/index.html',
|
|
'Cookie': data,
|
|
'Host': 'dp-gw-na.amazon.de',
|
|
'Origin': 'https://layla.amazon.de',
|
|
'Pragma': 'no-cache',
|
|
'Accept-Encoding': 'identity',
|
|
'Upgrade': 'websocket',
|
|
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',
|
|
}
|
|
|
|
request({headers: http_headers, url: 'https://layla.amazon.de/api/cards?limit=100'}, (err, res, body) => {
|
|
const cards = JSON.parse(body)
|
|
cards.cards.forEach(card => {
|
|
const parts = card.id.split('#')
|
|
if (parts.pop() == 'BOGUS') {
|
|
DEVICE_TYPE = parts[2]
|
|
if (!is_connected) do_connect(`wss://dp-gw-na.amazon.de/?x-amz-device-type=${DEVICE_TYPE}&x-amz-device-serial=${DEVICE_SERIAL}`, DEVICE_TYPE, ws_headers)
|
|
}
|
|
})
|
|
})
|
|
|
|
/*var ws = new WebSocket.Client('wss://dp-gw-na.amazon.de/?x-amz-device-type={DEVICE_TYPE}&x-amz-device-serial={DEVICE_SERIAL}', [], {
|
|
proxy: {
|
|
origin: 'https://layla.amazon.de',
|
|
headers: {'User-Agent': 'node'}
|
|
}
|
|
})*/
|
|
|
|
/*client.on('connectFailed', function(error) {
|
|
console.log('Connect Error: ' + error.toString());
|
|
});
|
|
|
|
client.on('connect', function(connection) {
|
|
console.log('WebSocket Client Connected');
|
|
connection.on('error', function(error) {
|
|
console.log("Connection Error: " + error.toString());
|
|
});
|
|
connection.on('close', function() {
|
|
console.log('echo-protocol Connection Closed');
|
|
});
|
|
connection.on('message', function(message) {
|
|
if (message.type === 'utf8') {
|
|
console.log("Received: '" + message.utf8Data + "'");
|
|
}
|
|
});
|
|
});
|
|
|
|
client.connect('wss://dp-gw-na.amazon.de/?x-amz-device-type=ALEGCNGL9K0HM&x-amz-device-serial=260-2954207-0537040-1503305987401', null, ['https://layla.amazon.de', headers]);
|
|
setInterval(function () {}, 1000)*/ |