unprint 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unprint",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "description": "Simplify common web scraping tasks while staying in control of the data.",
5
5
  "main": "src/app.js",
6
6
  "scripts": {
package/src/app.js CHANGED
@@ -362,14 +362,12 @@ function queryImages(context, selector = 'img', customOptions) {
362
362
  return imageUrls.map((imageUrl) => prefixUrl(imageUrl, options.origin, options));
363
363
  }
364
364
 
365
- function querySourceSet(context, selector, attr = 'srcset', customOptions = {}) {
366
- const srcset = queryAttribute(context, selector, attr, customOptions);
367
-
368
- if (!srcset) {
365
+ function extractSourceSet(sourceSet, customOptions) {
366
+ if (!sourceSet) {
369
367
  return null;
370
368
  }
371
369
 
372
- const sources = srcset
370
+ const sources = sourceSet
373
371
  .split(/\s*,\s*/)
374
372
  .map((source) => {
375
373
  const [link, descriptor] = source.split(' ');
@@ -406,6 +404,18 @@ function querySourceSet(context, selector, attr = 'srcset', customOptions = {})
406
404
  return sources.map((source) => prefixUrl(source.url));
407
405
  }
408
406
 
407
+ function querySourceSet(context, selector, attr = 'srcset', customOptions = {}) {
408
+ const sourceSet = queryAttribute(context, selector, attr, customOptions);
409
+
410
+ return extractSourceSet(sourceSet, customOptions);
411
+ }
412
+
413
+ function querySourceSets(context, selector, attr = 'srcset', customOptions = {}) {
414
+ const sourceSets = queryAttributes(context, selector, attr, customOptions);
415
+
416
+ return sourceSets.map((sourceSet) => extractSourceSet(sourceSet, customOptions));
417
+ }
418
+
409
419
  function queryVideo(context, selector = 'source', customOptions) {
410
420
  const options = {
411
421
  ...context.options,
@@ -605,7 +615,9 @@ const queryFns = {
605
615
  duration: queryDuration,
606
616
  dur: queryDuration,
607
617
  sourceSet: querySourceSet,
618
+ sourceSets: querySourceSets,
608
619
  srcSet: querySourceSet,
620
+ srcSets: querySourceSets,
609
621
  url: queryUrl,
610
622
  urls: queryUrls,
611
623
  video: queryVideo,
package/tests/index.html CHANGED
@@ -37,6 +37,7 @@
37
37
  <img class="image" src="https://i.redd.it/1s22dsrqy0181.jpg">
38
38
  <img class="image" src="https://i.redd.it/e91oo4ueyeb71.jpg">
39
39
 
40
+ <img class="srcset" srcset="https://i.redd.it/e91oo4ueyeb71.jpg 240w, https://i.redd.it/vn9h981hlx281.png 480w, https://i.redd.it/e91oo4ueyeb71.jpg 640w">
40
41
  <img class="srcset" srcset="https://i.redd.it/e91oo4ueyeb71.jpg 240w, https://i.redd.it/vn9h981hlx281.png 480w, https://i.redd.it/e91oo4ueyeb71.jpg 640w">
41
42
 
42
43
  <video id="video" poster="https://i.imgur.com/eDQmLys.jpg"><source src="https://i.imgur.com/eDQmLys.mp4"></video>
package/tests/init.js CHANGED
@@ -31,6 +31,7 @@ async function initTest() {
31
31
  console.log('image', res.context.query.img('.image'));
32
32
  console.log('images', res.context.query.imgs('.image'));
33
33
  console.log('srcset', res.context.query.sourceSet('.srcset'));
34
+ console.log('srcsets', res.context.query.sourceSets('.srcset'));
34
35
  console.log('path', res.context.query.url('#path'));
35
36
  console.log('relative path', res.context.query.url('#relativePath'));
36
37
  console.log('exists', res.context.query.exists('#title'));