UNPKG

instagram-private-api

Version:

Instagram private API wrapper for full access to instagram

42 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const repository_1 = require("../core/repository"); const Chance = require("chance"); class UploadRepository extends repository_1.Repository { constructor() { super(...arguments); this.chance = new Chance(); } async photo(options) { const uploadId = options.uploadId || Date.now(); const ruploadParams = { retry_context: JSON.stringify({ num_step_auto_retry: 0, num_reupload: 0, num_step_manual_retry: 0 }), media_type: '1', upload_id: uploadId.toString(), xsharing_user_ids: JSON.stringify([]), image_compression: JSON.stringify({ lib_name: 'moz', lib_version: '3.1.m', quality: '70' }), }; const name = `${uploadId}_0_-${lodash_1.random(1000000000, 9999999999)}`; const contentLength = options.file.byteLength; const { body } = await this.client.request.send({ url: `/rupload_igphoto/${name}`, method: 'POST', headers: { X_FB_PHOTO_WATERFALL_ID: this.chance.guid(), 'X-Entity-Type': 'image/jpeg', Offset: 0, 'X-Instagram-Rupload-Params': JSON.stringify(ruploadParams), 'X-Entity-Name': name, 'X-Entity-Length': contentLength, 'Content-Type': 'application/octet-stream', 'Content-Length': contentLength, 'Accept-Encoding': 'gzip', }, body: options.file, }); return body; } } exports.UploadRepository = UploadRepository; //# sourceMappingURL=upload.repository.js.map