| | "use strict"; |
| |
|
| | const utils = require("../utils"); |
| | const log = require("npmlog"); |
| |
|
| | module.exports = function (defaultFuncs, api, ctx) { |
| | return function getThreadPictures(threadID, offset, limit, callback) { |
| | let resolveFunc = function () { }; |
| | let rejectFunc = function () { }; |
| | const returnPromise = new Promise(function (resolve, reject) { |
| | resolveFunc = resolve; |
| | rejectFunc = reject; |
| | }); |
| |
|
| | if (!callback) { |
| | callback = function (err, friendList) { |
| | if (err) { |
| | return rejectFunc(err); |
| | } |
| | resolveFunc(friendList); |
| | }; |
| | } |
| |
|
| | let form = { |
| | thread_id: threadID, |
| | offset: offset, |
| | limit: limit |
| | }; |
| |
|
| | defaultFuncs |
| | .post( |
| | "https://www.facebook.com/ajax/messaging/attachments/sharedphotos.php", |
| | ctx.jar, |
| | form |
| | ) |
| | .then(utils.parseAndCheckLogin(ctx, defaultFuncs)) |
| | .then(function (resData) { |
| | if (resData.error) { |
| | throw resData; |
| | } |
| | return Promise.all( |
| | resData.payload.imagesData.map(function (image) { |
| | form = { |
| | thread_id: threadID, |
| | image_id: image.fbid |
| | }; |
| | return defaultFuncs |
| | .post( |
| | "https://www.facebook.com/ajax/messaging/attachments/sharedphotos.php", |
| | ctx.jar, |
| | form |
| | ) |
| | .then(utils.parseAndCheckLogin(ctx, defaultFuncs)) |
| | .then(function (resData) { |
| | if (resData.error) { |
| | throw resData; |
| | } |
| | |
| | const queryThreadID = |
| | resData.jsmods.require[0][3][1].query_metadata.query_path[0] |
| | .message_thread; |
| | const imageData = |
| | resData.jsmods.require[0][3][1].query_results[queryThreadID] |
| | .message_images.edges[0].node.image2; |
| | return imageData; |
| | }); |
| | }) |
| | ); |
| | }) |
| | .then(function (resData) { |
| | callback(null, resData); |
| | }) |
| | .catch(function (err) { |
| | log.error("Error in getThreadPictures", err); |
| | callback(err); |
| | }); |
| | return returnPromise; |
| | }; |
| | }; |
| |
|