instagram-private-api
Version:
Instagram private API wrapper for full access to instagram
42 lines • 1.74 kB
JavaScript
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
;