UNPKG

instamancer

Version:

Scrape the Instagram API with Puppeteer

117 lines 7.45 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.toJSON = exports.toCSV = exports.depot = void 0; const axios_1 = __importDefault(require("axios")); const fs = __importStar(require("fs")); const path = __importStar(require("path")); const tmp = __importStar(require("tmp")); const url_1 = require("url"); const download = __importStar(require("./download")); async function depot(url, name, extension) { try { // Axios download const downloadStream = await axios_1.default({ method: "GET", responseType: "stream", url, }); // Extract headers const contentType = downloadStream.headers["content-type"]; const contentLength = downloadStream.headers["content-length"]; // Upload path const filePath = path.join(this.directory, name + "." + extension); const uploadUrl = url_1.resolve(this.url, filePath); // Axios depot await axios_1.default({ data: downloadStream.data, headers: { "Content-Length": contentLength, "Content-Type": contentType, }, maxContentLength: Infinity, method: "PUT", ...authURL(uploadUrl), }).catch((error) => { this.logger.error(`Uploading ${url} failed`, error); }); } catch (e) { this.logger.error(`Uploading ${url} failed`, e); } } exports.depot = depot; function authURL(url) { const components = new url_1.URL(url); const auth = { password: components.password, username: components.username, }; components.username = ""; components.password = ""; return { auth, url: components.toString(), }; } async function uploadFile(posts, filePath, fileFunc, contentType) { // Create tmp file const tmpFile = tmp.fileSync({ keep: true }); // Dump posts to file await fileFunc(posts, tmpFile.name); // Read file to a stream const fileStream = fs.createReadStream(tmpFile.name); const contentLength = fs.statSync(tmpFile.name).size; // Upload file const uploadUrl = url_1.resolve(this.url, filePath); await axios_1.default({ data: fileStream, headers: { "Content-Length": contentLength, "Content-Type": contentType, }, maxContentLength: Infinity, method: "PUT", url: uploadUrl, }); // Delete file fs.unlinkSync(tmpFile.name); } /** * Upload list of posts to a CSV file */ async function toCSV(posts, filePath) { const uploader = uploadFile.bind(this); await uploader(posts, filePath, download.toCSV, "text/csv"); } exports.toCSV = toCSV; /** * Upload list of posts to a JSON file */ async function toJSON(posts, filePath) { const uploader = uploadFile.bind(this); await uploader(posts, filePath, download.toJSON, "text/json"); } exports.toJSON = toJSON; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IseUNBQTJCO0FBQzNCLDZCQUFpQztBQUVqQyxxREFBdUM7QUFRaEMsS0FBSyxVQUFVLEtBQUssQ0FFdkIsR0FBVyxFQUNYLElBQVksRUFDWixTQUFpQjtJQUVqQixJQUFJO1FBQ0EsaUJBQWlCO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLE1BQU0sZUFBSyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxLQUFLO1lBQ2IsWUFBWSxFQUFFLFFBQVE7WUFDdEIsR0FBRztTQUNOLENBQUMsQ0FBQztRQUVILGtCQUFrQjtRQUNsQixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUvRCxjQUFjO1FBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDbkUsTUFBTSxTQUFTLEdBQUcsYUFBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFOUMsY0FBYztRQUNkLE1BQU0sZUFBSyxDQUFDO1lBQ1IsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sRUFBRTtnQkFDTCxnQkFBZ0IsRUFBRSxhQUFhO2dCQUMvQixjQUFjLEVBQUUsV0FBVzthQUM5QjtZQUNELGdCQUFnQixFQUFFLFFBQVE7WUFDMUIsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDeEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxD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