"use strict"; const syncpipe = require("syncpipe"); const url = require("url"); const assureResponse = require("../../shared/assure-response"); const surgeon = require("../../shared/surgeon-utils"); const uniqueArray = require("../../shared/unique-array"); module.exports = function findCategories({ session }) { return async function({ createItem }) { let response = await session.get("https://focuslcds.com/"); assureResponse(response); let urls = syncpipe(null, [ _ => surgeon(`selectMany ".category-list a" | readAttr href`, response.body.toString()), _ => uniqueArray(_), _ => _.filter((relativeURL) => relativeURL !== ""), _ => _.map((relativeURL) => url.resolve("https://focuslcds.com/", relativeURL)) ]); for (let url of urls) { createItem({ id: `focus-lcds:category:${url}`, tags: [ "focus-lcds:category" ], data: { url: url } }); } }; };