AutoCatBackend/data_providers/nomerogram.js
2020-12-23 23:55:46 +03:00

48 lines
1.3 KiB
JavaScript

const crypto = require('crypto');
const fetch = require('node-fetch');
const Utils = require('../utils');
const utf8 = require('utf8');
const baseUrl = 'https://www.nomerogram.ru/api/v1.1';
const secretSuffix = 'queivoo1ieNgae2e';
const appId = 'p15';
const deviceId = '01b854631cb28e175ffbcccf6114acc3';
const from = 'search';
class NomerogramProvider {
static async getGroups(number) {
let timestamp = Math.floor(Date.now() / 1000);
let secretSource = appId + number + deviceId + from + timestamp + secretSuffix;
let hash = crypto.createHash('sha256');
hash.update(secretSource);
let secret = hash.digest('hex');
console.log('secret: ', secret);
let url = `${baseUrl}/group/list?from=${from}&carplate=${number}&timestamp=${timestamp}&secret=${secret}&app_id=${appId}&device_id=${deviceId}`;
let result = await fetch(utf8.encode(url));
let json = await result.json();
if(!json.success) {
throw Error(json.message);
//return [];
}
return json.data.groups.map(g => {
return {
id: g.group_id,
url: g.group_url,
price: g.price,
date: Utils.parseDate(g.date),
mileage: g.mileage,
region: g.region_name,
city: g.city_name,
adDescription: g.description,
photos: g.photos.map(p => p.src.default)
};
});
}
}
module.exports = NomerogramProvider;